Commit Graph

883 Commits

Author SHA1 Message Date
Jozufozu
2837762cbf SmoothLit joins the battle
- Not attached to the name
- Add SmoothLitVisual opt in interface, allowing any visuals to
  contribute light sections to the arena
- Remove lightChunks from VisualEmbedding, it has been usurped
- Pass total collected light sections from BEs, Es, and effects to the
  engine interface. It seemed the most proper way to hand off
  information from the impl to the backend
- Add SmoothLitVisualStorage to maintain the set of collected sections,
  though at the moment it is very naive and simply unions everything
  upon request, which is also naively done every frame
2024-07-15 15:15:34 -07:00
Jozufozu
b9a51d0e5f Smoothest operator
- Implement RogueLogix's normal-dependent smooth lighting function
- Uses a lot of fetches, so I imagine occupancy is kinda bad
2024-07-15 15:15:34 -07:00
Jozufozu
ef2bb09fcd Literally unusable
- Trim out dead light code from *EmbeddedEnvironment
- Fix indirect never deleting empty culling groups
- Fix embedded transforms not being applied
2024-07-15 15:15:34 -07:00
Jozufozu
b7c8604898 Light in the shade
- Expose light in the shader api
  - flw_light - for builtin smooth lighting, faster than can be
    implemented by materials alone
  - flw_lightFetch - for materials that want to go crazy, access to raw
    data
2024-07-15 15:15:34 -07:00
Jozufozu
495c047968 Lighting, for instance
- Sideport light lut stuffs to instancing engine
- Move actual lookup logic to light_lut.glsl, and have backend mains
  provide functions to index the backing storages for sanity's sake
- Standardize naming of lut and sections
- Pull in pepper's loom fix, so I can build :lwe:
- Allow specifying the internal format of texture buffers so light can
  be a simple uint array
2024-07-15 15:15:34 -07:00
Jozufozu
253de1f343 Lightly observed
- Pass light updates to LightStorage so that we don't have to re-upload
  every tracked section every frame
- Slightly optimize light section writing, still room for improvement
- Remove dead code in LightStorage
2024-07-15 15:15:34 -07:00
Jozufozu
b34d0f1c15 Cornered again
- Fix light being fetched from a section adjacent to the block a
  fragment actually resides in
- Fix light always being missing
2024-07-15 15:15:34 -07:00
Jozufozu
2a0694ccaf Missing section misdirection
- Avoid adding all sections every frame
- Remove sections when they are no longer needed
- Rebuild the lut when sections are removed
- Properly detect missing sections by writing 1-based indices to the lut
2024-07-15 15:15:34 -07:00
Jozufozu
cf2c11a37c Get lerped
- Use naive trilinear interpolation when fetching embedded light
2024-07-15 15:15:34 -07:00
Jozufozu
6cd30b8164 Pixel perfect
- Do embedded lighting in the fragment shader
- Fix light coord being saturated
2024-07-15 15:15:34 -07:00
Jozufozu
51224d618f Indirectly lit
- "Functional" arena based lighting for indirect
- Strip out most of the reference counting stuffs for embeddings
- Naively re-buffer all tracked light sections every frame
2024-07-15 15:15:34 -07:00
Jozufozu
e10852fe7a Little light lut
- Commit entire chunks of light at a time
- Share all light data between embeddings
2024-07-15 15:15:34 -07:00
PepperCode1
4e8dcb0248 Move Intel MDI workaround to GlCompat 2024-07-15 16:13:24 -06:00
IThundxr
6533723fdf
feat(api): Make PartialModel's use RL's instead of MRL's 2024-07-15 17:36:57 -04:00
IThundxr
1d9f96a822
string substitution fixes 2024-07-14 22:20:47 -04:00
IThundxr
eeb6e0f37a
style: javadoc fixes 2024-07-14 22:19:35 -04:00
IThundxr
1cce5da673
Mixin Fixin' 2024-07-14 22:18:14 -04:00
IThundxr
dfbd451fdb
1.21 Port V 2024-07-10 13:04:42 -04:00
IThundxr
10d032c53e
1.21 Port IV 2024-07-10 13:03:07 -04:00
IThundxr
e374365ce4
1.21 Port III 2024-07-10 12:51:47 -04:00
IThundxr
d0924175de
1.21 Port II 2024-07-10 11:44:52 -04:00
IThundxr
d587ec0ec8
1.21 Port I 2024-07-10 11:27:18 -04:00
IThundxr
eccbfbc649
build: update dependencies 2024-07-10 10:24:12 -04:00
Jozufozu
b2483def1d Revert "Listless no longer"
This reverts commit 22383fd5
2024-07-05 13:49:39 -07:00
IThundxr
a9c4e5c6f4
Merge branch 'refs/heads/1.20/dev' into feat/multi-loader-1.20.4
# Conflicts:
#	gradle.properties
2024-07-03 09:47:31 -04:00
PepperCode1
06a2788f9c Implicitly initiated
- Pass partial tick to visualizers and Effect#visualize
- Pass partial tick to LitVisual#updateLight
- Remove Visual#init
- Rename LitVisual#initLightSectionNotifier to setLightSectionNotifier
- Add static utility methods to FlatLit
- Remove relight methods from AbstractVisual and add specialized relight methods to AbstractBlockEntityVisual and AbstractEntityVisual to match how vanilla retrieves lightmaps
- Rename AtomicBitset to AtomicBitSet
2024-07-01 13:16:27 -07:00
PepperCode1
6017228f4a Add ExtraMemoryOps lib class
- Rename some fields and methods in ColoredLitInstance and FlatLit
2024-06-29 19:15:00 -07:00
Jozufozu
22383fd51e Listless no longer
- Visualizers return a list of visuals instead of just one
- Simple*Visualizer's builders still only allow one visual per object,
  I'm not sure how best to expose adding multiple in a way that allows
  other mods to extend existing visualizers
