Начинающий
- Статус
- Оффлайн
- Регистрация
- 15 Июн 2025
- Сообщения
- 196
- Реакции
- 1
короче хз, ебусь полдня с шейдерами, и так и сяк, не хотят они короче дружить с базой моей
буду очень благодарен в случае если мне помогут
Shader:
public class Shader {
private static final Logger LOGGER = LogManager.getLogger(Shader.class);
public static final Shader SHADOW = new Shader(new ResourceLocation("mytheria", "shaders/shadow.fsh"), true);
public static final Shader ROUNDED_OUTLINE = new Shader(new ResourceLocation("mytheria", "shaders/rounded_outline.fsh"), true);
public static final Shader ROUNDED_GRADIENT = new Shader(new ResourceLocation("mytheria", "shaders/rounded_gradient.fsh"), true);
public static final Shader ROUNDED_TEXTURE = new Shader(new ResourceLocation("mytheria", "shaders/rounded_texture.fsh"), true);
public static final Shader MAIN_MENU = new Shader(new ResourceLocation("mytheria", "shaders/shader.fsh"), true);
public static final Shader BLOOM = new Shader(new ResourceLocation("mytheria", "shaders/bloom.fsh"), true);
public static final Shader BLUR = new Shader(new ResourceLocation("mytheria", "shaders/blur.fsh"), true);
public static final Shader MSDF_FONT = new Shader(new ResourceLocation("mytheria", "shaders/msdf_font.fsh"), true);
public static final Shader FONT_SUBSTRING = new Shader(new ResourceLocation("mytheria", "shaders/font_substring.fsh"), true);
public static final Shader PROGRESS_BAR = new Shader(new ResourceLocation("mytheria", "shaders/progress_bar.fsh"), true);
private final ShaderInstance shaderInstance;
public Shader(ResourceLocation location, boolean isFile) {
String name = location.getPath()
.replace("shaders/", "") // support "shaders/shadow.fsh"
.replace(".fsh", "") // strip extension
.replace(".frag", "")
.replace(".glsl", "");
try {
this.shaderInstance = new ShaderInstance(
Minecraft.getInstance().getResourceManager(),
name,
DefaultVertexFormat.POSITION_TEX
);
LOGGER.info("ShaderInstance loaded: {}", name);
} catch (Exception e) {
throw new RuntimeException("Failed to load shader: " + name, e);
}
}
public void useProgram() {
RenderSystem.setShader(() -> shaderInstance);
}
public void unloadProgram() {
RenderSystem.setShader(() -> null);
}
public void setupUniform1f(String name, float value) {
int location = GL20.glGetUniformLocation(getShaderProgram(), name);
if (location >= 0)
GL20.glUniform1f(location, value);
}
public void setupUniform2f(String name, float x, float y) {
int location = GL20.glGetUniformLocation(getShaderProgram(), name);
if (location >= 0)
GL20.glUniform2f(location, x, y);
}
public void setupUniform4f(String name, float x, float y, float z, float w) {
int location = GL20.glGetUniformLocation(getShaderProgram(), name);
if (location >= 0)
GL20.glUniform4f(location, x, y, z, w);
}
public void setupUniform1i(String name, int value) {
int location = GL20.glGetUniformLocation(getShaderProgram(), name);
if (location >= 0)
GL20.glUniform1i(location, value);
}
public int getShaderProgram() {
return shaderInstance.getId(); // actual OpenGL program ID
}
public static void drawQuadsModern(int programID) {
float width = Minecraft.getInstance().getWindow().getWidth();
float height = Minecraft.getInstance().getWindow().getHeight();
float[] vertices = {
-1.0f, -1.0f, 0.0f, 1.0f,
-1.0f, 1.0f, 0.0f, 0.0f,
1.0f, 1.0f, 1.0f, 0.0f,
1.0f, -1.0f, 1.0f, 1.0f
};
int vbo = GL15.glGenBuffers();
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo);
GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertices, GL15.GL_STATIC_DRAW);
int posLoc = GL20.glGetAttribLocation(programID, "Position");
int texLoc = GL20.glGetAttribLocation(programID, "UV0");
GL20.glEnableVertexAttribArray(posLoc);
GL20.glEnableVertexAttribArray(texLoc);
GL20.glVertexAttribPointer(posLoc, 2, GL11.GL_FLOAT, false, 4 * 4, 0);
GL20.glVertexAttribPointer(texLoc, 2, GL11.GL_FLOAT, false, 4 * 4, 2 * 4);
GL11.glDrawArrays(GL11.GL_QUADS, 0, 4);
GL20.glDisableVertexAttribArray(posLoc);
GL20.glDisableVertexAttribArray(texLoc);
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
GL15.glDeleteBuffers(vbo);
}
}
crash-log:
net.minecraft.ReportedException: Rendering overlay
at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1030) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1137) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:764) [OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.main.Main.main(Main.java:223) [OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at Start.main(Start.java:8) [OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
Caused by: java.lang.ExceptionInInitializerError
at mytheria.tech.service.render.RenderService.<clinit>(RenderService.java:20) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.client.ui.mainmenu.MainMenuUI.render(MainMenuUI.java:42) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.gui.screens.LoadingOverlay.render(LoadingOverlay.java:89) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1025) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
... 4 more
Caused by: java.lang.RuntimeException: Failed to load shader: rounded_outline
at mytheria.tech.service.shader.Shader.<init>(Shader.java:47) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.shader.Shader.<clinit>(Shader.java:18) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.render.RenderService.<clinit>(RenderService.java:20) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.client.ui.mainmenu.MainMenuUI.render(MainMenuUI.java:42) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.gui.screens.LoadingOverlay.render(LoadingOverlay.java:89) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1025) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
... 4 more
Caused by: net.minecraft.server.ChainedJsonException: Invalid shaders/core/rounded_outline.json: File not found
at net.minecraft.server.ChainedJsonException.forException(ChainedJsonException.java:48) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.ShaderInstance.<init>(ShaderInstance.java:164) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.ShaderInstance.<init>(ShaderInstance.java:101) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.shader.Shader.<init>(Shader.java:41) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.shader.Shader.<clinit>(Shader.java:18) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.render.RenderService.<clinit>(RenderService.java:20) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.client.ui.mainmenu.MainMenuUI.render(MainMenuUI.java:42) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.gui.screens.LoadingOverlay.render(LoadingOverlay.java:89) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1025) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
... 4 more
Caused by: java.io.FileNotFoundException: minecraft:shaders/core/rounded_outline.json
at net.minecraft.server.packs.resources.ResourceProvider.lambda$getResourceOrThrow$1(ResourceProvider.java:18) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
at net.minecraft.server.packs.resources.ResourceProvider.getResourceOrThrow(ResourceProvider.java:18) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.server.packs.resources.ResourceProvider.openAsReader(ResourceProvider.java:26) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.ShaderInstance.<init>(ShaderInstance.java:109) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.ShaderInstance.<init>(ShaderInstance.java:101) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.shader.Shader.<init>(Shader.java:41) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.shader.Shader.<clinit>(Shader.java:18) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.service.render.RenderService.<clinit>(RenderService.java:20) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at mytheria.tech.client.ui.mainmenu.MainMenuUI.render(MainMenuUI.java:42) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.gui.screens.LoadingOverlay.render(LoadingOverlay.java:89) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1025) ~[OptiFine%201.21.1%20Intellij%20idea%20ready/:?]
... 4 more
---- Minecraft Crash Report ----
// Hi. I'm Minecraft, and I'm a crashaholic.
Time: 2025-07-11 20:40:18
Description: Rendering overlay
java.lang.ExceptionInInitializerError
at mytheria.tech.service.render.RenderService.<clinit>(RenderService.java:20)
at mytheria.tech.client.ui.mainmenu.MainMenuUI.render(MainMenuUI.java:42)
at net.minecraft.client.gui.screens.LoadingOverlay.render(LoadingOverlay.java:89)
at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1025)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1137)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at net.minecraft.client.main.Main.main(Main.java:223)
at Start.main(Start.java:8)
Caused by: java.lang.RuntimeException: Failed to load shader: rounded_outline
at mytheria.tech.service.shader.Shader.<init>(Shader.java:47)
at mytheria.tech.service.shader.Shader.<clinit>(Shader.java:18)
... 8 more
Caused by: net.minecraft.server.ChainedJsonException: Invalid shaders/core/rounded_outline.json: File not found
at net.minecraft.server.ChainedJsonException.forException(ChainedJsonException.java:48)
at net.minecraft.client.renderer.ShaderInstance.<init>(ShaderInstance.java:164)
at net.minecraft.client.renderer.ShaderInstance.<init>(ShaderInstance.java:101)
at mytheria.tech.service.shader.Shader.<init>(Shader.java:41)
... 9 more
Caused by: java.io.FileNotFoundException: minecraft:shaders/core/rounded_outline.json
at net.minecraft.server.packs.resources.ResourceProvider.lambda$getResourceOrThrow$1(ResourceProvider.java:18)
at java.base/java.util.Optional.orElseThrow(Optional.java:403)
at net.minecraft.server.packs.resources.ResourceProvider.getResourceOrThrow(ResourceProvider.java:18)
at net.minecraft.server.packs.resources.ResourceProvider.openAsReader(ResourceProvider.java:26)
at net.minecraft.client.renderer.ShaderInstance.<init>(ShaderInstance.java:109)
... 11 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at mytheria.tech.service.render.RenderService.<clinit>(RenderService.java:20)
at mytheria.tech.client.ui.mainmenu.MainMenuUI.render(MainMenuUI.java:42)
at net.minecraft.client.gui.screens.LoadingOverlay.render(LoadingOverlay.java:89)
-- Overlay render details --
Details:
Overlay name: net.minecraft.client.gui.screens.LoadingOverlay
Stacktrace:
at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1025)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1137)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at net.minecraft.client.main.Main.main(Main.java:223)
at Start.main(Start.java:8)
-- Uptime --
Details:
JVM uptime: 11.719s
Wall uptime: 6.637s
High-res time: 6.412s
Client ticks: 91 ticks / 4.550s
Stacktrace:
at net.minecraft.client.Minecraft.fillReport(Minecraft.java:2274)
at net.minecraft.client.Minecraft.emergencySaveAndCrash(Minecraft.java:825)
at net.minecraft.client.Minecraft.run(Minecraft.java:782)
at net.minecraft.client.main.Main.main(Main.java:223)
at Start.main(Start.java:8)
буду очень благодарен в случае если мне помогут