• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Помогите с переносом Fabric 1.21.4 - Fabric 1.21.7

  • Автор темы Автор темы Satofans
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
25 Июн 2024
Сообщения
102
Реакции
1
Помогите пожалуйста перенести с 1.21.4 на 1.21.7
BuiltBlur:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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.5 посмотри тут:
Пожалуйста, авторизуйтесь для просмотра ссылки.

маппинги тут:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
может за тебя весь хак перенести
Уже перенёс:) с рендер не могу разобраться
Сначала портни на 1.21.5, потом там уже проще
Как портировать на 1.21.5 посмотри тут:
Пожалуйста, авторизуйтесь для просмотра ссылки.

маппинги тут:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Я уже все перенёс на 1.21.7 остался рендер
 
Помогите пожалуйста перенести с 1.21.4 на 1.21.7
BuiltBlur:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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.7 остался рендер
там надо слой делать, по крайне в 1.21.5 именно так было, через доступ под драв контекст, там не так чутка как в 1.21.4 рендер ворк
 
ну рендер по другому там работает, не как в том что ты кинул, можешь посмотреть пример в rendererx на гитхабе
 
фу вертексы
 
Уже перенёс:) с рендер не могу разобраться

Я уже все перенёс на 1.21.7 остался рендер
В 1.21.5+ начали использовать пайпланы напрямую (что логично)
Вот что я использовал в качестве примера когда переносил свой мод на 1.21.5-1.21.6:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Просто погугли, там не все так сложно
 
я
В 1.21.5+ начали использовать пайпланы напрямую (что логично)
Вот что я использовал в качестве примера когда переносил свой мод на 1.21.5-1.21.6:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Просто погугли, там не все так сложно
Все равно не работает:( помоги пожалуйста
 
Помогите пожалуйста перенести с 1.21.4 на 1.21.7
BuiltBlur:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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&lt;SimpleFramebuffer&gt; TEMP_FBO_SUPPLIER = Suppliers<br> .memoize(() -&gt; 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 &gt; 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>}
 
я

Все равно не работает:( помоги пожалуйста
Я советую тебе лучше разобраться в том, как работает рендеринг в самом майнкрафте, а не просто копировать и вставлять код без полноценного понимания что ты делаешь. В своих ответах выше я уже указал ссылки на ресурсы, которые могут тебе помочь с портированием твоего рендера
 
Назад
Сверху Снизу