Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Поворот вершин

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
17 Дек 2024
Сообщения
43
Реакции
0
я не особо хорошо разбираюсь в рендеринге, как сделать так, чтобы вершины прямоугольника всегда были повернуты к игроку?
box render:
Expand Collapse Copy
var poseStack = event.getPoseStack();
        Vec3 view = mc.gameRenderer.getMainCamera().getPosition();

        for (Player player : mc.player.level().players()) {
            if (player != mc.player) {

                float x = (float) (player.getX() - view.x);
                float y = (float) (player.getY() - view.y);
                float z = (float) (player.getZ() - view.z);
                float width = player.getBbWidth();
                float height = player.getBbHeight();


                var tesselator = Tesselator.getInstance();
                var buffer = tesselator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR);


                buffer.addVertex(x, y, z).setColor(1f, 1f, 1f, 1f);
                buffer.addVertex(x + width, y, z).setColor(1f, 1f, 1f, 1f);
                buffer.addVertex(x + width, y + height, z).setColor(1f, 1f, 1f, 1f);
                buffer.addVertex(x, y + height, z).setColor(1f, 1f, 1f, 1f);
                poseStack.pushPose();
                Matrix4f matrix = poseStack.last().pose();

                RenderSystem.setShader(GameRenderer::getPositionColorShader);
                RenderSystem.enableBlend();
                RenderSystem.defaultBlendFunc();
                BufferUploader.drawWithShader(buffer.buildOrThrow());
                RenderSystem.disableBlend();
                poseStack.popPose();
            }
        }
    }
}
 
я не особо хорошо разбираюсь в рендеринге, как сделать так, чтобы вершины прямоугольника всегда были повернуты к игроку?
box render:
Expand Collapse Copy
var poseStack = event.getPoseStack();
        Vec3 view = mc.gameRenderer.getMainCamera().getPosition();

        for (Player player : mc.player.level().players()) {
            if (player != mc.player) {

                float x = (float) (player.getX() - view.x);
                float y = (float) (player.getY() - view.y);
                float z = (float) (player.getZ() - view.z);
                float width = player.getBbWidth();
                float height = player.getBbHeight();


                var tesselator = Tesselator.getInstance();
                var buffer = tesselator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR);


                buffer.addVertex(x, y, z).setColor(1f, 1f, 1f, 1f);
                buffer.addVertex(x + width, y, z).setColor(1f, 1f, 1f, 1f);
                buffer.addVertex(x + width, y + height, z).setColor(1f, 1f, 1f, 1f);
                buffer.addVertex(x, y + height, z).setColor(1f, 1f, 1f, 1f);
                poseStack.pushPose();
                Matrix4f matrix = poseStack.last().pose();

                RenderSystem.setShader(GameRenderer::getPositionColorShader);
                RenderSystem.enableBlend();
                RenderSystem.defaultBlendFunc();
                BufferUploader.drawWithShader(buffer.buildOrThrow());
                RenderSystem.disableBlend();
                poseStack.popPose();
            }
        }
    }
}
up
 
Назад
Сверху Снизу