Jozufozu
0785587960
Separate vertex and fragment shaders and templates
2022-01-10 14:38:26 -08:00
Jozufozu
0b84bec4e1
Merge branch '1.18/dev' into 1.18/shader-sanity
...
# Conflicts:
# src/main/java/com/jozufozu/flywheel/backend/instancing/instancing/InstancingEngine.java
2022-01-09 22:35:42 -08:00
Jozufozu
68febaec2e
Conditional state restore and BufferUploader sanity check
...
- Only restore state that has changed
- Sanity check to fix error condition on reset
2022-01-08 16:48:42 -08:00
Jozufozu
38244deb51
GlStateTracker for better state restore
...
- Replaces both ShaderInstanceAccessor and BufferUploaderAccessor
2022-01-08 14:51:55 -08:00
Jozufozu
72dc4cb378
Almost sane shaders
...
- No more ShaderContext. Programs are directly retrieved through ProgramCompilers.
- Templates don't need generics
- Remove ExtensibleGlProgram
2022-01-07 22:46:29 -08:00
Jozufozu
03c5a41cac
Merge branch '1.18/dev' into 1.18/shader-sanity
...
# Conflicts:
# src/main/java/com/jozufozu/flywheel/backend/source/FileResolution.java
# src/main/java/com/jozufozu/flywheel/core/shader/GameStateProgram.java
# src/main/java/com/jozufozu/flywheel/core/shader/gamestate/NormalDebugStateProvider.java
# src/main/java/com/jozufozu/flywheel/core/shader/spec/BooleanGameStateCondition.java
# src/main/java/com/jozufozu/flywheel/core/shader/spec/GameStateCondition.java
# src/main/java/com/jozufozu/flywheel/core/shader/spec/ProgramState.java
# src/main/java/com/jozufozu/flywheel/core/shader/spec/SpecificValueCondition.java
2022-01-07 11:52:42 -08:00
Jozufozu
c0ddc860d9
RenderLayers directly store DrawBuffers
...
- Inspired by pepper's BlockEntityTypeExtensions
- Document the batching engine internals.
2022-01-06 15:25:00 -08:00
Jozufozu
eef3c7fc1c
Fix visual artifacts with contraptions while using opfine.
...
I think the buffers from the shadow pass were bleeding into the color pass.
2022-01-06 13:04:16 -08:00
PepperCode1
45ae6c4d90
Switch to instancing controllers
...
- Combine InstanceFactories and FlywheelRendered into
InstancingControllers
- Store these controllers directly in the BlockEntity/Entity type
instead of a map for efficiency
- Redo InstancedRenderRegistry to fit these changes
- Rename all tile to block entity
- Remove all interface I prefixes
- Organize imports
- Bump version to 0.5.1
2022-01-03 21:41:08 -08:00
Jozufozu
355d6aa163
Consider RenderLayer when compiling shaders
...
- Disabled cutout logic in other layers
2022-01-01 15:19:49 -08:00
Jozufozu
1b09c2c1eb
Compile everything on the fly
...
- Simplify game state system
- Need some way to re-add errors on load.
- Streamline shader compilation, reduce map lookups
- Move pipeline package from backend to core
- Simplify interfaces and remove unnecessary classes
2021-12-31 12:08:07 -08:00
Jozufozu
c265a17f55
Shader sanity
...
- Drastically lower shader boilerplate for instance materials
- Somewhat lower boilerplate for contexts
- VertexTypes are responsible for shader headers
- Better shader compiler errors (at least on nvidia)
- Simplify template classes
- Begin work on lazy shader compilation
2021-12-29 13:10:38 -08:00
Jozufozu
dbfeeea477
No more diffuse divide
...
- Move PlacementSimulationWorld to Flywheel as VirtualRenderWorld
- Simplify ModelTransformer
- Model doesn't need #configure
2021-12-25 15:51:22 -08:00
Jozufozu
3ce1345d6a
Fix GL error spam and do some cleanup
...
- Add flywheel$ prefix to mixin duck interfaces/accessors
- Better chat messages for /flywheel backend command
- Track VAO via vanilla
2021-12-24 01:45:38 -08:00
Jozufozu
b0f6d07b0b
Make the BatchingEngine not jittery
...
- Stop having threads compete for a single BufferBuilder
- ...by skirting around minecraft's BufferSource
- Begin work on making vertex writing sane
2021-12-21 22:47:29 -08:00
Jozufozu
3049601e4a
Simplify SBB
...
- SBB -> ModelTransformer
- Shader binding the minecraft way
- Engines are responsible for ending batches
2021-12-16 23:10:24 -08:00
Jozufozu
f1e63106fc
Batching Engine
...
- Implement alternate backend using SBBs
2021-12-15 17:12:48 -08:00
Jozufozu
0de377d5bb
Fix #extension crash on intel
2021-12-15 13:27:06 -08:00
PepperBell
07cff39a95
Sweeping up
...
- Remove deprecated methods and fields
- Bump pack format
- Fix CI badge link
- Update VanillaInstances javadoc
- Organize imports
2021-12-14 22:00:44 -08:00
Jozufozu
7ff0a87b17
Use GL_ARB_conservative_depth when possible
...
- Allows the depth test to discard fragments before the fragment shader is run
2021-12-11 22:03:52 -08:00
Jozufozu
4a86c112dd
Cylindrical fog
...
- having the world position is very nice
- mojang manages to do multiple matrix multiplications
2021-12-11 17:31:09 -08:00
Jozufozu
008c6c1e3f
Add instances when chunks are built for rendering
...
- RIP ChunkIter, may you rule over the depths of hell in peace
- Fix memory leak when instance worlds get reset
- Server worlds are not flywheel worlds
- Nothing to do on world load anymore
2021-12-08 12:16:01 -08:00
Jozufozu
46cbd76fb6
Update to 1.18
2021-12-06 21:29:21 -08:00
Jozufozu
79fe04c6ab
Vanillaization
...
- IModels now accept a VertexConsumer
- IRenderState -> RenderType
- AbstractInstancer for dealing with InstanceData tidyness
- Alter crumbling renderer to match new system
- Add hack to keep track of bound atlas textures
2021-12-06 15:23:26 -08:00
Jozufozu
241c50291d
Yeet json extensions that idea doesn't make sense
...
- Was only ever used for fog
- Was the same for every material
- Made things unnecessarily complex
- Fix fog
- Convert ProgramState to record
2021-12-02 17:40:23 -08:00
Jozufozu
16f43867b6
Implement TransformStack directly on PoseStack
...
- Add helper method to cast to the interface.
2021-11-23 15:07:31 -08:00
PepperBell
279e0893c6
Server crash fix and formatting
...
- Fix matrix mixins being applied on dedicated server
- Expand PartialModel functionality: add location getter and model
setter
- Remove Loader.getResourceType since selective reloading is deprecated
- Organize imports and mixin order
- Other formatting
- Update Gradle and Forge
2021-11-18 14:59:39 -08:00
Jozufozu
3919aaeead
TextureBinder for dealing with vanilla RenderTypes
2021-11-09 16:48:54 -08:00
Jozufozu
d9bfe82a22
Compat work
...
- No more net.minecraftforge.common.util usages
- Replace forge lazy with flywheel lazy
- Replace forge NonNullSupplier with flywheel NonNullSupplier
- texture2D -> texture
2021-10-12 12:52:02 -07:00
Jozufozu
39ce96ec9c
Better Block Entity filtering
...
- Assumes IInstanceRendered#shouldRenderNormally does not change over a BE's life
2021-09-26 22:30:11 -07:00
Jozufozu
79ac9e96e4
Testing + fixing
2021-09-26 21:15:02 -07:00
Jozufozu
7c5e02d2e8
UNTESTED - Replace ATs
...
- Matrices use #store
- Accessor for pausedPartialTick
2021-09-26 19:40:53 -07:00
Jozufozu
532e7450e9
GL32 shaders and errors
...
- Update shaders to glsl 150
- Objectfy errors
2021-09-20 19:27:04 -07:00
Jozufozu
ca554f5993
F3+A
...
- Reloading chunks correctly reloads block entity instances
2021-09-17 14:20:35 -07:00
Jozufozu
0c6a75ade5
Always use discard
2021-09-16 20:53:35 -07:00
Jozufozu
7da64cded6
It renders stuff
...
- The lightmap moved
- Begin to move away from access transformers
- .textureManager -> .getTextureManager()
- RIP cutout, saw that coming
2021-09-16 20:03:45 -07:00
Jozufozu
d67362cacd
Minecraft already stores the projection matrix
...
mixins--
2021-09-15 14:27:51 -07:00
Jozufozu
d023b27ae8
It launches
...
- yeet the fog
- update mixin compatibility level
2021-09-15 13:49:18 -07:00
2fc54ffbee
Remap, update forge, minecraft and java
2021-09-15 09:14:30 +02:00
Jozufozu
8f13097a40
Some decoupling
...
- New Loader class in charge of loading and compiling everything
- ShaderSources now only loads sources
- ShaderSources is immutable now
- Resolver singleton in charge of managing name resolutions
- ProgramSpecs go through Resolver
- WorldShaderPipeline no longer needs reference to ShaderSources
2021-08-10 15:20:51 -07:00
Jozufozu
82ea5b1720
A heck of a lot
...
- Reorganize everything
- Isolate SourceFile related things
- Should consider decoupling ShaderLoader from resource loading
- Document a lot of newer things
- Index functions
- Awkward WorldContext builder
- Template responsible for providing shader inputs
- Template is now an abstract class
- Template provides GLSL version
- ProgramSpecs now only accept one file
2021-08-10 02:06:22 -07:00
Jozufozu
3c24abe837
Reload
...
- Redo shader loading
- Now loads an immutable SourceFile containing some metadata
- Replace legacy compilation pipeline with improved new one using new api
- Builtins are defined in one file, now "header"
- New ErrorReporter/ErrorBuilder methods
- Fancier shader loading errors
2021-08-08 22:33:32 -07:00
Jozufozu
935f8efc00
Merge branch 'dev' into shader-pipeline
2021-08-06 11:45:39 -07:00
Jozufozu
344ea74cab
Event adjustments to work with optifine shadows
2021-08-05 14:53:22 -07:00
Jozufozu
c2d110e38f
More steps towards actually using the new loader
2021-08-05 12:16:17 -07:00
Jozufozu
7bb38afda9
Merge branch 'dev' into shader-pipeline
2021-08-05 00:53:29 -07:00
Jozufozu
94c5b4455d
Switch to MIT Licence
2021-08-02 20:07:49 -07:00
Jozufozu
21269e9dd5
Expose ClippingHelper in BeginFrameEvent
2021-07-28 18:13:47 -07:00
Jozufozu
88241c2a58
Merge branch 'dev' into shader-pipeline
...
# Conflicts:
# src/main/java/com/jozufozu/flywheel/backend/ShaderSources.java
2021-07-26 21:58:53 -07:00
Jozufozu
e5db27379e
Parallel and caching
...
- NEEDS MORE TESTING
- Tick and update instances in parallel
- Mixin to cache chunk lookups
2021-07-18 18:00:09 -07:00
Jozufozu
a2b740f0d8
Merge branch 'dev' into shader-pipeline
...
# Conflicts:
# src/main/java/com/jozufozu/flywheel/core/WorldContext.java
2021-07-12 23:53:35 -07:00
Jozufozu
2a0757e867
Atlases, bells, breaking
...
- Bell instance
- Fix some inconsistencies with PartBuilder
- Store information on texture atlasses
- Crumbling overlay fixes
2021-07-12 14:52:54 -07:00
Jozufozu
a5d282a0ef
Load a single file
...
- Use the new immutable sources system to load a single file
- It doesn't compile it yet
- Slightly less verbose name
2021-07-05 12:09:13 -07:00
Jozsef
04733e3d2d
Even more AT culling
2021-06-30 15:50:23 -07:00
Jozsef
9561265c3b
Cull AT
2021-06-30 15:43:38 -07:00
JozsefA
3fb48d248a
Instanced entities are compatible with optifine
...
- Fix mixin related crash on startup
- Change defaultRequire to 0
2021-06-24 19:37:31 -07:00
JozsefA
12748cc208
Add fabulous depth fix
2021-06-22 20:06:00 -07:00
JozsefA
7d6ec7d28f
Little tweaks and add the logo to mods.toml
2021-06-19 16:52:23 -07:00
JozsefA
6b0ce3115d
Update mods.toml
2021-06-16 12:57:52 -07:00
JozsefA
5913d1aef1
Add licence
2021-06-16 11:58:17 -07:00
JozsefA
f460e229df
Squish
...
- Squash all commits before separating flywheel from create
2024-03-07 19:08:15 -08:00