Class LevelRenderer
java.lang.Object
net.minecraft.client.renderer.LevelRenderer
- All Implemented Interfaces:
AutoCloseable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final recordprivate static final record -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtlasManagerprivate final BlockEntityRenderDispatcherprivate static final floatprivate @Nullable GpuSamplerprivate final CloudRendererprivate booleanprivate static final Vector4fcprivate static final Identifierprivate final RenderTargetprivate final EntityRenderDispatcherprivate final FeatureRenderDispatcherprivate LevelRenderer.FinalizedGizmosprivate final GameRenderer(package private) final LevelRenderStateprivate static final intprivate final ModelManagerprivate final booleanprivate final it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection> static final intstatic final intstatic final intprivate final OptionsRenderStateprivate final RenderBuffersprivate final SimpleGizmoCollectorprivate final SectionOcclusionGraphprivate @Nullable SectionRenderDispatcherprivate final ShaderManagerprivate @Nullable SkyRendererprivate final SubmitNodeStorageprivate final LevelTargetBundleprivate final TextureManagerprivate final BlockingQueue<TransientBlockRenderState.Removal> private final it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap<TransientBlockRenderState> private intprivate booleanprivate final it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection> private final WeatherEffectRendererprivate final WorldBorderRendererprivate static final Vector4fc -
Constructor Summary
ConstructorsConstructorDescriptionLevelRenderer(EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, ModelManager modelManager, TextureManager textureManager, AtlasManager atlasManager, ShaderManager shaderManager, GameRenderer gameRenderer, int width, int height) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddMainPass(FrameGraphBuilder frame, FeatureRenderDispatcher.PreparedFrame featureFrame, GpuBufferSlice terrainFog, ChunkSectionsToRender chunkSectionsToRender, boolean consistentDepthRequired) voidaddMainThreadGizmos(List<SimpleGizmoCollector.GizmoInstance> mainThreadGizmos) private voidaddSkyPass(FrameGraphBuilder frame, CameraRenderState cameraState, GpuBufferSlice skyFog) voidaddTransientBlock(long blockNode, TransientBlockRenderState state) voidprivate voidcheckPoseStack(PoseStack poseStack) voidvoidclose()private voidcompileSections(CameraRenderState camera) voidendFrame()private voidexecuteAlwaysOnTop(FeatureRenderDispatcher.PreparedFrame featureFrame, RenderTarget mainTarget, boolean consistentDepthRequired) private voidexecuteClassicTransparency(ChunkSectionsToRender chunkSectionsToRender, FeatureRenderDispatcher.PreparedFrame featureFrame, RenderPass renderPass) private voidprivate voidexecuteOit(ChunkSectionsToRender chunkSectionsToRender, FeatureRenderDispatcher.PreparedFrame featureFrame) private voidexecuteOitWaterMask(FeatureRenderDispatcher.PreparedFrame featureFrame, RenderTarget mainTarget) private voidexecuteOutline(FeatureRenderDispatcher.PreparedFrame featureFrame) private voidexecuteSeeThrough(FeatureRenderDispatcher.PreparedFrame featureFrame, RenderTarget mainTarget) private voidexecuteSolid(ChunkSectionsToRender chunkSectionsToRender, FeatureRenderDispatcher.PreparedFrame featureFrame, RenderPass renderPass) it.unimi.dsi.fastutil.longs.LongCollectionprivate intextractSectionDrawGroups(boolean respectTranslucentOrder, List<DynamicGpuData.ChunkSectionInfo> sectionInfos, Map<ChunkSectionLayer, List<LevelRenderer.ChunkDrawGroup>> drawGroups) private voidprivate booleanbooleanvoidinvalidateCompiledGeometry(ClientLevel level, Options options, Camera camera, BlockColors blockColors) booleanbooleanisSectionCompiledAndVisible(BlockPos blockPos, long chunkFadeDuration) it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection> private voidprepareChunkRenders(Matrix4fc modelViewMatrix, boolean respectTranslucentOrder) prepareChunkRendersIndirect(Matrix4fc modelViewMatrix, boolean respectTranslucentOrder) private voidvoidremoveTransientBlocksInSection(long sectionNode, long compileTaskStartTimeNs) voidrender(GraphicsResourceAllocator resourceAllocator, boolean renderOutline, CameraRenderState cameraState, GpuBufferSlice terrainFog, Vector4f fogColor, boolean shouldRenderSky, boolean consistentDepthRequired) private voidrepositionCamera(CameraRenderState camera) voidvoidresize(int width, int height) private voidscheduleResort(SectionRenderDispatcher.RenderSection section, TranslucencyPointOfView pointOfView, Vec3 cameraPos, boolean blockPosChanged, boolean isNearby) private voidscheduleTranslucentSectionResort(Vec3 cameraPos) private voidsubmitBlockDestroyAnimation(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, LevelRenderState levelRenderState) private voidsubmitBlockEntities(PoseStack poseStack, LevelRenderState levelRenderState, SubmitNodeCollector submitNodeCollector) private voidsubmitBlockOutline(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, LevelRenderState levelRenderState) private voidsubmitEntities(PoseStack poseStack, LevelRenderState levelRenderState, SubmitNodeCollector output) private voidsubmitFeatures(LevelRenderState levelRenderState, SubmitNodeCollector submitNodeCollector, boolean renderOutline) private voidsubmitHitOutline(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, RenderType renderType, BlockOutlineRenderState state, int color, float width, boolean afterTerrain) private voidsubmitTransientBlocks(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, LevelRenderState levelRenderState) viewArea()it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection>
-
Field Details
-
OIT_WAVELET_RANK
public static final int OIT_WAVELET_RANK- See Also:
-
OIT_COEFFICIENT_COUNT
public static final int OIT_COEFFICIENT_COUNT -
OIT_TRANSMITTANCE_TARGET_COUNT
public static final int OIT_TRANSMITTANCE_TARGET_COUNT -
ENTITY_OUTLINE_POST_CHAIN_ID
-
MINIMUM_TRANSPARENT_SORT_COUNT
private static final int MINIMUM_TRANSPARENT_SORT_COUNT- See Also:
-
CHUNK_VISIBILITY_THRESHOLD
private static final float CHUNK_VISIBILITY_THRESHOLD- See Also:
-
DEPTH_BOUNDS_CLEAR_COLOR
-
ZERO_CLEAR_COLOR
-
gameRenderer
-
entityRenderDispatcher
-
blockEntityRenderDispatcher
-
renderBuffers
-
featureRenderDispatcher
-
submitNodeStorage
-
modelManager
-
textureManager
-
atlasManager
-
shaderManager
-
levelRenderState
-
optionsRenderState
-
skyRenderer
-
cloudRenderer
-
worldBorderRenderer
-
weatherEffectRenderer
-
sectionOcclusionGraph
-
visibleSections
private final it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection> visibleSections -
nearbyVisibleSections
private final it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection> nearbyVisibleSections -
transientBlocks
private final it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap<TransientBlockRenderState> transientBlocks -
transientBlockRemovalQueue
-
viewArea
-
entityOutlineTarget
-
targets
-
sectionRenderDispatcher
-
lastTranslucentSortBlockPos
-
translucencyResortIterationIndex
private int translucencyResortIterationIndex -
chunkLayerSampler
-
currentFrameRendersEntityOutline
private boolean currentFrameRendersEntityOutline -
multiDrawIndirectAvailable
private final boolean multiDrawIndirectAvailable -
usingMultiDrawIndirectForTerrain
private boolean usingMultiDrawIndirectForTerrain -
renderThreadGizmos
-
finalizedGizmos
-
-
Constructor Details
-
LevelRenderer
public LevelRenderer(EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, ModelManager modelManager, TextureManager textureManager, AtlasManager atlasManager, ShaderManager shaderManager, GameRenderer gameRenderer, int width, int height)
-
-
Method Details
-
render
public void render(GraphicsResourceAllocator resourceAllocator, boolean renderOutline, CameraRenderState cameraState, GpuBufferSlice terrainFog, Vector4f fogColor, boolean shouldRenderSky, boolean consistentDepthRequired) -
submitFeatures
private void submitFeatures(LevelRenderState levelRenderState, SubmitNodeCollector submitNodeCollector, boolean renderOutline) -
repositionCamera
-
addSkyPass
private void addSkyPass(FrameGraphBuilder frame, CameraRenderState cameraState, GpuBufferSlice skyFog) -
addMainPass
private void addMainPass(FrameGraphBuilder frame, FeatureRenderDispatcher.PreparedFrame featureFrame, GpuBufferSlice terrainFog, ChunkSectionsToRender chunkSectionsToRender, boolean consistentDepthRequired) -
executeSeeThrough
private void executeSeeThrough(FeatureRenderDispatcher.PreparedFrame featureFrame, RenderTarget mainTarget) -
executeAlwaysOnTop
private void executeAlwaysOnTop(FeatureRenderDispatcher.PreparedFrame featureFrame, RenderTarget mainTarget, boolean consistentDepthRequired) -
frameHasAlwaysOnTopGizmos
private boolean frameHasAlwaysOnTopGizmos() -
executeSolid
private void executeSolid(ChunkSectionsToRender chunkSectionsToRender, FeatureRenderDispatcher.PreparedFrame featureFrame, RenderPass renderPass) -
prepareTranslucents
private void prepareTranslucents() -
executeOit
private void executeOit(ChunkSectionsToRender chunkSectionsToRender, FeatureRenderDispatcher.PreparedFrame featureFrame) -
executeDepthBoundsCull
private void executeDepthBoundsCull() -
executeOitWaterMask
private void executeOitWaterMask(FeatureRenderDispatcher.PreparedFrame featureFrame, RenderTarget mainTarget) -
executeClassicTransparency
private void executeClassicTransparency(ChunkSectionsToRender chunkSectionsToRender, FeatureRenderDispatcher.PreparedFrame featureFrame, RenderPass renderPass) -
executeOutline
-
extractSectionDrawGroups
private int extractSectionDrawGroups(boolean respectTranslucentOrder, List<DynamicGpuData.ChunkSectionInfo> sectionInfos, Map<ChunkSectionLayer, List<LevelRenderer.ChunkDrawGroup>> drawGroups) -
prepareChunkRenders
public ChunkSectionsToRender prepareChunkRenders(Matrix4fc modelViewMatrix, boolean respectTranslucentOrder) -
addTransientBlock
-
removeTransientBlocksInSection
public void removeTransientBlocksInSection(long sectionNode, long compileTaskStartTimeNs) -
performTransientBlockRemovals
private void performTransientBlockRemovals() -
prepareChunkRendersIndirect
public ChunkSectionsToRender prepareChunkRendersIndirect(Matrix4fc modelViewMatrix, boolean respectTranslucentOrder) -
compileSections
-
checkPoseStack
-
submitEntities
private void submitEntities(PoseStack poseStack, LevelRenderState levelRenderState, SubmitNodeCollector output) -
submitBlockEntities
private void submitBlockEntities(PoseStack poseStack, LevelRenderState levelRenderState, SubmitNodeCollector submitNodeCollector) -
submitBlockDestroyAnimation
private void submitBlockDestroyAnimation(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, LevelRenderState levelRenderState) -
submitTransientBlocks
private void submitTransientBlocks(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, LevelRenderState levelRenderState) -
submitBlockOutline
private void submitBlockOutline(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, LevelRenderState levelRenderState) -
submitHitOutline
private void submitHitOutline(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, RenderType renderType, BlockOutlineRenderState state, int color, float width, boolean afterTerrain) -
resize
public void resize(int width, int height) -
endFrame
public void endFrame() -
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
blitEntityOutline
public void blitEntityOutline() -
invalidateCompiledGeometry
public void invalidateCompiledGeometry(ClientLevel level, Options options, Camera camera, BlockColors blockColors) -
scheduleTranslucentSectionResort
-
scheduleResort
private void scheduleResort(SectionRenderDispatcher.RenderSection section, TranslucencyPointOfView pointOfView, Vec3 cameraPos, boolean blockPosChanged, boolean isNearby) -
clearVisibleSections
public void clearVisibleSections() -
resetLevelRenderData
public void resetLevelRenderData() -
hasRenderedAllSections
public boolean hasRenderedAllSections() -
isSectionCompiledAndVisible
-
sectionRenderDispatcher
-
entityRenderDispatcher
-
blockEntityRenderDispatcher
-
cloudRenderer
-
skyRenderer
-
weatherEffectRenderer
-
worldBorderRenderer
-
viewArea
-
visibleSections
public it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection> visibleSections() -
nearbyVisibleSections
public it.unimi.dsi.fastutil.objects.ObjectArrayList<SectionRenderDispatcher.RenderSection> nearbyVisibleSections() -
expectedChunks
public it.unimi.dsi.fastutil.longs.LongCollection expectedChunks() -
sectionOcclusionGraph
-
collectPerFrameRenderThreadGizmos
-
isChunkRenderingUsingMultiDrawIndirect
public boolean isChunkRenderingUsingMultiDrawIndirect() -
finalizeGizmoCollection
private void finalizeGizmoCollection() -
addMainThreadGizmos
-