WorldRenderEvents.BEFORE_ENTITIES.register(context -> {
MinecraftClient mc = MinecraftClient.getInstance();
RenderLayer renderLayer = NewRenderLayer.getNewLayer(new Identifier("luminance", "textures/re45.png"));
VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();
VertexConsumer vertexConsumer = immediate.getBuffer(renderLayer);
context.matrixStack().push();
context.matrixStack().translate(-context.camera().getPos().x, -context.camera().getPos().y, -context.camera().getPos().z);
if(!modelBuffers.containsKey("myModel"))
bakeModel("myModel", objParser);
// render via baked buffer
VertexBuffer vertexBuffer = modelBuffers.get("myModel");
renderLayer.startDrawing();
vertexBuffer.bind();
// temp fix: lighting is baked, so I artificially darken the whole model (to be implemented)
RenderSystem.setShaderColor(0.0f, 0.0f, 0.0f, 1.0f);
Matrix4f m4f = new Matrix4f(context.matrixStack().peek().getPositionMatrix());
var matrix = new Matrix4f(RenderSystem.getModelViewMatrix()).mul(m4f);
vertexBuffer.draw(matrix, context.projectionMatrix(), GameRenderer.getRenderTypeEntitySolidProgram());
renderLayer.endDrawing();
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
context.matrixStack().pop();
});
WorldRenderEvents.BEFORE_ENTITIES.register(context -> {
MinecraftClient mc = MinecraftClient.getInstance();
RenderLayer renderLayer = NewRenderLayer.getNewLayer(new Identifier("luminance", "textures/re45.png"));
VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();
VertexConsumer vertexConsumer = immediate.getBuffer(renderLayer);
context.matrixStack().push();
context.matrixStack().translate(-context.camera().getPos().x, -context.camera().getPos().y, -context.camera().getPos().z);
if(!modelBuffers.containsKey("myModel"))
bakeModel("myModel", objParser);
// render via baked buffer
VertexBuffer vertexBuffer = modelBuffers.get("myModel");
renderLayer.startDrawing();
vertexBuffer.bind();
// temp fix: lighting is baked, so I artificially darken the whole model (to be implemented)
RenderSystem.setShaderColor(0.0f, 0.0f, 0.0f, 1.0f);
Matrix4f m4f = new Matrix4f(context.matrixStack().peek().getPositionMatrix());
var matrix = new Matrix4f(RenderSystem.getModelViewMatrix()).mul(m4f);
vertexBuffer.draw(matrix, context.projectionMatrix(), GameRenderer.getRenderTypeEntitySolidProgram());
renderLayer.endDrawing();
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
context.matrixStack().pop();
});