Начинающий
- Статус
- Оффлайн
- Регистрация
- 25 Июн 2024
- Сообщения
- 109
- Реакции
- 1
//del
Последнее редактирование:
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
дай ка дс свой под хайд, побазарим кое о чемПомогите пожалуйста перенести с 1.21.4 на 1.21.7
BuiltBlur:package dev.satofan.white.utils.render.renderers.impl; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.Framebuffer; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.gl.SimpleFramebuffer; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; import com.mojang.blaze3d.systems.RenderSystem; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltBlur( SizeState size, QuadRadiusState radius, QuadColorState color, float smoothness, float blurRadius ) implements IRenderer { private static final ShaderProgramKey BLUR_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("blur"), VertexFormats.POSITION_COLOR, Defines.EMPTY); private static final Supplier<SimpleFramebuffer> TEMP_FBO_SUPPLIER = Suppliers .memoize(() -> new SimpleFramebuffer(1920, 1024, false)); private static final Framebuffer MAIN_FBO = MinecraftClient.getInstance().getFramebuffer(); @Override public void render(Matrix4f matrix, float x, float y, float z) { SimpleFramebuffer fbo = TEMP_FBO_SUPPLIER.get(); if (fbo.textureWidth != MAIN_FBO.textureWidth || fbo.textureHeight != MAIN_FBO.textureHeight) { fbo.resize(MAIN_FBO.textureWidth, MAIN_FBO.textureHeight); } RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); fbo.beginWrite(false); MAIN_FBO.draw(fbo.textureWidth, fbo.textureHeight); MAIN_FBO.beginWrite(false); RenderSystem.setShaderTexture(0, fbo.getColorAttachment()); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(BLUR_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Smoothness").set(this.smoothness); shader.getUniform("BlurRadius").set(this.blurRadius); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); builder.vertex(matrix, x, y, z).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.setShaderTexture(0, 0); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }
BuiltBorder:package dev.satofan.white.utils.render.renderers.impl; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.render.renderers.IRenderer; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; public record BuiltBorder( SizeState size, QuadRadiusState radius, QuadColorState color, float thickness, float internalSmoothness, float externalSmoothness ) implements IRenderer { private static final ShaderProgramKey RECTANGLE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("border"), VertexFormats.POSITION_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(RECTANGLE_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Thickness").set(thickness); shader.getUniform("Smoothness").set(this.internalSmoothness, this.externalSmoothness); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); builder.vertex(matrix, x, y, z).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }
BuiltRectangle:package dev.satofan.white.utils.render.renderers.impl; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltRectangle( SizeState size, QuadRadiusState radius, QuadColorState color, float smoothness ) implements IRenderer { private static final ShaderProgramKey RECTANGLE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("rectangle"), VertexFormats.POSITION_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(RECTANGLE_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Smoothness").set(this.smoothness); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); builder.vertex(matrix, x, y, z).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }BuiltText:package dev.satofan.white.utils.render.renderers.impl; import dev.satofan.white.utils.render.msdf.MsdfFont; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.VertexFormats; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltText( MsdfFont font, String text, float size, float thickness, int color, float smoothness, float spacing, int outlineColor, float outlineThickness ) implements IRenderer { private static final ShaderProgramKey MSDF_FONT_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("msdf_font"), VertexFormats.POSITION_TEXTURE_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); RenderSystem.setShaderTexture(0, this.font.getTextureId()); boolean outlineEnabled = (this.outlineThickness > 0.0f); ShaderProgram shader = RenderSystem.setShader(MSDF_FONT_SHADER_KEY); shader.getUniform("Range").set(this.font.getAtlas().range()); shader.getUniform("Thickness").set(this.thickness); shader.getUniform("Smoothness").set(this.smoothness); shader.getUniform("Outline").set(outlineEnabled ? 1 : 0); if (outlineEnabled) { shader.getUniform("OutlineThickness").set(this.outlineThickness); float[] outlineComponents = ColorProvider.normalize(this.outlineColor); shader.getUniform("OutlineColor").set(outlineComponents[0], outlineComponents[1], outlineComponents[2], outlineComponents[3]); } BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR); this.font.applyGlyphs(matrix, builder, this.text, this.size, (this.thickness + this.outlineThickness * 0.5f) * 0.5f * this.size, this.spacing, x, y + this.font.getMetrics().baselineHeight() * this.size, z, this.color); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.setShaderTexture(0, 0); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }BuiltTexture:package dev.satofan.white.utils.render.renderers.impl; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltTexture( SizeState size, QuadRadiusState radius, QuadColorState color, float smoothness, float u, float v, float texWidth, float texHeight, int textureId ) implements IRenderer { private static final ShaderProgramKey TEXTURE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("texture"), VertexFormats.POSITION_TEXTURE_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); RenderSystem.setShaderTexture(0, this.textureId); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(TEXTURE_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Smoothness").set(this.smoothness); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR); builder.vertex(matrix, x, y, z).texture(this.u, this.v).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).texture(this.u, this.v + this.texHeight).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).texture(this.u + this.texWidth, this.v + this.texHeight).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).texture(this.u + this.texWidth, this.v).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.setShaderTexture(0, 0); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
там надо слой делать, по крайне в 1.21.5 именно так было, через доступ под драв контекст, там не так чутка как в 1.21.4 рендер воркУже перенёс:) с рендер не могу разобраться
Я уже все перенёс на 1.21.7 остался рендер
В 1.21.5+ начали использовать пайпланы напрямую (что логично)Уже перенёс:) с рендер не могу разобраться
Я уже все перенёс на 1.21.7 остался рендер
Я перенёс, держи братишка:Помогите пожалуйста перенести с 1.21.4 на 1.21.7
BuiltBlur:package dev.satofan.white.utils.render.renderers.impl; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.Framebuffer; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.gl.SimpleFramebuffer; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; import com.mojang.blaze3d.systems.RenderSystem; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltBlur( SizeState size, QuadRadiusState radius, QuadColorState color, float smoothness, float blurRadius ) implements IRenderer { private static final ShaderProgramKey BLUR_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("blur"), VertexFormats.POSITION_COLOR, Defines.EMPTY); private static final Supplier<SimpleFramebuffer> TEMP_FBO_SUPPLIER = Suppliers .memoize(() -> new SimpleFramebuffer(1920, 1024, false)); private static final Framebuffer MAIN_FBO = MinecraftClient.getInstance().getFramebuffer(); @Override public void render(Matrix4f matrix, float x, float y, float z) { SimpleFramebuffer fbo = TEMP_FBO_SUPPLIER.get(); if (fbo.textureWidth != MAIN_FBO.textureWidth || fbo.textureHeight != MAIN_FBO.textureHeight) { fbo.resize(MAIN_FBO.textureWidth, MAIN_FBO.textureHeight); } RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); fbo.beginWrite(false); MAIN_FBO.draw(fbo.textureWidth, fbo.textureHeight); MAIN_FBO.beginWrite(false); RenderSystem.setShaderTexture(0, fbo.getColorAttachment()); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(BLUR_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Smoothness").set(this.smoothness); shader.getUniform("BlurRadius").set(this.blurRadius); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); builder.vertex(matrix, x, y, z).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.setShaderTexture(0, 0); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }
BuiltBorder:package dev.satofan.white.utils.render.renderers.impl; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.render.renderers.IRenderer; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; public record BuiltBorder( SizeState size, QuadRadiusState radius, QuadColorState color, float thickness, float internalSmoothness, float externalSmoothness ) implements IRenderer { private static final ShaderProgramKey RECTANGLE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("border"), VertexFormats.POSITION_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(RECTANGLE_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Thickness").set(thickness); shader.getUniform("Smoothness").set(this.internalSmoothness, this.externalSmoothness); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); builder.vertex(matrix, x, y, z).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }
BuiltRectangle:package dev.satofan.white.utils.render.renderers.impl; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltRectangle( SizeState size, QuadRadiusState radius, QuadColorState color, float smoothness ) implements IRenderer { private static final ShaderProgramKey RECTANGLE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("rectangle"), VertexFormats.POSITION_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(RECTANGLE_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Smoothness").set(this.smoothness); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR); builder.vertex(matrix, x, y, z).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }BuiltText:package dev.satofan.white.utils.render.renderers.impl; import dev.satofan.white.utils.render.msdf.MsdfFont; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.VertexFormats; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltText( MsdfFont font, String text, float size, float thickness, int color, float smoothness, float spacing, int outlineColor, float outlineThickness ) implements IRenderer { private static final ShaderProgramKey MSDF_FONT_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("msdf_font"), VertexFormats.POSITION_TEXTURE_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); RenderSystem.setShaderTexture(0, this.font.getTextureId()); boolean outlineEnabled = (this.outlineThickness > 0.0f); ShaderProgram shader = RenderSystem.setShader(MSDF_FONT_SHADER_KEY); shader.getUniform("Range").set(this.font.getAtlas().range()); shader.getUniform("Thickness").set(this.thickness); shader.getUniform("Smoothness").set(this.smoothness); shader.getUniform("Outline").set(outlineEnabled ? 1 : 0); if (outlineEnabled) { shader.getUniform("OutlineThickness").set(this.outlineThickness); float[] outlineComponents = ColorProvider.normalize(this.outlineColor); shader.getUniform("OutlineColor").set(outlineComponents[0], outlineComponents[1], outlineComponents[2], outlineComponents[3]); } BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR); this.font.applyGlyphs(matrix, builder, this.text, this.size, (this.thickness + this.outlineThickness * 0.5f) * 0.5f * this.size, this.spacing, x, y + this.font.getMetrics().baselineHeight() * this.size, z, this.color); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.setShaderTexture(0, 0); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }BuiltTexture:package dev.satofan.white.utils.render.renderers.impl; import net.minecraft.client.gl.Defines; import net.minecraft.client.gl.ShaderProgram; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormat.DrawMode; import net.minecraft.client.render.VertexFormats; import org.joml.Matrix4f; import com.mojang.blaze3d.systems.RenderSystem; import dev.satofan.white.utils.providers.ResourceProvider; import dev.satofan.white.utils.builders.states.QuadColorState; import dev.satofan.white.utils.builders.states.QuadRadiusState; import dev.satofan.white.utils.builders.states.SizeState; import dev.satofan.white.utils.render.renderers.IRenderer; public record BuiltTexture( SizeState size, QuadRadiusState radius, QuadColorState color, float smoothness, float u, float v, float texWidth, float texHeight, int textureId ) implements IRenderer { private static final ShaderProgramKey TEXTURE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("texture"), VertexFormats.POSITION_TEXTURE_COLOR, Defines.EMPTY); @Override public void render(Matrix4f matrix, float x, float y, float z) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); RenderSystem.setShaderTexture(0, this.textureId); float width = this.size.width(), height = this.size.height(); ShaderProgram shader = RenderSystem.setShader(TEXTURE_SHADER_KEY); shader.getUniform("Size").set(width, height); shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(), this.radius.radius3(), this.radius.radius4()); shader.getUniform("Smoothness").set(this.smoothness); BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR); builder.vertex(matrix, x, y, z).texture(this.u, this.v).color(this.color.color1()); builder.vertex(matrix, x, y + height, z).texture(this.u, this.v + this.texHeight).color(this.color.color2()); builder.vertex(matrix, x + width, y + height, z).texture(this.u + this.texWidth, this.v + this.texHeight).color(this.color.color3()); builder.vertex(matrix, x + width, y, z).texture(this.u + this.texWidth, this.v).color(this.color.color4()); BufferRenderer.drawWithGlobalProgram(builder.end()); RenderSystem.setShaderTexture(0, 0); RenderSystem.enableCull(); RenderSystem.disableBlend(); } }
BuiltBlur:
package dev.satofan.white.utils.render.renderers.impl;<br><br>import net.minecraft.client.MinecraftClient;<br>import net.minecraft.client.gl.Defines;<br>import net.minecraft.client.gl.Framebuffer;<br>import net.minecraft.client.gl.ShaderProgram;<br>import net.minecraft.client.gl.ShaderProgramKey;<br>import net.minecraft.client.gl.SimpleFramebuffer;<br>import net.minecraft.client.render.BufferBuilder;<br>import net.minecraft.client.render.BufferRenderer;<br>import net.minecraft.client.render.Tessellator;<br>import net.minecraft.client.render.VertexFormat.DrawMode;<br>import net.minecraft.client.render.VertexFormats;<br><br>import org.joml.Matrix4f;<br><br>import com.google.common.base.Supplier;<br>import com.google.common.base.Suppliers;<br>import com.mojang.blaze3d.systems.RenderSystem;<br><br>import dev.satofan.white.utils.providers.ResourceProvider;<br>import dev.satofan.white.utils.builders.states.QuadColorState;<br>import dev.satofan.white.utils.builders.states.QuadRadiusState;<br>import dev.satofan.white.utils.builders.states.SizeState;<br>import dev.satofan.white.utils.render.renderers.IRenderer;<br><br><br>public record BuiltBlur(<br> SizeState size,<br> QuadRadiusState radius,<br> QuadColorState color,<br> float smoothness,<br> float blurRadius<br>) implements IRenderer {<br><br> private static final ShaderProgramKey BLUR_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("blur"),<br> VertexFormats.POSITION_COLOR, Defines.EMPTY);<br> private static final Supplier<SimpleFramebuffer> TEMP_FBO_SUPPLIER = Suppliers<br> .memoize(() -> new SimpleFramebuffer(1920, 1024, false));<br> private static final Framebuffer MAIN_FBO = MinecraftClient.getInstance().getFramebuffer();<br><br> @Override<br> public void render(Matrix4f matrix, float x, float y, float z) {<br> SimpleFramebuffer fbo = TEMP_FBO_SUPPLIER.get();<br> if (fbo.textureWidth != MAIN_FBO.textureWidth || fbo.textureHeight != MAIN_FBO.textureHeight) {<br> fbo.resize(MAIN_FBO.textureWidth, MAIN_FBO.textureHeight);<br> }<br><br> RenderSystem.enableBlend();<br> RenderSystem.defaultBlendFunc();<br> RenderSystem.disableCull();<br><br> fbo.beginWrite(false);<br> MAIN_FBO.draw(fbo.textureWidth, fbo.textureHeight);<br> MAIN_FBO.beginWrite(false);<br><br> RenderSystem.setShaderTexture(0, fbo.getColorAttachment());<br><br> float width = this.size.width(), height = this.size.height();<br> ShaderProgram shader = RenderSystem.setShader(BLUR_SHADER_KEY);<br> shader.getUniform("Size").set(width, height);<br> shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(),<br> this.radius.radius3(), this.radius.radius4());<br> shader.getUniform("Smoothness").set(this.smoothness);<br> shader.getUniform("BlurRadius").set(this.blurRadius);<br><br> BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR);<br> builder.vertex(matrix, x, y, z).color(this.color.color1());<br> builder.vertex(matrix, x, y + height, z).color(this.color.color2());<br> builder.vertex(matrix, x + width, y + height, z).color(this.color.color3());<br> builder.vertex(matrix, x + width, y, z).color(this.color.color4());<br><br> BufferRenderer.drawWithGlobalProgram(builder.end());<br><br> RenderSystem.setShaderTexture(0, 0);<br><br> RenderSystem.enableCull();<br> RenderSystem.disableBlend();<br> }<br><br>}
BuiltBorder:
package dev.satofan.white.utils.render.renderers.impl;<br><br>import dev.satofan.white.utils.builders.states.QuadColorState;<br>import dev.satofan.white.utils.builders.states.QuadRadiusState;<br>import dev.satofan.white.utils.builders.states.SizeState;<br>import dev.satofan.white.utils.providers.ResourceProvider;<br>import dev.satofan.white.utils.render.renderers.IRenderer;<br>import net.minecraft.client.gl.Defines;<br>import net.minecraft.client.gl.ShaderProgram;<br>import net.minecraft.client.gl.ShaderProgramKey;<br>import net.minecraft.client.render.VertexFormat.DrawMode;<br>import net.minecraft.client.render.BufferBuilder;<br>import net.minecraft.client.render.BufferRenderer;<br>import net.minecraft.client.render.Tessellator;<br>import net.minecraft.client.render.VertexFormats;<br>import org.joml.Matrix4f;<br><br>import com.mojang.blaze3d.systems.RenderSystem;<br><br><br>public record BuiltBorder(<br> SizeState size,<br> QuadRadiusState radius,<br> QuadColorState color,<br> float thickness,<br> float internalSmoothness, float externalSmoothness<br>) implements IRenderer {<br><br> private static final ShaderProgramKey RECTANGLE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("border"),<br> VertexFormats.POSITION_COLOR, Defines.EMPTY);<br><br> @Override<br> public void render(Matrix4f matrix, float x, float y, float z) {<br> RenderSystem.enableBlend();<br> RenderSystem.defaultBlendFunc();<br> RenderSystem.disableCull();<br><br> float width = this.size.width(), height = this.size.height();<br> ShaderProgram shader = RenderSystem.setShader(RECTANGLE_SHADER_KEY);<br> shader.getUniform("Size").set(width, height);<br> shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(),<br> this.radius.radius3(), this.radius.radius4());<br> shader.getUniform("Thickness").set(thickness);<br> shader.getUniform("Smoothness").set(this.internalSmoothness, this.externalSmoothness);<br><br> BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR);<br> builder.vertex(matrix, x, y, z).color(this.color.color1());<br> builder.vertex(matrix, x, y + height, z).color(this.color.color2());<br> builder.vertex(matrix, x + width, y + height, z).color(this.color.color3());<br> builder.vertex(matrix, x + width, y, z).color(this.color.color4());<br><br> BufferRenderer.drawWithGlobalProgram(builder.end());<br><br> RenderSystem.enableCull();<br> RenderSystem.disableBlend();<br> }<br><br>}
BuiltRectangle:
package dev.satofan.white.utils.render.renderers.impl;<br><br>import net.minecraft.client.gl.Defines;<br>import net.minecraft.client.gl.ShaderProgram;<br>import net.minecraft.client.gl.ShaderProgramKey;<br>import net.minecraft.client.render.VertexFormat.DrawMode;<br>import net.minecraft.client.render.BufferBuilder;<br>import net.minecraft.client.render.BufferRenderer;<br>import net.minecraft.client.render.Tessellator;<br>import net.minecraft.client.render.VertexFormats;<br>import org.joml.Matrix4f;<br><br>import com.mojang.blaze3d.systems.RenderSystem;<br><br>import dev.satofan.white.utils.providers.ResourceProvider;<br>import dev.satofan.white.utils.builders.states.QuadColorState;<br>import dev.satofan.white.utils.builders.states.QuadRadiusState;<br>import dev.satofan.white.utils.builders.states.SizeState;<br>import dev.satofan.white.utils.render.renderers.IRenderer;<br><br>public record BuiltRectangle(<br> SizeState size,<br> QuadRadiusState radius,<br> QuadColorState color,<br> float smoothness<br>) implements IRenderer {<br><br> private static final ShaderProgramKey RECTANGLE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("rectangle"),<br> VertexFormats.POSITION_COLOR, Defines.EMPTY);<br><br> @Override<br> public void render(Matrix4f matrix, float x, float y, float z) {<br> RenderSystem.enableBlend();<br> RenderSystem.defaultBlendFunc();<br> RenderSystem.disableCull();<br><br> float width = this.size.width(), height = this.size.height();<br> ShaderProgram shader = RenderSystem.setShader(RECTANGLE_SHADER_KEY);<br> shader.getUniform("Size").set(width, height);<br> shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(),<br> this.radius.radius3(), this.radius.radius4());<br> shader.getUniform("Smoothness").set(this.smoothness);<br><br> BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_COLOR);<br> builder.vertex(matrix, x, y, z).color(this.color.color1());<br> builder.vertex(matrix, x, y + height, z).color(this.color.color2());<br> builder.vertex(matrix, x + width, y + height, z).color(this.color.color3());<br> builder.vertex(matrix, x + width, y, z).color(this.color.color4());<br><br> BufferRenderer.drawWithGlobalProgram(builder.end());<br><br> RenderSystem.enableCull();<br> RenderSystem.disableBlend();<br> }<br><br>}
BuiltText:
package dev.satofan.white.utils.render.renderers.impl;<br><br>import dev.satofan.white.utils.render.msdf.MsdfFont;<br>import org.joml.Matrix4f;<br><br>import com.mojang.blaze3d.systems.RenderSystem;<br><br>import net.minecraft.client.gl.Defines;<br>import net.minecraft.client.gl.ShaderProgram;<br>import net.minecraft.client.gl.ShaderProgramKey;<br>import net.minecraft.client.render.BufferBuilder;<br>import net.minecraft.client.render.BufferRenderer;<br>import net.minecraft.client.render.Tessellator;<br>import net.minecraft.client.render.VertexFormat.DrawMode;<br>import net.minecraft.client.render.VertexFormats;<br><br>import dev.satofan.white.utils.providers.ResourceProvider;<br>import dev.satofan.white.utils.render.renderers.IRenderer;<br><br>public record BuiltText(<br> MsdfFont font,<br> String text,<br> float size,<br> float thickness,<br> int color,<br> float smoothness,<br> float spacing,<br> int outlineColor,<br> float outlineThickness<br>) implements IRenderer {<br><br> private static final ShaderProgramKey MSDF_FONT_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("msdf_font"),<br> VertexFormats.POSITION_TEXTURE_COLOR, Defines.EMPTY);<br><br> @Override<br> public void render(Matrix4f matrix, float x, float y, float z) {<br> RenderSystem.enableBlend();<br> RenderSystem.defaultBlendFunc();<br> RenderSystem.disableCull();<br><br> RenderSystem.setShaderTexture(0, this.font.getTextureId());<br><br> boolean outlineEnabled = (this.outlineThickness > 0.0f);<br> ShaderProgram shader = RenderSystem.setShader(MSDF_FONT_SHADER_KEY);<br> shader.getUniform("Range").set(this.font.getAtlas().range());<br> shader.getUniform("Thickness").set(this.thickness);<br> shader.getUniform("Smoothness").set(this.smoothness);<br> shader.getUniform("Outline").set(outlineEnabled ? 1 : 0);<br><br> if (outlineEnabled) {<br> shader.getUniform("OutlineThickness").set(this.outlineThickness);<br> float[] outlineComponents = ColorProvider.normalize(this.outlineColor);<br> shader.getUniform("OutlineColor").set(outlineComponents[0], outlineComponents[1],<br> outlineComponents[2], outlineComponents[3]);<br> }<br><br> BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR);<br> this.font.applyGlyphs(matrix, builder, this.text, this.size,<br> (this.thickness + this.outlineThickness * 0.5f) * 0.5f * this.size, this.spacing,<br> x, y + this.font.getMetrics().baselineHeight() * this.size, z, this.color);<br><br> BufferRenderer.drawWithGlobalProgram(builder.end());<br><br> RenderSystem.setShaderTexture(0, 0);<br><br> RenderSystem.enableCull();<br> RenderSystem.disableBlend();<br> }<br><br>}
BuiltTexture:
package dev.satofan.white.utils.render.renderers.impl;<br><br>import net.minecraft.client.gl.Defines;<br>import net.minecraft.client.gl.ShaderProgram;<br>import net.minecraft.client.gl.ShaderProgramKey;<br>import net.minecraft.client.render.BufferBuilder;<br>import net.minecraft.client.render.BufferRenderer;<br>import net.minecraft.client.render.Tessellator;<br>import net.minecraft.client.render.VertexFormat.DrawMode;<br>import net.minecraft.client.render.VertexFormats;<br>import org.joml.Matrix4f;<br><br>import com.mojang.blaze3d.systems.RenderSystem;<br><br>import dev.satofan.white.utils.providers.ResourceProvider;<br>import dev.satofan.white.utils.builders.states.QuadColorState;<br>import dev.satofan.white.utils.builders.states.QuadRadiusState;<br>import dev.satofan.white.utils.builders.states.SizeState;<br>import dev.satofan.white.utils.render.renderers.IRenderer;<br><br><br>public record BuiltTexture(<br> SizeState size,<br> QuadRadiusState radius,<br> QuadColorState color,<br> float smoothness,<br> float u, float v,<br> float texWidth, float texHeight,<br> int textureId<br>) implements IRenderer {<br><br> private static final ShaderProgramKey TEXTURE_SHADER_KEY = new ShaderProgramKey(ResourceProvider.getShaderIdentifier("texture"),<br> VertexFormats.POSITION_TEXTURE_COLOR, Defines.EMPTY);<br><br> @Override<br> public void render(Matrix4f matrix, float x, float y, float z) {<br> RenderSystem.enableBlend();<br> RenderSystem.defaultBlendFunc();<br> RenderSystem.disableCull();<br><br> RenderSystem.setShaderTexture(0, this.textureId);<br><br> float width = this.size.width(), height = this.size.height();<br> ShaderProgram shader = RenderSystem.setShader(TEXTURE_SHADER_KEY);<br> shader.getUniform("Size").set(width, height);<br> shader.getUniform("Radius").set(this.radius.radius1(), this.radius.radius2(),<br> this.radius.radius3(), this.radius.radius4());<br> shader.getUniform("Smoothness").set(this.smoothness);<br><br> BufferBuilder builder = Tessellator.getInstance().begin(DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR);<br> builder.vertex(matrix, x, y, z).texture(this.u, this.v).color(this.color.color1());<br> builder.vertex(matrix, x, y + height, z).texture(this.u, this.v + this.texHeight).color(this.color.color2());<br> builder.vertex(matrix, x + width, y + height, z).texture(this.u + this.texWidth, this.v + this.texHeight).color(this.color.color3());<br> builder.vertex(matrix, x + width, y, z).texture(this.u + this.texWidth, this.v).color(this.color.color4());<br><br> BufferRenderer.drawWithGlobalProgram(builder.end());<br><br> RenderSystem.setShaderTexture(0, 0);<br><br> RenderSystem.enableCull();<br> RenderSystem.disableBlend();<br> }<br><br>}
зачем тебе 1.21.7? буквально 3 патча блядскихСкрытое содержимоеБратишка, это еще 1.21.4) у меня 1.21.7
Я советую тебе лучше разобраться в том, как работает рендеринг в самом майнкрафте, а не просто копировать и вставлять код без полноценного понимания что ты делаешь. В своих ответах выше я уже указал ссылки на ресурсы, которые могут тебе помочь с портированием твоего рендерая
Все равно не работает:( помоги пожалуйста
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz