• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Вопрос Не могу отрендерить обьект на 3Д матрице | Fabric 1.21.4

Начинающий
Начинающий
Статус
Онлайн
Регистрация
16 Июл 2024
Сообщения
41
Реакции
0
Вот таким прекрасным образом я хукнул ивент

Java:
Expand Collapse Copy
public void hookr3d(RenderTickCounter renderTickCounter, CallbackInfo ci, @Local(ordinal = 2) Matrix4f matrix4f2) {
    MatrixStack matrixStack = new MatrixStack();
    matrixStack.multiplyPositionMatrix(matrix4f2);

    MOD.getEventBus().post(new EventRender3D(matrixStack));
    BatchedRenderer.flush();
}
Cюда это дело инжектится
1754249650895.png


И вот таким образом пытаюсь отрисовать хоть бы обычную линию

Java:
Expand Collapse Copy
@EventHandler
private void on3D(EventRender3D e) {
    RenderSystem.enableBlend();
    RenderSystem.defaultBlendFunc();
    RenderSystem.disableDepthTest();

    RenderSystem.setShader(ShaderProgramKeys.POSITION_COLOR);
    RenderSystem.lineWidth(2.0F);

    BufferBuilder buffer = Tessellator.getInstance().begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR);

    e.getMatrixStack().push();

    buffer.vertex(e.getMatrix(), 0, 100, 0).color(-1);
    buffer.vertex(e.getMatrix(), 10, 100, -10).color(-1);

    BufferRenderer.drawWithGlobalProgram(buffer.endNullable());

    e.getMatrixStack().pop();

    RenderSystem.disableBlend();
    RenderSystem.enableDepthTest();
    RenderSystem.enableCull();
}

Это вродь мвп матрица хз что за траблы, но полосочки на координатах 0 100 0 нет
 
ты матрицу не корректируешь по яву/питчу камеры, посмотри код тандерхака, он инжектит туда же
 
ты матрицу не корректируешь по яву/питчу камеры, посмотри код тандерхака, он инжектит туда же
1. Там не туда миксин
2. Применив эти прекрасные трансофрмации, у меня не пофиксился рендер линий, но в добавок сломалась функция перевода пространственных координат в экранные, так что да
 
Я пофиксил, оказывается матрица нихрена не мвп, поэтому я думал что у меня костыльно робит ворлд2скрин, для фикса, что логично, требудеться производить рендер относительно камеры
 
Я пофиксил, оказывается матрица нихрена не мвп, поэтому я думал что у меня костыльно робит ворлд2скрин, для фикса, что логично, требудеться производить рендер относительно камеры
и что странно ты еще колор -1 поставил
 
Вот таким прекрасным образом я хукнул ивент

Java:
Expand Collapse Copy
public void hookr3d(RenderTickCounter renderTickCounter, CallbackInfo ci, @Local(ordinal = 2) Matrix4f matrix4f2) {
    MatrixStack matrixStack = new MatrixStack();
    matrixStack.multiplyPositionMatrix(matrix4f2);

    MOD.getEventBus().post(new EventRender3D(matrixStack));
    BatchedRenderer.flush();
}
Cюда это дело инжектится Посмотреть вложение 312352

И вот таким образом пытаюсь отрисовать хоть бы обычную линию

Java:
Expand Collapse Copy
@EventHandler
private void on3D(EventRender3D e) {
    RenderSystem.enableBlend();
    RenderSystem.defaultBlendFunc();
    RenderSystem.disableDepthTest();

    RenderSystem.setShader(ShaderProgramKeys.POSITION_COLOR);
    RenderSystem.lineWidth(2.0F);

    BufferBuilder buffer = Tessellator.getInstance().begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR);

    e.getMatrixStack().push();

    buffer.vertex(e.getMatrix(), 0, 100, 0).color(-1);
    buffer.vertex(e.getMatrix(), 10, 100, -10).color(-1);

    BufferRenderer.drawWithGlobalProgram(buffer.endNullable());

    e.getMatrixStack().pop();

    RenderSystem.disableBlend();
    RenderSystem.enableDepthTest();
    RenderSystem.enableCull();
}

Это вродь мвп матрица хз что за траблы, но полосочки на координатах 0 100 0 нет
Надо - кординаты камеры сдедать
 
Вот таким прекрасным образом я хукнул ивент

Java:
Expand Collapse Copy
public void hookr3d(RenderTickCounter renderTickCounter, CallbackInfo ci, @Local(ordinal = 2) Matrix4f matrix4f2) {
    MatrixStack matrixStack = new MatrixStack();
    matrixStack.multiplyPositionMatrix(matrix4f2);

    MOD.getEventBus().post(new EventRender3D(matrixStack));
    BatchedRenderer.flush();
}
Cюда это дело инжектится Посмотреть вложение 312352

И вот таким образом пытаюсь отрисовать хоть бы обычную линию

Java:
Expand Collapse Copy
@EventHandler
private void on3D(EventRender3D e) {
    RenderSystem.enableBlend();
    RenderSystem.defaultBlendFunc();
    RenderSystem.disableDepthTest();

    RenderSystem.setShader(ShaderProgramKeys.POSITION_COLOR);
    RenderSystem.lineWidth(2.0F);

    BufferBuilder buffer = Tessellator.getInstance().begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR);

    e.getMatrixStack().push();

    buffer.vertex(e.getMatrix(), 0, 100, 0).color(-1);
    buffer.vertex(e.getMatrix(), 10, 100, -10).color(-1);

    BufferRenderer.drawWithGlobalProgram(buffer.endNullable());

    e.getMatrixStack().pop();

    RenderSystem.disableBlend();
    RenderSystem.enableDepthTest();
    RenderSystem.enableCull();
}

Это вродь мвп матрица хз что за траблы, но полосочки на координатах 0 100 0 нет
Попробуй хукнутся к месту рендера облоков или типо того и возьми матрицу от туда
 
Назад
Сверху Снизу