JozsefA
9a178ef9d8
Abstract fog
...
- WorldPrograms no longer accept an explicit fog mode.
- They now inherit from a class that takes a list of arbitrary shader extensions
2021-05-19 19:11:06 -07:00
JozsefA
4d755dc506
More simplification
...
- Move more stuff to the flywheel namespace
- Give up on ShaderConstants, there's a better way to do it
- A semblance of better crash reports
2021-05-19 16:35:37 -07:00
JozsefA
c48b94f0fb
Merge remote-tracking branch 'origin/chromatic-projector' into mc1.16/chromatic-projector
...
# Conflicts:
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java
2021-05-18 14:07:34 -07:00
JozsefA
55703d8838
Move to the template system and overhaul instance attributes
...
- All material shaders now use the template system.
- Because of the template system, we can know what attributes a material has, along with how they're formatted.
- All of the *Attribute enums are effectively inlined, as the context they used to provide is no longer needed.
2021-05-18 14:05:52 -07:00
JozsefA
695fe98d28
MaterialSpecs choose their model formats
2021-05-16 20:37:26 -07:00
PepperBell
fd6c930a65
Merge remote-tracking branch 'upstream/chromatic-projector' into
...
contraption-lighting
# Conflicts:
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java
# src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java
2021-05-16 19:12:14 -07:00
PepperBell
61b101f0c6
Refactor contraption matrices
...
- Create ContraptionMatrices class for better management of matrices during the contraption rendering process
- Fix diffuse lighting when rendering contraptions without Flywheel
- Clean up TileEntityRenderHelper
- Add disableDiffuseTransform to SuperByteBuffer and fix light calculation logic
2021-05-16 18:42:56 -07:00
JozsefA
6227e81066
TemplateBuffer is no more
...
- Instead, BufferBuilderReader can decode parts of a BufferBuilder.
- BufferedModel and its subclasses are now created directly with a ByteBuffer.
- ContraptionModel renamed to IndexedModel.
- InstancedModel and IndexedModel both now take model formats as arguments.
- All of this allows for better abstraction, composition, and control of models rendered with Flywheel.
2021-05-16 15:39:52 -07:00
JozsefA
9ff193946c
Refactor InstancedModel to not rely on inheritance
...
- Instead, MaterialSpecs store the information
- RenderMaterials are now generic on InstanceData instead of InstancedModel
- RenderMaterials are directly constructed with and store a MaterialSpec
2021-05-15 16:41:56 -07:00
PepperBell
f33b08d996
Minor fixes
...
- Fix holder refresh
- Fix SuperByteBuffer light calculation
- Remove unused import
2021-05-15 12:15:06 -07:00
PepperBell
67052fd00c
Add lighting to non-Flywheel contraptions
...
- Pass contraption world to movement behavior rendering
- Add hybrid lighting option to SuperByteBuffer (takes max of world light and vertex light)
- Create ContraptionWorldHolder for caching contraption worlds for contraptions that are not rendered with Flywheel
- Refactor some parts of contraption rendering
2021-05-15 00:21:20 -07:00
JozsefA
79977aee14
Choose between 2 different implementations of a mapped buffer
...
- MappedBufferRange (GL30) and MappedFullBuffer (GL15) so far
- Persistent mapping (optionally?) would be nice
2021-05-14 22:51:14 -07:00
JozsefA
a9cdb1ab6b
Begin buffer rework
2021-05-14 18:04:25 -07:00
JozsefA
7abc860809
Fix fluid rendering in tanks and pipes on fabulous graphics
2021-05-13 11:37:04 -07:00
JozsefA
f6937ffb0c
Only a few moves left
...
- flywheel stuff only barely depends on create
- start drafting what multiple backends could look like
2021-05-11 11:02:43 -07:00
JozsefA
aa1a45f164
Block breaking overlay is animated now
2021-05-07 21:24:07 -07:00
JozsefA
55e3f50f64
MaterialSpecs act alone
...
- No more awkward MaterialType/MaterialSpec business
- MaterialTypes are registered directly
- FastRenderDispatcher merged with backend
2021-05-04 21:00:55 -07:00
JozsefA
b6f13aa7ff
More granularity for shader context loading
2021-05-04 16:22:27 -07:00
JozsefA
bc5630e593
ShaderContexts
...
- A huge step towards more arbitrary shader usage
- Need to work on registration of the different parts
- Things are unorganized
2021-05-03 21:46:33 -07:00
JozsefA
35768b5ade
Step towards arbitrary shader contexts
2021-05-02 14:16:02 -07:00
JozsefA
2112061db0
Vertex shader abstractions
2021-05-01 23:39:36 -07:00
JozsefA
67e75d747a
Move backend
2021-05-01 16:32:09 -07:00
JozsefA
dc3517eb3a
Inversion
2021-04-30 14:28:18 -07:00
JozsefA
37e8e87553
Merge branch 'mc1.16/dev' into mc1.16/chromatic-projector
...
# Conflicts:
# src/main/java/com/simibubi/create/foundation/render/backend/Backend.java
# src/main/java/com/simibubi/create/foundation/render/backend/ShaderLoader.java
# src/main/java/com/simibubi/create/foundation/render/backend/core/BasicProgram.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/GlBuffer.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/GlVertexArray.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/shader/FogSensitiveProgram.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/shader/GlProgram.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/shader/ProgramSpec.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/versioned/GlCompat.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/versioned/instancing/DrawInstanced.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/versioned/instancing/InstancedArrays.java
# src/main/java/com/simibubi/create/foundation/render/backend/gl/versioned/instancing/VertexArrayObject.java
# src/main/java/com/simibubi/create/foundation/render/backend/instancing/InstancedModel.java
# src/main/java/com/simibubi/create/foundation/render/backend/instancing/RenderMaterial.java
2021-04-30 12:15:32 -07:00
JozsefA
c9718b0a1b
No more compartments in Flywheel.
...
It never really needed them in the first place.
2021-04-30 00:31:52 -07:00
JozsefA
322496f3b4
Reformat backend
2021-04-29 17:19:08 -07:00
JozsefA
063e98983f
Oh god the line endings
...
- Isolate AllBlockPartials to PartialModel
- Further cleanup to PartialBufferer
2021-04-29 14:03:52 -07:00
JozsefA
446b24f1cf
Random stuff
...
- Multiply by 31 in some hash functions
- Remove unused render utility classes
2021-04-29 11:44:45 -07:00
JozsefA
e33ab160ac
Start to cleanup the AllBlockPartials methods
2021-04-28 22:47:51 -07:00
JozsefA
54f5783489
More versatile ui/settings
...
- The channel mask still needs work
- Add contrast filter
2021-04-28 00:01:26 -07:00
JozsefA
70188889be
Persistence is key
...
- Projectors now remember their setting and sync between clients
2021-04-23 17:20:16 -07:00
JozsefA
e8ab21c184
More polish
...
- UI icons
- Color masking
- Better scroll ux
- FilterSphere now has its own file
2021-04-23 14:38:31 -07:00
JozsefA
3879d55517
Better projector gui
2021-04-22 23:42:49 -07:00
JozsefA
fc919c4ac4
Basic projector gui
2021-04-22 16:02:16 -07:00
JozsefA
7b7c6ef3c5
Merge remote-tracking branch 'origin/mc1.16/dev' into mc1.16/chromatic-projector
...
# Conflicts:
# src/main/java/com/simibubi/create/AllBlocks.java
2021-04-20 14:07:54 -07:00
JozsefA
f75422f895
Instruction parallel ray sphere intersection
2021-04-20 14:05:50 -07:00
JozsefA
e50590f6b7
Start working on the blocks
...
- Also better control and visuals
2021-04-18 22:23:41 -07:00
JozsefA
a6248daf7e
Better spheres and framebuffer compat layer
2021-04-17 18:55:29 -07:00
JozsefA
128a2c2e06
Remove compat layer wrapper functions
2021-04-17 18:54:57 -07:00
JozsefA
83dc241cd2
Basic spherical effect
2021-04-17 13:04:42 -07:00
JozsefA
fafd7c84be
Everything works as intended
2021-04-15 15:39:34 -07:00
JozsefA
45b1412837
Code sanity
2021-04-15 13:28:23 -07:00
JozsefA
f12d9452b4
Shader debugging: scaling the world
...
In the linearizeDepth function in area_effect.frag, I was multiplying by 2, but the scaling of the world was off. The number I found that works best is e - 0.99, and I have no idea why.
2021-04-15 12:46:54 -07:00
JozsefA
7988fb69a7
Color matrices and many effect spheres
2021-04-13 23:52:52 -07:00
JozsefA
db7913d91b
It all works, needs some cleanup
2021-04-12 16:00:13 -07:00
simibubi
d249318b80
Pose stack says no
...
- TileEntities not appreciative of wrapped worlds are now much less likely to cause a hard crash
2021-04-11 02:56:11 +02:00
JozsefA
08b2c498e6
Add basic blocks and TEs for the chromatic projector
2021-04-09 16:16:25 -07:00
JozsefA
f2c6afdcb3
Fix projection matrix bug
...
- Copy the projection matrix when vanilla would be uploading it to GL.
- This should account for just about everything.
Unrelated to the fix:
- Shader programs now have more flexibility in specialization.
- Accomplished with IMultiProgram.
- Remove unnecessary SHADER_DEBUG_OUTPUT boolean.
2021-04-09 14:48:44 -07:00
simibubi
edb1b59f41
Housekeeping
...
- Added an .editorconfig
- Auto-Reformatted most .java files
- Auto-Organized Imports
2021-04-08 19:22:11 +02:00
simibubi
525001e410
Merge branch 'mc1.15/dev' into mc1.16/dev
2021-04-07 12:36:39 +02:00