Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 17 Дек 2024
- Сообщения
- 43
- Реакции
- 0
я не особо хорошо разбираюсь в рендеринге, как сделать так, чтобы вершины прямоугольника всегда были повернуты к игроку?
box render:
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();
}
}
}
}