Commit graph

37 commits

Author SHA1 Message Date
Jozufozu
9d657aed40 Things on the screen
- Specialize MeshPool for the indirect engine
 - Temporarily force the engine to be indirect
 - Fix compilation issues with test shaders
 - VertexAttribute supports DSA
 - Fix Miniball issues in dev-env
 - VertexList implements PointSet for use with Miniball
 - Meshes store their bounding spheres
 - Add hook/system property to load renderdoc on client launch
 - StructTypes provide separate StorageBufferWriter for indirect
2022-08-05 10:51:07 -07:00
Jozufozu
e43261302a Merge remote-tracking branch 'origin/1.18/next' into 1.18/next
# Conflicts:
#	src/main/java/com/jozufozu/flywheel/api/material/Material.java
#	src/main/java/com/jozufozu/flywheel/backend/instancing/InstancedRenderDispatcher.java
#	src/main/java/com/jozufozu/flywheel/backend/instancing/instancing/InstancingEngine.java
#	src/main/java/com/jozufozu/flywheel/core/BasicModelSupplier.java
#	src/main/java/com/jozufozu/flywheel/core/crumbling/CrumblingRenderer.java
#	src/main/java/com/jozufozu/flywheel/vanilla/BellInstance.java
#	src/main/java/com/jozufozu/flywheel/vanilla/ChestInstance.java
#	src/main/java/com/jozufozu/flywheel/vanilla/MinecartInstance.java
#	src/main/java/com/jozufozu/flywheel/vanilla/ShulkerBoxInstance.java
#	src/main/resources/flywheel.mixins.json
2022-07-22 17:48:40 -07:00
Jozufozu
808933bfc3 Uniformly incomplete
- Initial work on uniform buffer registry
 - Setup skeleton for ComponentRegistry
 - InstancingEngine is no longer generic about the program
 - ProgramCompiler considers ContextShaders as input
 - Support weak file resolutions
 - Temporary GLSL version bump to ease UniformProvider growing pains
 - Centralize component shaders to Components
2022-07-22 17:24:41 -07:00
PepperCode1
14d3949134 A Performance on the (Render)Stage
- Add RenderStage enum for better control over when a Material should be
rendered
  - Add getRenderStage method to Material
  - Replace RenderLayerEvent with RenderStageEvent
- Pass more information to RenderContext including camera and projection
matrix
- Pass RenderContext instead of Camera to all beginFrame-related methods
  - Remove RenderContext.CURRENT
- Remove FrustumMixin and CameraMixin
- Remove default BasicModelSupplier constructor
- Convert Material to interface and create SimpleMaterial implementation
- Move API instancer classes to instancer package
- Organize imports
2022-07-22 16:41:39 -07:00
Jozufozu
0e37a0586f Batch 2
- Re-implement batching under new api topology
 - Lots of duplicated code between instancing and batching, room for abstraction
 - StructTypes now require their type argument to extend InstancedPart
 - Fix crash when re-allocating drawbuffers
 - Disable crumbling pending refactor
 - Separate RenderDispatcher#beginFrame from RenderDispatcher#maintainOriginCoordinate
 - Inline OriginShiftListener
 - Refactor InstancedRenderDispatcher hooks
2022-06-30 14:29:35 -07:00
PepperCode1
2632cd385c Crumbling away
- Fix and improve crumbling rendering
- Rename Batched to BatchedStructType and Instanced to
InstancedStructType
- Normalize flw_vertexNormal in context/common.vert
- Add TODO and FIXME comments
2022-05-22 14:28:38 -07:00
PepperCode1
958188fc77 Clean up
- Remove OnlyIn annotations
- Replace JSR305 Nullable and Nonnull with Jetbrains Nullable and
NotNull
- Fix indentation in flywheel.mixins.json
- Organize imports
2022-05-11 18:42:31 -07:00
Jozufozu
8e069d9209 Material refactor pt 4
- Begin reworking layer rendering
2022-04-19 13:42:45 -07:00
Jozufozu
c07c6363f9 Resolve redirect conflict and add more optifine hacks
- Fix entitiesForRendering redirect to be compatible with carpet.
 - Use more reflection for dealing with optifine
 - Fixes issue where flywheel would still be on immediately after enabling optifine shaders
2022-02-10 21:26:56 -08:00
Jozufozu
2638e79aa2 Add accessor to BlockEntityRenderer map. 2022-01-18 13:44:28 -08:00
Jozufozu
b2c03a4069 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
3391e3e168 GlStateTracker for better state restore
- Replaces both ShaderInstanceAccessor and BufferUploaderAccessor
2022-01-08 14:51:55 -08:00
Jozufozu
e4182a7f1e RenderLayers directly store DrawBuffers
- Inspired by pepper's BlockEntityTypeExtensions
 - Document the batching engine internals.
2022-01-06 15:25:00 -08:00
Jozufozu
5c4ff9ca2a 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
eb8dc6bc07 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
f4cdbb73f7 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
431ff92861 Simplify SBB
- SBB -> ModelTransformer
 - Shader binding the minecraft way
 - Engines are responsible for ending batches
2021-12-16 23:10:24 -08:00
Jozufozu
cc707cf66a Batching Engine
- Implement alternate backend using SBBs
2021-12-15 17:12:48 -08:00
Jozufozu
aaaccc47ee 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
b9352bc3a4 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
e8f5e4a6c1 Implement TransformStack directly on PoseStack
- Add helper method to cast to the interface.
2021-11-23 15:07:31 -08:00
PepperBell
f14aca4517 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
94e83a10d1 TextureBinder for dealing with vanilla RenderTypes 2021-11-09 16:48:54 -08:00
Jozufozu
fe700b8be5 Better Block Entity filtering
- Assumes IInstanceRendered#shouldRenderNormally does not change over a BE's life
2021-09-26 22:30:11 -07:00
Jozufozu
57b67cddcf Testing + fixing 2021-09-26 21:15:02 -07:00
Jozufozu
ef48504caa UNTESTED - Replace ATs
- Matrices use #store
 - Accessor for pausedPartialTick
2021-09-26 19:40:53 -07:00
Jozufozu
5044308c68 F3+A
- Reloading chunks correctly reloads block entity instances
2021-09-17 14:20:35 -07:00
Jozufozu
d53c9b0a32 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
40034daa64 Minecraft already stores the projection matrix
mixins--
2021-09-15 14:27:51 -07:00
Jozufozu
a930bc97cc It launches
- yeet the fog
 - update mixin compatibility level
2021-09-15 13:49:18 -07:00
Jozufozu
931b4a33ae Event adjustments to work with optifine shadows 2021-08-05 14:53:22 -07:00
Jozufozu
17d5081345 Expose ClippingHelper in BeginFrameEvent 2021-07-28 18:13:47 -07:00
Jozufozu
e1aa055983 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
37a72842cf 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
JozsefA
195a7348f3 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
6b67e3d55d Add fabulous depth fix 2021-06-22 20:06:00 -07:00
JozsefA
7b427e3c92 Yeet 2021-06-16 11:19:33 -07:00