Renderer mappings (#988)

* part.render(matrix, vertices, light, overlay, red, green, blue, alpha)

* Fixed bad names

* Determined by the call to part.render(matrix, vertices, light, overlay)
  which delegates to part.render(matrix, vertices, light, overlay, 1, 1, 1, 1)

* Now we extrapolate to everything that calls part.render(matrix, vertices, light, overlay)
  Meanhile VertexConsumerProvider is

* Now we extrapolate to everything that cals pars.render(matrix, vertices, light, overlay, red, green, blue, alpha)

* This is not a render method! It sets the yaw and pitch on the skull

* Now we extrapolate to things that call mode.render(matrix, vertices, light, overlay, red, green, blue, alpha)
  Not much to change there though

* These are known from EntityRenderDispatcher

* render calls renderLabelIfPresent

* Now we're looking at things which call EntityRenderDispatcher.render(entity, x, y, z, yaw, matrix, provider, light)

* In ClientPlayNetworkHandler.onItemPickupAnimation the second entity is gotten from packet.getCollectorEntityId and defaulted to the player if null. The first entity is an item entity or an experience orb entity

* Going back to EntityRenderDispatcher, we can see the code for rendering shadows was moved here from the renderer itself

if (this.gameOptions.entityShadows && this.renderShadows && entityRenderer14.shadowRadius > 0.0f && !entity.isInvisible()) {
    double double22 = this.getSquaredDistanceToCamera(entity.getX(), entity.getY(), entity.getZ());
    float float24 = (float)((1.0 - double22 / 256.0) * entityRenderer14.field_4672);
    if (float24 > 0.0f) {
       renderShadow(matrix, provider, entity, float24, tickDelta, this.world, entityRenderer14.shadowRadius);
    }
}

* The last parameter is shadow radius, but to be sure we check, nd indeed it is reduced when the rendered entity is a baby

    private static void renderShadow(MatrixStack matrix, VertexConsumerProvider provider, Entity entity, float float4, float tickDelta, WorldView world, float radius) {
        float float8 = radius;
        if (entity instanceof MobEntity) {
            if (((MobEntity)entity).isBaby()) {
                float8 *= 0.5f;
            }
        }

* float4 was a myster, but it's just passed down as-is and used to determine the opacity of the shadow!

float float16 = (float)((opacity - (y - pos.getY()) / 2.0) * 0.5 * world.getBrightness(pos));
if (float16 >= 0.0f) {

* Forgot this one

* This is all low-hanging fruit.

* EntityRenderDispatcher.shouldRender(entity, frustrum, x, y, z)
-> EntityRenderer.isVisible(entity, frustrum, x, y, z)
-> Entity.shouldRenderFrom(x, y, z)

    @Environment(EnvType.CLIENT)
    public boolean shouldRenderFrom(double x, double y, double z) {
        double double8 = this.getX() - x;
        double double10 = this.getY() - y;
        double double12 = this.getZ() - z;
        double double14 = double8 * double8 + double10 * double10 + double12 * double12;
        return this.shouldRenderAtDistance(double14);
    }

* More things we know

* This is set by calling entity.getLeaningPitch

* This is only overriden by CreeperEntityRenderer and returns a float computed from the fuse time.
The value is then passed to getOverlay where it's passed to OverlayTexture.getU(animationCounter).

This causes the creeper to flash white when active. The same method,
interestingly, will use the V to create the hurt/death overlay

OverlayTexture.packUv(
	OverlayTexture.getU(animationCounter),
	OverlayTexture.getV(entity.hurtTime > 0 || entity.deathTime > 0)
)

* The final patches

* xrayEnabled -> isGlowing

* Commit suggestions/name changes I missed during rebase

Co-Authored-By: Juuxel <6596629+Juuxel@users.noreply.github.com>

* Fix typos

* yaw -> tickDelta

Co-Authored-By: liach <7806504+liach@users.noreply.github.com>

* provider -> vertexConsumers

Co-Authored-By: liach <7806504+liach@users.noreply.github.com>

* matrix -> matrices

Co-Authored-By: liach <7806504+liach@users.noreply.github.com>

* Fixed some encorrect names

* entry -> matrices

* textureU/V -> u/v

* isBanner -> isBannerBlock

* frustrum -> frustum

Co-Authored-By: Gegy <gegy1000@gmail.com>

* Fix broken/changed mappings for 20w10a

* grammar

Co-Authored-By: liach <7806504+liach@users.noreply.github.com>

* Update mappings/net/minecraft/client/particle/ItemPickupParticle.mapping

Co-Authored-By: liach <7806504+liach@users.noreply.github.com>

Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
Co-authored-by: liach <7806504+liach@users.noreply.github.com>
Co-authored-by: Gegy <gegy1000@gmail.com>
This commit is contained in:
­Sollace 2020-03-27 13:06:32 +02:00 committed by GitHub
parent c1d0d9db1f
commit 3d228282e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 123 additions and 56 deletions

View File

@ -4,11 +4,13 @@ CLASS net/minecraft/class_3879 net/minecraft/client/model/Model
FIELD field_21343 layerFactory Ljava/util/function/Function;
METHOD <init> (Ljava/util/function/Function;)V
ARG 1 layerFactory
METHOD accept (Ljava/lang/Object;)V
ARG 1 part
METHOD method_23500 getLayer (Lnet/minecraft/class_2960;)Lnet/minecraft/class_1921;
ARG 1 texture
METHOD method_2828 render (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;IIFFFF)V
ARG 1 matrices
ARG 2 vertexConsumer
ARG 2 vertices
ARG 3 light
ARG 4 overlay
ARG 5 red

View File

@ -27,12 +27,12 @@ CLASS net/minecraft/class_630 net/minecraft/client/model/ModelPart
METHOD method_17138 copyPositionAndRotation (Lnet/minecraft/class_630;)V
METHOD method_22698 render (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;II)V
ARG 1 matrices
ARG 2 vertexConsumer
ARG 2 vertices
ARG 3 light
ARG 4 overlay
METHOD method_22699 render (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;IIFFFF)V
ARG 1 matrices
ARG 2 vertexConsumer
ARG 2 vertices
ARG 3 light
ARG 4 overlay
ARG 5 red
@ -142,6 +142,7 @@ CLASS net/minecraft/class_630 net/minecraft/client/model/ModelPart
ARG 6 squishU
ARG 7 squishV
ARG 8 flip
ARG 9 direction
CLASS class_618 Vertex
FIELD field_3603 v F
FIELD field_3604 u F
@ -153,6 +154,7 @@ CLASS net/minecraft/class_630 net/minecraft/client/model/ModelPart
ARG 4 u
ARG 5 v
METHOD <init> (Lnet/minecraft/class_1160;FF)V
ARG 1 pos
ARG 2 u
ARG 3 v
METHOD method_2837 remap (FF)Lnet/minecraft/class_630$class_618;

View File

@ -1,6 +1,19 @@
CLASS net/minecraft/class_693 net/minecraft/client/particle/ItemPickupParticle
FIELD field_20944 bufferBuilderStorage Lnet/minecraft/class_4599;
FIELD field_3821 picker Lnet/minecraft/class_1297;
FIELD field_3823 item Lnet/minecraft/class_1297;
FIELD field_3824 entityRenderDispatcher Lnet/minecraft/class_898;
FIELD field_3826 existingTicks I
FIELD field_20944 bufferStorage Lnet/minecraft/class_4599;
FIELD field_3821 interactingEntity Lnet/minecraft/class_1297;
FIELD field_3823 itemEntity Lnet/minecraft/class_1297;
FIELD field_3824 dispatcher Lnet/minecraft/class_898;
FIELD field_3826 ticksExisted I
METHOD <init> (Lnet/minecraft/class_898;Lnet/minecraft/class_4599;Lnet/minecraft/class_1937;Lnet/minecraft/class_1297;Lnet/minecraft/class_1297;)V
ARG 1 dispatcher
ARG 2 bufferStorage
ARG 3 world
ARG 4 itemEntity
ARG 5 interactingEntity
METHOD <init> (Lnet/minecraft/class_898;Lnet/minecraft/class_4599;Lnet/minecraft/class_1937;Lnet/minecraft/class_1297;Lnet/minecraft/class_1297;Lnet/minecraft/class_243;)V
ARG 1 dispatcher
ARG 2 bufferStorage
ARG 3 world
ARG 4 itemEntity
ARG 5 interactingEntity
ARG 6 velocity

View File

@ -100,13 +100,13 @@ CLASS net/minecraft/class_761 net/minecraft/client/render/WorldRenderer
ARG 4 cameraY
ARG 6 cameraZ
ARG 8 tickDelta
ARG 9 matrix
ARG 9 matrices
ARG 10 vertexConsumers
METHOD method_22979 checkEmpty (Lnet/minecraft/class_4587;)V
ARG 1 matrix
ARG 1 matrices
METHOD method_22980 drawBox (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;DDDDDDFFFF)V
METHOD method_22981 drawBox (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;DDDDDDFFFFFFF)V
ARG 0 matrix
ARG 0 matrices
ARG 1 vertexConsumer
ARG 2 x1
ARG 4 y1

View File

@ -1,5 +1,14 @@
CLASS net/minecraft/class_823 net/minecraft/client/render/block/entity/BannerBlockEntityRenderer
FIELD field_20810 field Lnet/minecraft/class_630;
FIELD field_20811 verticalBar Lnet/minecraft/class_630;
FIELD field_20812 topBar Lnet/minecraft/class_630;
METHOD method_24080 createField ()Lnet/minecraft/class_630;
FIELD field_20810 banner Lnet/minecraft/class_630;
FIELD field_20811 pillar Lnet/minecraft/class_630;
FIELD field_20812 crossbar Lnet/minecraft/class_630;
METHOD method_23802 renderCanvas (Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;IILnet/minecraft/class_630;Lnet/minecraft/class_4730;ZLjava/util/List;)V
ARG 0 matrices
ARG 1 vertexConsumers
ARG 2 light
ARG 3 overlay
ARG 4 canvas
ARG 5 baseSprite
ARG 6 isBanner
ARG 7 patterns
METHOD method_24080 createBanner ()Lnet/minecraft/class_630;

View File

@ -5,7 +5,7 @@ CLASS net/minecraft/class_827 net/minecraft/client/render/block/entity/BlockEnti
METHOD method_3563 rendersOutsideBoundingBox (Lnet/minecraft/class_2586;)Z
ARG 1 blockEntity
METHOD method_3569 render (Lnet/minecraft/class_2586;FLnet/minecraft/class_4587;Lnet/minecraft/class_4597;II)V
ARG 1 blockEntity
ARG 1 entity
ARG 2 tickDelta
ARG 3 matrices
ARG 4 vertexConsumers

View File

@ -1,2 +1,7 @@
CLASS net/minecraft/class_826 net/minecraft/client/render/block/entity/ChestBlockEntityRenderer
FIELD field_4365 isChristmas Z
METHOD method_22749 (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;Lnet/minecraft/class_630;Lnet/minecraft/class_630;Lnet/minecraft/class_630;FII)V
ARG 1 matrices
ARG 2 vertices
ARG 7 light
ARG 8 overlay

View File

@ -10,18 +10,22 @@ CLASS net/minecraft/class_895 net/minecraft/client/render/entity/EnderDragonEnti
FIELD field_4669 EXPLOSION_TEXTURE Lnet/minecraft/class_2960;
FIELD field_4670 TEXTURE Lnet/minecraft/class_2960;
METHOD method_23156 (Lnet/minecraft/class_4588;Lnet/minecraft/class_1159;FF)V
ARG 0 vertexConsumer
ARG 1 vertexTransform
ARG 0 vertices
ARG 1 matrix
ARG 2 y
ARG 3 x
METHOD method_23157 (Lnet/minecraft/class_4588;Lnet/minecraft/class_1159;I)V
ARG 0 vertexConsumer
ARG 1 vertexTransform
ARG 0 vertices
ARG 1 matrix
ARG 2 alpha
METHOD method_23158 (Lnet/minecraft/class_4588;Lnet/minecraft/class_1159;FF)V
ARG 0 vertexConsumer
ARG 1 vertexTransform
ARG 0 vertices
ARG 1 matrix
ARG 2 y
ARG 3 x
METHOD method_23159 (Lnet/minecraft/class_4588;Lnet/minecraft/class_1159;FF)V
ARG 0 vertexConsumer
ARG 1 vertexTransform
ARG 0 vertices
ARG 1 matrix
ARG 2 y
ARG 3 z
METHOD method_3917 renderCrystalBeam (FFFFILnet/minecraft/class_4587;Lnet/minecraft/class_4597;I)V
@ -50,7 +54,7 @@ CLASS net/minecraft/class_895 net/minecraft/client/render/entity/EnderDragonEnti
FIELD field_3637 neck Lnet/minecraft/class_630;
METHOD method_23838 (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;IIFLnet/minecraft/class_630;Lnet/minecraft/class_630;Lnet/minecraft/class_630;Lnet/minecraft/class_630;Lnet/minecraft/class_630;Lnet/minecraft/class_630;Lnet/minecraft/class_630;)V
ARG 1 matrices
ARG 2 vertexConsumer
ARG 2 vertices
ARG 3 light
ARG 4 overlay
ARG 5 offset
ARG 5 offse

View File

@ -15,17 +15,17 @@ CLASS net/minecraft/class_898 net/minecraft/client/render/entity/EntityRenderDis
METHOD <init> (Lnet/minecraft/class_1060;Lnet/minecraft/class_918;Lnet/minecraft/class_3296;Lnet/minecraft/class_327;Lnet/minecraft/class_315;)V
ARG 1 textureManager
METHOD method_17145 register (Lnet/minecraft/class_1299;Lnet/minecraft/class_897;)V
METHOD method_23161 fireVertex (Lnet/minecraft/class_4587$class_4665;Lnet/minecraft/class_4588;FFFFF)V
ARG 0 matrix
ARG 1 vertexConsumer
METHOD method_23161 drawFireVertex (Lnet/minecraft/class_4587$class_4665;Lnet/minecraft/class_4588;FFFFF)V
ARG 0 entry
ARG 1 vertices
ARG 2 x
ARG 3 y
ARG 4 z
ARG 5 u
ARG 6 v
METHOD method_23162 shadowVertex (Lnet/minecraft/class_4587$class_4665;Lnet/minecraft/class_4588;FFFFFF)V
ARG 0 matrix
ARG 1 vertexConsumer
METHOD method_23162 drawShadowVertex (Lnet/minecraft/class_4587$class_4665;Lnet/minecraft/class_4588;FFFFFF)V
ARG 0 entry
ARG 1 vertices
ARG 2 alpha
ARG 3 x
ARG 4 y
@ -33,27 +33,37 @@ CLASS net/minecraft/class_898 net/minecraft/client/render/entity/EntityRenderDis
ARG 6 u
ARG 7 v
METHOD method_23163 renderShadowPart (Lnet/minecraft/class_4587$class_4665;Lnet/minecraft/class_4588;Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;DDDFF)V
ARG 0 matrix
ARG 1 vertexConsumer
ARG 0 entry
ARG 1 vertices
ARG 2 world
ARG 3 pos
ARG 4 x
ARG 6 y
ARG 8 z
ARG 10 size
ARG 11 darkness
METHOD method_23165 renderFire (Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1297;)V
ARG 10 radius
ARG 11 opacity
METHOD method_23164 drawBox (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;Lnet/minecraft/class_1297;FFF)V
ARG 1 matrix
ARG 2 vertices
ARG 3 entity
ARG 4 red
ARG 5 green
ARG 6 blue
METHOD method_23165 renderFire (Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1297;)V
ARG 1 matrices
ARG 2 vertexConsumers
ARG 3 entity
METHOD method_23166 renderShadow (Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1297;FFLnet/minecraft/class_4538;F)V
ARG 0 matrices
ARG 1 vertexConsumers
ARG 2 entity
ARG 3 darkness
ARG 3 opacity
ARG 4 tickDelta
ARG 5 world
ARG 6 size
ARG 6 radius
METHOD method_23167 registerRenderers (Lnet/minecraft/class_918;Lnet/minecraft/class_3296;)V
METHOD method_23168 getSquaredDistanceToCamera (Lnet/minecraft/class_1297;)D
ARG 1 entity
METHOD method_23839 getLight (Lnet/minecraft/class_1297;F)I
ARG 1 entity
ARG 2 tickDelta
@ -63,7 +73,7 @@ CLASS net/minecraft/class_898 net/minecraft/client/render/entity/EntityRenderDis
METHOD method_3941 configure (Lnet/minecraft/class_1937;Lnet/minecraft/class_4184;Lnet/minecraft/class_1297;)V
ARG 1 world
ARG 2 camera
ARG 3 targetedEntity
ARG 3 target
METHOD method_3944 setWorld (Lnet/minecraft/class_1937;)V
ARG 1 world
METHOD method_3948 setRenderShadows (Z)V
@ -72,9 +82,9 @@ CLASS net/minecraft/class_898 net/minecraft/client/render/entity/EntityRenderDis
METHOD method_3950 shouldRender (Lnet/minecraft/class_1297;Lnet/minecraft/class_4604;DDD)Z
ARG 1 entity
ARG 2 frustum
ARG 3 cameraX
ARG 5 cameraY
ARG 7 cameraZ
ARG 3 x
ARG 5 y
ARG 7 z
METHOD method_3953 getRenderer (Lnet/minecraft/class_1297;)Lnet/minecraft/class_897;
ARG 1 entity
METHOD method_3954 render (Lnet/minecraft/class_1297;DDDFFLnet/minecraft/class_4587;Lnet/minecraft/class_4597;I)V
@ -90,6 +100,10 @@ CLASS net/minecraft/class_898 net/minecraft/client/render/entity/EntityRenderDis
METHOD method_3955 setRenderHitboxes (Z)V
ARG 1 value
METHOD method_3956 renderHitbox (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;Lnet/minecraft/class_1297;F)V
ARG 1 matrices
ARG 2 vertices
ARG 3 entity
ARG 4 tickDelta
METHOD method_3958 shouldRenderHitboxes ()Z
METHOD method_3959 getSquaredDistanceToCamera (DDD)D
ARG 1 x

View File

@ -1,6 +1,6 @@
CLASS net/minecraft/class_897 net/minecraft/client/render/entity/EntityRenderer
FIELD field_4672 shadowDarkness F
FIELD field_4673 shadowSize F
FIELD field_4672 shadowOpacity F
FIELD field_4673 shadowRadius F
FIELD field_4676 dispatcher Lnet/minecraft/class_898;
METHOD <init> (Lnet/minecraft/class_898;)V
ARG 1 dispatcher
@ -29,10 +29,10 @@ CLASS net/minecraft/class_897 net/minecraft/client/render/entity/EntityRenderer
METHOD method_3932 getFontRenderer ()Lnet/minecraft/class_327;
METHOD method_3933 shouldRender (Lnet/minecraft/class_1297;Lnet/minecraft/class_4604;DDD)Z
ARG 1 entity
ARG 2 visibleRegion
ARG 3 cameraX
ARG 5 cameraY
ARG 7 cameraZ
ARG 2 frustum
ARG 3 x
ARG 5 y
ARG 7 z
METHOD method_3936 render (Lnet/minecraft/class_1297;FFLnet/minecraft/class_4587;Lnet/minecraft/class_4597;I)V
ARG 1 entity
ARG 2 yaw

View File

@ -5,10 +5,10 @@ CLASS net/minecraft/class_922 net/minecraft/client/render/entity/LivingEntityRen
METHOD <init> (Lnet/minecraft/class_898;Lnet/minecraft/class_583;F)V
ARG 1 dispatcher
ARG 2 model
ARG 3 shadowSize
ARG 3 shadowRadius
METHOD method_18656 getYaw (Lnet/minecraft/class_2350;)F
ARG 0 direction
METHOD method_23185 getWhiteOverlayProgress (Lnet/minecraft/class_1309;F)F
METHOD method_23185 getAnimationCounter (Lnet/minecraft/class_1309;F)F
ARG 1 entity
ARG 2 tickDelta
METHOD method_23622 getOverlay (Lnet/minecraft/class_1309;F)I
@ -21,8 +21,9 @@ CLASS net/minecraft/class_922 net/minecraft/client/render/entity/LivingEntityRen
ARG 2 showBody
ARG 3 translucent
METHOD method_25450 isShaking (Lnet/minecraft/class_1309;)Z
COMMENT Returns if this entity is shaking, as if a zombie villager, zombie,
COMMENT husk, or piglin undergoing conversion.
COMMENT Returns if this entity is shaking in the way a zombie villager,
COMMENT zombie, husk, or piglin undergoing conversion shakes.
COMMENT husk, or piglin are undergoing conversion.
ARG 1 entity
METHOD method_4039 getLyingAngle (Lnet/minecraft/class_1309;)F
ARG 1 entity
@ -40,7 +41,7 @@ CLASS net/minecraft/class_922 net/minecraft/client/render/entity/LivingEntityRen
ARG 2 tickDelta
METHOD method_4046 addFeature (Lnet/minecraft/class_3887;)Z
ARG 1 feature
METHOD method_4056 isFullyVisible (Lnet/minecraft/class_1309;)Z
METHOD method_4056 isVisible (Lnet/minecraft/class_1309;)Z
ARG 1 entity
METHOD method_4058 setupTransforms (Lnet/minecraft/class_1309;Lnet/minecraft/class_4587;FFF)V
ARG 1 entity

View File

@ -2,7 +2,7 @@ CLASS net/minecraft/class_4507 net/minecraft/client/render/entity/feature/StuckO
METHOD <init> (Lnet/minecraft/class_922;)V
ARG 1 entityRenderer
METHOD method_22130 renderObject (Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;ILnet/minecraft/class_1297;FFFF)V
ARG 1 matrix
ARG 1 matrices
ARG 2 vertexConsumers
ARG 3 light
ARG 4 entity

View File

@ -8,3 +8,12 @@ CLASS net/minecraft/class_557 net/minecraft/client/render/entity/model/BookModel
FIELD field_3338 rightCover Lnet/minecraft/class_630;
FIELD field_3339 rightPage Lnet/minecraft/class_630;
METHOD method_17073 setPageAngles (FFFF)V
METHOD method_24184 (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;IIFFFF)V
ARG 1 matrices
ARG 2 vertices
ARG 3 light
ARG 4 overlay
ARG 5 red
ARG 6 green
ARG 7 blue
ARG 8 alpha

View File

@ -14,4 +14,12 @@ CLASS net/minecraft/class_591 net/minecraft/client/render/entity/model/PlayerEnt
METHOD method_22697 getRandomPart (Ljava/util/Random;)Lnet/minecraft/class_630;
ARG 1 random
METHOD method_2823 renderCape (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;II)V
ARG 1 matrices
ARG 2 vertices
ARG 3 light
ARG 4 overlay
METHOD method_2824 renderEars (Lnet/minecraft/class_4587;Lnet/minecraft/class_4588;II)V
ARG 1 matrices
ARG 2 vertices
ARG 3 light
ARG 4 overlay

View File

@ -5,4 +5,3 @@ CLASS net/minecraft/class_607 net/minecraft/client/render/entity/model/SkullEnti
ARG 2 textureV
ARG 3 textureWidth
ARG 4 textureHeight
METHOD method_2821 render (FFF)V

View File

@ -13,5 +13,6 @@ CLASS net/minecraft/class_756 net/minecraft/client/render/item/BuiltinModelItemR
METHOD method_3166 render (Lnet/minecraft/class_1799;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;II)V
ARG 1 stack
ARG 2 matrix
ARG 3 vertexConsumers
ARG 4 light
ARG 5 overlay