Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Как сделать шейдерный Block Overlay

  • Автор темы Автор темы Sranyi
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
4 Янв 2024
Сообщения
38
Реакции
0
я знаю что он делается с помощью логики енд портала, но как заменить текстуру на свою или че с этим делать
Знімок екрана 2026-02-27 172441.png
 
Прикольный GlowEsp, если не жалко можешь дать его, а ну и вот как можно отрендерить такое
RenderSystem.setShader(ShaderProgramKeys.RENDERTYPE_END_PORTAL)
 
Прикольный GlowEsp, если не жалко можешь дать его, а ну и вот как можно отрендерить такое
RenderSystem.setShader(ShaderProgramKeys.RENDERTYPE_END_PORTAL)
легенда, уже несколько дней мучаюсь
 
Это и есть уже шейдер именно для рендера вершин как на скрине
Minecraft.getInstance().renderBuffers().bufferSource().getBuffer(RenderTypes.endPortal())
так а как мне сделать такой же эффект как в вексе? (noad) там тот же эффект глубины как у энд портала, я реально не понимаю и уже запутался
 
так а как мне сделать такой же эффект как в вексе? (noad) там тот же эффект глубины как у энд портала, я реально не понимаю и уже запутался
шейдер нормальный надо а не юзать майнкрафта
 
так а как мне сделать такой же эффект как в вексе? (noad) там тот же эффект глубины как у энд портала, я реально не понимаю и уже запутался
Ну для интереса я на 1.21.11 сделал через mixin напрямую заменив LevelRenderer::renderBlockOutline на свой
Мб может можно было взять готовый сборщик вершин для параллелепипедов в майне но я не нашел
Но через ENDER_PORTAL вообще не самый лучший вариант для этого
Java:
Expand Collapse Copy
BlockOutlineRenderState blockOutlineRenderState = levelRenderState.blockOutlineRenderState;
        if (blockOutlineRenderState != null && blockOutlineRenderState.isTranslucent() == bl) {
            Vec3 camera = levelRenderState.cameraRenderState.pos;
            BlockPos pos = blockOutlineRenderState.pos();

            VertexConsumer vertexConsumer = bufferSource.getBuffer(RenderTypes.endPortal());
            PoseStack.Pose lastPose = poseStack.last();

            blockOutlineRenderState.shape().forAllBoxes((minX, minY, minZ, maxX, maxY, maxZ) -> {
                float deltaX = (float) (pos.getX() - camera.x);
                float deltaY = (float) (pos.getY() - camera.y);
                float deltaZ = (float) (pos.getZ() - camera.z);

                float offset = 0.0025F;

                float x1 = (float) (minX + deltaX) - offset;
                float y1 = (float) (minY + deltaY) - offset;
                float z1 = (float) (minZ + deltaZ) - offset;
                float x2 = (float) (maxX + deltaX) + offset;
                float y2 = (float) (maxY + deltaY) + offset;
                float z2 = (float) (maxZ + deltaZ) + offset;

                vertexConsumer.addVertex(lastPose, x1, y2, z1);
                vertexConsumer.addVertex(lastPose, x1, y2, z2);
                vertexConsumer.addVertex(lastPose, x2, y2, z2);
                vertexConsumer.addVertex(lastPose, x2, y2, z1);
                vertexConsumer.addVertex(lastPose, x1, y1, z1);
                vertexConsumer.addVertex(lastPose, x2, y1, z1);
                vertexConsumer.addVertex(lastPose, x2, y1, z2);
                vertexConsumer.addVertex(lastPose, x1, y1, z2);
                vertexConsumer.addVertex(lastPose, x1, y1, z1);
                vertexConsumer.addVertex(lastPose, x1, y2, z1);
                vertexConsumer.addVertex(lastPose, x2, y2, z1);
                vertexConsumer.addVertex(lastPose, x2, y1, z1);
                vertexConsumer.addVertex(lastPose, x1, y1, z2);
                vertexConsumer.addVertex(lastPose, x2, y1, z2);
                vertexConsumer.addVertex(lastPose, x2, y2, z2);
                vertexConsumer.addVertex(lastPose, x1, y2, z2);
                vertexConsumer.addVertex(lastPose, x1, y1, z1);
                vertexConsumer.addVertex(lastPose, x1, y1, z2);
                vertexConsumer.addVertex(lastPose, x1, y2, z2);
                vertexConsumer.addVertex(lastPose, x1, y2, z1);
                vertexConsumer.addVertex(lastPose, x2, y1, z1);
                vertexConsumer.addVertex(lastPose, x2, y2, z1);
                vertexConsumer.addVertex(lastPose, x2, y2, z2);
                vertexConsumer.addVertex(lastPose, x2, y1, z2);
            });

            bufferSource.endBatch(RenderTypes.endPortal());
            callbackInfo.cancel();
        }
1772308826406.png
 
Назад
Сверху Снизу