Der Text wird an der falschen Position wiedergegebenJava

Java-Forum
Anonymous
 Der Text wird an der falschen Position wiedergegeben

Post by Anonymous »

Ich versuche, Text mit diesen Funktionen an einer bestimmten Position darzustellen:

Code: Select all

public void renderText(Vec3d pos) {
var client = MinecraftClient.getInstance();
if (client == null) return;
var textRenderer = client.textRenderer;

if (buffer == null) return;
matrixStack.push();

Render3DUtils.calculateModelViewMatrix(matrixStack, pos, camera);
matrixStack.scale(-0.025f, -0.025f, 0);

textRenderer.draw(Text.literal("123"), 0, 0, 0xffffffff, true, matrixStack.peek().getPositionMatrix(),
MinecraftClient.getInstance().getBufferBuilders().getEntityVertexConsumers(),
TextRenderer.TextLayerType.NORMAL,
0, 0xF000F0);

matrixStack.pop();
}

Code: Select all

public static void calculateModelViewMatrix(MatrixStack matrixStack, Vec3d worldPos, Camera camera) {
Quaternionf inverseRotation = new Quaternionf();
camera.getRotation().conjugate(inverseRotation);
matrixStack.multiply(inverseRotation);
matrixStack.translate(
(float)-camera.getPos().x,
(float)-camera.getPos().y,
(float)-camera.getPos().z
);
matrixStack.translate(
(float)worldPos.x,
(float)worldPos.y,
(float)worldPos.z
);
}
Aber es wird überhaupt falsch gerendert. Der Text ändert seine Position und wird an der falschen Stelle wiedergegeben. Ich versuche, es an der Position (0, 0, 0) zu rendern, und das ist, was ich bekomme:
Image
Image

UPD: Zur Verdeutlichung, ich Ich habe einen Punkt hinzugefügt, an dem ich erwarte, Text zu sehen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post