Вопрос Помогите с shader esp(exp 3.1)

  • Автор темы Автор темы popa789
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
21 Окт 2023
Сообщения
56
Реакции
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Почему может не рендерится обводка shader esp?

Код:
Expand Collapse Copy
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;

import im.expensive.events.EventPreRender3D;
import im.expensive.events.EventRender2D;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.ui.Theme;
import im.expensive.utils.CustomFramebuffer;
import im.expensive.utils.projections.ProjectionUtil;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.ESPShader;
import im.expensive.utils.render.OutlineShader;
import im.expensive.utils.shader.ShaderUtil;
import net.minecraft.client.MainWindow;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.settings.PointOfView;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import org.joml.Vector2d;

@FunctionRegister(name = "ShaderEsp", type = Category.Render)
public class ShaderEsp extends Function {
    private final ShaderUtil gradient = new ShaderUtil("gradient");
    private final CustomFramebuffer buffer = new CustomFramebuffer(true);
    private final ESPShader bloom = new ESPShader();

    private final BooleanSetting glowEnabled = new BooleanSetting("Глоу", true);
    private final SliderSetting glow = new SliderSetting("Сила", 6, 1, 10, 1).setVisible(() -> glowEnabled.get());
    private final SliderSetting outline = new SliderSetting("Обводка", 1, 1, 3, 0.1f);

    private static final float MAX_DISTANCE = 128;

    public ShaderEsp() {
        addSettings(glowEnabled, glow, outline);
    }

    public Vector3d[] getCorners(AxisAlignedBB AABB) {
        return new Vector3d[]{
                new Vector3d(AABB.minX, AABB.minY, AABB.minZ),
                new Vector3d(AABB.minX, AABB.minY, AABB.maxZ),
                new Vector3d(AABB.minX, AABB.maxY, AABB.minZ),
                new Vector3d(AABB.minX, AABB.maxY, AABB.maxZ),
                new Vector3d(AABB.maxX, AABB.minY, AABB.minZ),
                new Vector3d(AABB.maxX, AABB.minY, AABB.maxZ),
                new Vector3d(AABB.maxX, AABB.maxY, AABB.minZ),
                new Vector3d(AABB.maxX, AABB.maxY, AABB.maxZ)
        };
    }

    public void patch(PlayerEntity entity, Runnable runnable) {
        float[] color = ColorUtils.getRGBAf(HUD.getColor(0));
        Vector3d interpolated = entity.getPositionVec().subtract(entity.getPositionVec(mc.getRenderPartialTicks()));
        AxisAlignedBB AABB = entity.getBoundingBox().offset(interpolated.inverse().add(interpolated.scale(mc.getRenderPartialTicks())));
        Vector2d center = ProjectionUtil.project2D(AABB.getCenter());
        if (center == null) return;

        if (center == null) return;

        double minX = center.x, minY = center.y, maxX = center.x, maxY = center.y;

        for (Vector3d corner : getCorners(AABB)) {
            Vector2d vec = ProjectionUtil.project2D(corner);
            if (vec == null) return;
            if (vec != null) {
                minX = Math.min(minX, vec.x);
                minY = Math.min(minY, vec.y);
                maxX = Math.max(maxX, vec.x);
                maxY = Math.max(maxY, vec.y);
            }
        }

        double posX = minX, posY = minY, width = maxX - minX, height = maxY - minY;
        MainWindow mw = mc.getMainWindow();
        gradient.attach();
        gradient.setUniformf("location", (float) (posX * mw.getScaleFactor()), (float) ((mw.getHeight() - (height * mw.getScaleFactor())) - (posY * mw.getScaleFactor())));
        gradient.setUniformf("rectSize", (float) (width * mw.getScaleFactor()), (float) (height * mw.getScaleFactor()));
        gradient.setUniformi("tex", 0);

        for (int i = 1; i <= 4; i++) {
            gradient.setUniformf("color" + i, color);
        }

        runnable.run();
        gradient.detach();
    }

