Начинающий
- Статус
- Оффлайн
- Регистрация
- 15 Июн 2025
- Сообщения
- 196
- Реакции
- 1
"умело" запастил рендер систему с тандерхака, но шейдеры блюра не горят желанием подгружаться((
ашыпка:
[22:53:40] [Render thread/ERROR] (Minecraft) Unreported exception thrown!
java.lang.NullPointerException: Cannot invoke "net.minecraft.client.gl.ShaderProgram.initializeUniforms(net.minecraft.client.render.VertexFormat$DrawMode, org.joml.Matrix4f, org.joml.Matrix4f, net.minecraft.client.util.Window)" because "shader" is null
at net.minecraft.client.gl.VertexBuffer.drawInternal(VertexBuffer.java:137) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.gl.VertexBuffer.draw(VertexBuffer.java:132) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.render.BufferRenderer.drawWithGlobalProgramInternal(BufferRenderer.java:32) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.render.BufferRenderer.drawWithGlobalProgram(BufferRenderer.java:26) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at ru.expensive.core.client.util.Render2DEngine.drawRoundedBlur(Render2DEngine.java:706) ~[main/:?]
at ru.expensive.core.client.implement.features.draggables.WatermarkDraggable.drawDraggable(WatermarkDraggable.java:46) ~[main/:?]
at net.minecraft.client.gui.hud.InGameHud.md9c369d$extra-client$lambda$onRender$0$1(InGameHud.java:2051) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at ru.expensive.core.client.common.util.math.MathUtil.scale(MathUtil.java:54) ~[main/:?]
at net.minecraft.client.gui.hud.InGameHud.md9c369d$extra-client$lambda$onRender$1$0(InGameHud.java:2051) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]
at net.minecraft.client.gui.hud.InGameHud.handler$zdn001$extra-client$onRender(InGameHud.java:2036) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.gui.hud.InGameHud.render(InGameHud.java:220) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.render.GameRenderer.render(GameRenderer.java:896) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1285) ~[minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:882) [minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.minecraft.client.main.Main.main(Main.java:256) [minecraft-merged-99f6daee72-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) [fabric-loader-0.15.11.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.15.11.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.15.11.jar:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
блур праграм:
public class BlurProgram {
private Uniform2f uSize;
private Uniform2f uLocation;
private Uniform1f radius;
private Uniform2f inputResolution;
private Uniform1f brightness;
private Uniform1f quality;
private Uniform4f color1;
private SamplerUniform sampler;
private Framebuffer input;
public static final ManagedCoreShader BLUR = ShaderEffectManager.getInstance()
.manageCoreShader(Identifier.of("extra", "blur"), VertexFormats.POSITION);
public BlurProgram() {
setup();
}
public void setParameters(float x, float y, float width, float height, float r, Color c1, float blurStrenth, float blurOpacity) {
if (input == null)
input = new SimpleFramebuffer(mc.getWindow().getScaledWidth(), mc.getWindow().getScaledHeight(), false, MinecraftClient.IS_SYSTEM_MAC);
float i = (float) mc.getWindow().getScaleFactor();
radius.set(r * i);
uLocation.set(x * i, -y * i + mc.getWindow().getScaledHeight() * i - height * i);
uSize.set(width * i, height * i);
brightness.set(blurOpacity);
quality.set(blurStrenth);
color1.set(c1.getRed() / 255f, c1.getGreen() / 255f, c1.getBlue() / 255f, 1f);
sampler.set(input.getColorAttachment());
}
public void use() {
var buffer = MinecraftClient.getInstance().getFramebuffer();
input.beginWrite(false);
GL30.glBindFramebuffer(GL30.GL_READ_FRAMEBUFFER, buffer.fbo);
GL30.glBlitFramebuffer(0, 0, buffer.textureWidth, buffer.textureHeight, 0, 0, buffer.textureWidth, buffer.textureHeight, GL30.GL_COLOR_BUFFER_BIT, GL30.GL_LINEAR);
buffer.beginWrite(false);
if (input != null && (input.textureWidth != mc.getWindow().getFramebufferWidth() || input.textureHeight != mc.getWindow().getFramebufferHeight()))
input.resize(mc.getWindow().getFramebufferWidth(), mc.getWindow().getFramebufferHeight(), MinecraftClient.IS_SYSTEM_MAC);
inputResolution.set((float) buffer.textureWidth, (float) buffer.textureHeight);
sampler.set(input.getColorAttachment());
RenderSystem.setShader(BLUR::getProgram);
}
protected void setup() {
if (BLUR.getProgram() == null) {
System.out.println("Шейдер не найден");
} else {
System.out.println("Шейдер найден");
}
this.inputResolution = BLUR.findUniform2f("InputResolution");
this.brightness = BLUR.findUniform1f("Brightness");
this.quality = BLUR.findUniform1f("Quality");
this.color1 = BLUR.findUniform4f("color1");
this.uSize = BLUR.findUniform2f("uSize");
this.uLocation = BLUR.findUniform2f("uLocation");
this.radius = BLUR.findUniform1f("radius");
this.sampler = BLUR.findSampler("InputSampler");
WindowResizeCallback.EVENT.register((client, window) -> {
if (input != null)
input.resize(window.getFramebufferWidth(), window.getFramebufferHeight(), MinecraftClient.IS_SYSTEM_MAC);
});
}
}