Interface Renderer
Renderers must ensure that terrain buffering supports
invalid reference
BlockStateModel#emitQuads
SectionBuilder
in vanilla; this code is not patched automatically. Renderers must also ensure that the
following vanilla methods support
invalid reference
BlockStateModel#emitQuads
BlockModelRenderer.render(MatrixStack.Entry, VertexConsumer, BlockStateModel, float, float, float, int, int)
BlockRenderManager.renderDamage(BlockState, BlockPos, BlockRenderView, MatrixStack, VertexConsumer)
BlockRenderManager.renderBlockAsEntity(BlockState, MatrixStack, VertexConsumerProvider, int, int)
All other places in vanilla code that invoke BlockStateModel.addParts(Random, List)
,
BlockStateModel.getParts(Random)
, or
BlockModelRenderer.render(MatrixStack.Entry, VertexConsumer, BlockStateModel, float, float, float, int, int)
are, where appropriate, patched automatically to invoke the corresponding method above or the corresponding method in
FabricBlockModelRenderer
or FabricBlockRenderManager
.
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
emitBlockModelPartQuads
(BlockModelPart modelPart, QuadEmitter emitter, Predicate<@Nullable Direction> cullTest) static Renderer
get()
Access to the currentRenderer
for creating and retrieving mesh builders and materials.@Nullable RenderMaterial
Return a material previously registered viaregisterMaterial(Identifier, RenderMaterial)
.Obtain a newMaterialFinder
instance to retrieve standardRenderMaterial
instances.Obtain a newMutableMesh
instance to build optimized meshes and create baked models with enhanced features.static void
Rendering extension mods must implementRenderer
and call this method during initialization.boolean
registerMaterial
(Identifier id, RenderMaterial material) Register a material for re-use by other mods or models within a mod.void
render
(BlockModelRenderer modelRenderer, BlockRenderView blockView, BlockStateModel model, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) void
render
(MatrixStack.Entry matrices, VertexConsumerProvider vertexConsumers, BlockStateModel model, float red, float green, float blue, int light, int overlay, BlockRenderView blockView, BlockPos pos, BlockState state) void
renderBlockAsEntity
(BlockRenderManager renderManager, BlockState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BlockRenderView blockView, BlockPos pos)
-
Method Details
-
get
Access to the currentRenderer
for creating and retrieving mesh builders and materials. -
register
-
mutableMesh
MutableMesh mutableMesh()Obtain a newMutableMesh
instance to build optimized meshes and create baked models with enhanced features.Renderer does not retain a reference to returned instances, so they should be re-used when possible to avoid memory allocation overhead.
-
materialFinder
MaterialFinder materialFinder()Obtain a newMaterialFinder
instance to retrieve standardRenderMaterial
instances.Renderer does not retain a reference to returned instances, so they should be re-used for multiple materials when possible to avoid memory allocation overhead.
-
materialById
Return a material previously registered viaregisterMaterial(Identifier, RenderMaterial)
. Will return null if no material was found matching the given identifier. -
registerMaterial
Register a material for re-use by other mods or models within a mod. The registry does not persist registrations - mods must create and register all materials at game initialization.Returns false if a material with the given identifier is already present, leaving the existing material intact.
-
render
@OverrideOnly void render(BlockModelRenderer modelRenderer, BlockRenderView blockView, BlockStateModel model, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) - See Also:
-
render
@OverrideOnly void render(MatrixStack.Entry matrices, VertexConsumerProvider vertexConsumers, BlockStateModel model, float red, float green, float blue, int light, int overlay, BlockRenderView blockView, BlockPos pos, BlockState state) - See Also:
-
renderBlockAsEntity
@OverrideOnly void renderBlockAsEntity(BlockRenderManager renderManager, BlockState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BlockRenderView blockView, BlockPos pos) - See Also:
-
emitBlockModelPartQuads
@Experimental @OverrideOnly default void emitBlockModelPartQuads(BlockModelPart modelPart, QuadEmitter emitter, Predicate<@Nullable Direction> cullTest) - See Also:
-
getLayerRenderStateEmitter
- See Also:
-