    @Subscribe
    public void onRender3D(EventPreRender3D e) {
        MatrixStack stack = e.getMatrix();
        buffer.setup(false);

        for (PlayerEntity entity : mc.world.getPlayers()) {
            if (entity instanceof ClientPlayerEntity && mc.gameSettings.getPointOfView() == PointOfView.FIRST_PERSON || mc.player.getDistance(entity) > MAX_DISTANCE)
                continue;

            patch(entity, () -> {
                EntityRendererManager rendererManager = mc.getRenderManager();
                stack.push();
                stack.translate(-rendererManager.renderPosX(), -rendererManager.renderPosY(), -rendererManager.renderPosZ());
                GlStateManager.depthMask(true);
                rendererManager.setRenderShadow(false);
                rendererManager.setRenderName(false);
                IRenderTypeBuffer.Impl irendertypebuffer$impl = mc.getRenderTypeBuffers().getBufferSource();

                Vector3d pos = entity.getPositionVec(e.getPartialTicks());
                EntityRenderer<?> renderer = rendererManager.getRenderer(entity);
                boolean nameVisible = renderer.isRenderName();

                if (nameVisible) {
                    renderer.setRenderName(false);
                }

                rendererManager.renderEntityStaticGlow(entity, pos.getX(), pos.getY(), pos.getZ(), entity.rotationYaw, e.getPartialTicks(), stack, irendertypebuffer$impl, rendererManager.getPackedLight(entity, e.getPartialTicks()));

                if (nameVisible) {
                    renderer.setRenderName(true);
                }

                irendertypebuffer$impl.finish();
                rendererManager.setRenderName(true);
                rendererManager.setRenderShadow(true);
                GlStateManager.depthMask(false);
                GlStateManager.enableDepthTest();
                stack.pop();
            });
        }

        buffer.stop();
    }

    @Subscribe
    public void onRender2D(EventRender2D e) {
        OutlineShader.addTask2D(buffer::draw);
        OutlineShader.draw((int) Math.round(outline.get()));

        if (glowEnabled.get()) {
            bloom.addTask2D(buffer::draw);
            bloom.draw(Math.max(glow.get().intValue() / 2, 3), glow.get(), ESPShader.RenderType.DISPLAY, 2);
        }

        buffer.framebufferClear();
        mc.getFramebuffer().bindFramebuffer(true);
    }
}
 
Почему может не рендерится обводка shader esp?

Код:
Expand Collapse Copy
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;

import im.expensive.events.EventPreRender3D;
import im.expensive.events.EventRender2D;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.ui.Theme;
import im.expensive.utils.CustomFramebuffer;
import im.expensive.utils.projections.ProjectionUtil;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.ESPShader;
import im.expensive.utils.render.OutlineShader;
import im.expensive.utils.shader.ShaderUtil;
import net.minecraft.client.MainWindow;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.settings.PointOfView;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import org.joml.Vector2d;

@FunctionRegister(name = "ShaderEsp", type = Category.Render)
public class ShaderEsp extends Function {
    private final ShaderUtil gradient = new ShaderUtil("gradient");
    private final CustomFramebuffer buffer = new CustomFramebuffer(true);
    private final ESPShader bloom = new ESPShader();

    private final BooleanSetting glowEnabled = new BooleanSetting("Глоу", true);
    private final SliderSetting glow = new SliderSetting("Сила", 6, 1, 10, 1).setVisible(() -> glowEnabled.get());
    private final SliderSetting outline = new SliderSetting("Обводка", 1, 1, 3, 0.1f);

    private static final float MAX_DISTANCE = 128;

    public ShaderEsp() {
        addSettings(glowEnabled, glow, outline);
    }

    public Vector3d[] getCorners(AxisAlignedBB AABB) {
        return new Vector3d[]{
                new Vector3d(AABB.minX, AABB.minY, AABB.minZ),
                new Vector3d(AABB.minX, AABB.minY, AABB.maxZ),
                new Vector3d(AABB.minX, AABB.maxY, AABB.minZ),
                new Vector3d(AABB.minX, AABB.maxY, AABB.maxZ),
                new Vector3d(AABB.maxX, AABB.minY, AABB.minZ),
                new Vector3d(AABB.maxX, AABB.minY, AABB.maxZ),
                new Vector3d(AABB.maxX, AABB.maxY, AABB.minZ),
                new Vector3d(AABB.maxX, AABB.maxY, AABB.maxZ)
        };
    }