2024-06-29 13:57:41 -07:00
IThundxr
a9127bee1c
fix instance textures 2024-06-07 16:57:02 -04:00
IThundxr
045771dce5
fix param names 2024-06-07 16:46:30 -04:00
IThundxr
349e7b3cb3
fix mixin 2024-06-07 16:24:52 -04:00
IThundxr
47e80a66a0
optimize imports 2024-06-07 16:15:10 -04:00
IThundxr
52d99e3a61
fix param name 2024-06-07 16:02:09 -04:00
IThundxr
4190ac72c5
fix issues here and there 2024-06-07 16:00:21 -04:00
IThundxr
25a55227e4
fix deps 2024-06-04 15:50:00 -04:00
IThundxr
68d40b9a7d
port rebase fixes 2024-06-04 15:07:49 -04:00
IThundxr
cbdc3189e2
fixme fixedme fixed... 2024-06-04 15:07:48 -04:00
IThundxr
8c61f3fc1e
Obfuscated Obfuscation
- Fix ObfuscationReflectionHelper#setPrivateValue using SRG mapped names, Neoforge has switched to mojmap at runtime
2024-06-04 15:07:47 -04:00
IThundxr
56b0fce44d
Port to 1.20.4 2024-06-04 15:07:43 -04:00
PepperCode1
ee3958b140 Remove VertexViewProvider and VertexViewProvider registry 2024-05-30 17:30:39 -07:00
PepperCode1
c880cdc2a7 Fix MeshEmitter not restarting builder after emitting 2024-05-27 16:10:57 -07:00
Jozufozu
9593126d6e Build sources are engine room too
- Update buildSrc to use engine_room package
- Publish artifacts under engine_room
- Specify group in gradle.properties
2024-05-25 12:08:52 -07:00
Jozufozu
a69389c175 Ctrl Shift R
- Bulk replace com.jozufozu.flywheel with dev.engine_room.flywheel
- Optimize imports
2024-05-25 12:08:50 -07:00
Jozufozu
6e710049a5 Moving house
- Move all files without touching package names in-code
2024-05-25 12:08:01 -07:00
Jozufozu
18b6490220 FLW citation
- Include common source in platform api jars
2024-05-20 22:10:13 -07:00
Jozufozu
1e81903494 Now you have been promoted
- Move VisualizationHelper into lib
2024-05-20 20:59:20 -07:00
Jozufozu
e19cc337fe A ticking time bomb
- Add context object back to SimpleTickableVisual#tick
- Document base *Visual plan methods
2024-05-18 17:34:45 -07:00
PepperCode1
7ef9ce3907 Fix mesh order of models from model builders
Meshes are now always sorted by chunk layer first, then in order of how the BakedModel returned quads. This should exactly match vanilla's chunk buffering and avoid any rendering issues.
2024-05-17 08:43:56 -07:00
PepperCode1
914ce0a7de Fix registry freeze timing
- Move registry freezing to right before start of initial resource reload
- Also warn if Fabric config JSON is not an object
- Move Flywheel.java to API
- Remove Flywheel.LOGGER and others; add impl-specific and backend-specific loggers
- Remove unused mixins
- Organize imports
2024-05-17 08:43:56 -07:00
Kneelawk
6dff488f8c Use better method for telling loom to remap api artifacts
This reverts commit c5a6fe98c2.
2024-05-17 08:43:56 -07:00