    public void patch(PlayerEntity entity, Runnable runnable) {
        float[] color = ColorUtils.getRGBAf(HUD.getColor(0));
        Vector3d interpolated = entity.getPositionVec().subtract(entity.getPositionVec(mc.getRenderPartialTicks()));
        AxisAlignedBB AABB = entity.getBoundingBox().offset(interpolated.inverse().add(interpolated.scale(mc.getRenderPartialTicks())));
        Vector2d center = ProjectionUtil.project2D(AABB.getCenter());
        if (center == null) return;

        if (center == null) return;

        double minX = center.x, minY = center.y, maxX = center.x, maxY = center.y;

        for (Vector3d corner : getCorners(AABB)) {
            Vector2d vec = ProjectionUtil.project2D(corner);
            if (vec == null) return;
            if (vec != null) {
                minX = Math.min(minX, vec.x);
                minY = Math.min(minY, vec.y);
                maxX = Math.max(maxX, vec.x);
                maxY = Math.max(maxY, vec.y);
            }
        }

        double posX = minX, posY = minY, width = maxX - minX, height = maxY - minY;
        MainWindow mw = mc.getMainWindow();
        gradient.attach();
        gradient.setUniformf("location", (float) (posX * mw.getScaleFactor()), (float) ((mw.getHeight() - (height * mw.getScaleFactor())) - (posY * mw.getScaleFactor())));
        gradient.setUniformf("rectSize", (float) (width * mw.getScaleFactor()), (float) (height * mw.getScaleFactor()));
        gradient.setUniformi("tex", 0);

        for (int i = 1; i <= 4; i++) {
            gradient.setUniformf("color" + i, color);
        }

        runnable.run();
        gradient.detach();
    }

    @Subscribe
    public void onRender3D(EventPreRender3D e) {
        MatrixStack stack = e.getMatrix();
        buffer.setup(false);

        for (PlayerEntity entity : mc.world.getPlayers()) {
            if (entity instanceof ClientPlayerEntity && mc.gameSettings.getPointOfView() == PointOfView.FIRST_PERSON || mc.player.getDistance(entity) > MAX_DISTANCE)
                continue;

            patch(entity, () -> {
                EntityRendererManager rendererManager = mc.getRenderManager();
                stack.push();
                stack.translate(-rendererManager.renderPosX(), -rendererManager.renderPosY(), -rendererManager.renderPosZ());
                GlStateManager.depthMask(true);
                rendererManager.setRenderShadow(false);
                rendererManager.setRenderName(false);
                IRenderTypeBuffer.Impl irendertypebuffer$impl = mc.getRenderTypeBuffers().getBufferSource();

                Vector3d pos = entity.getPositionVec(e.getPartialTicks());
                EntityRenderer<?> renderer = rendererManager.getRenderer(entity);
                boolean nameVisible = renderer.isRenderName();

                if (nameVisible) {
                    renderer.setRenderName(false);
                }

                rendererManager.renderEntityStaticGlow(entity, pos.getX(), pos.getY(), pos.getZ(), entity.rotationYaw, e.getPartialTicks(), stack, irendertypebuffer$impl, rendererManager.getPackedLight(entity, e.getPartialTicks()));

                if (nameVisible) {
                    renderer.setRenderName(true);
                }

                irendertypebuffer$impl.finish();
                rendererManager.setRenderName(true);
                rendererManager.setRenderShadow(true);
                GlStateManager.depthMask(false);
                GlStateManager.enableDepthTest();
                stack.pop();
            });
        }

        buffer.stop();
    }

    @Subscribe
    public void onRender2D(EventRender2D e) {
        OutlineShader.addTask2D(buffer::draw);
        OutlineShader.draw((int) Math.round(outline.get()));

        if (glowEnabled.get()) {
            bloom.addTask2D(buffer::draw);
            bloom.draw(Math.max(glow.get().intValue() / 2, 3), glow.get(), ESPShader.RenderType.DISPLAY, 2);
        }

        buffer.framebufferClear();
        mc.getFramebuffer().bindFramebuffer(true);
    }
}
никто не знает что ли , ес чо перенес все с евы на экспу 3.1 типо вот что перенес и исправил ошибки customFrameBuffer , FrameBuffer, ESPShader, ProjectionUtility, ну вот шейдеры glsl, саму функцию , OutlineShader
 
никто не знает что ли , ес чо перенес все с евы на экспу 3.1 типо вот что перенес и исправил ошибки customFrameBuffer , FrameBuffer, ESPShader, ProjectionUtility, ну вот шейдеры glsl, саму функцию , OutlineShader
и че, заработала? я просто тоже хочу себе в пасту добавить, нигде нет адекватного шейдер еспа
 
Ты ее хоть в коде майна хукнул?
 
Назад
Сверху Снизу