Blur Shader GUI

Версия Minecraft
1.12.2
Здравствуйте.
Пытался сделать рендер !!!окошка!!!(отдельный drawRect) меню с 0-0.5 альфой и блюром.
Просмотрел куча вариантов, немного выучил GLSL пока все это читал, но так ничего конкретного на счет блюра не понял.

Пытался использовать шейдер который грузится майнкрафтом
GLSL:
#version 120

uniform sampler2D DiffuseSampler;

varying vec2 texCoord;
varying vec2 oneTexel;

uniform vec2 InSize;

uniform vec2 BlurDir;
uniform float Radius;
uniform float Progress;

void main() {
    vec4 blurred = vec4(0.0);
    float totalStrength = 0.0;
    float totalAlpha = 0.0;
    float totalSamples = 0.0;
    float progRadius = floor(Radius * Progress);
    for(float r = -progRadius; r <= progRadius; r += 1.0) {
        vec4 sample = texture2D(DiffuseSampler, texCoord + oneTexel * r * BlurDir);
        totalAlpha = totalAlpha + sample.a;
        totalSamples = totalSamples + 1.0;
        float strength = 1.0 - abs(r / progRadius);
        totalStrength = totalStrength + strength;
        blurred = blurred + sample;
    }
    gl_FragColor = vec4(blurred.rgb / (progRadius * 2.0 + 1.0), totalAlpha);
}
Код в drawScreen ->
Java:
        blur.start();
        int bd = blur.getUniform("BlurDir");
        int r = blur.getUniform("Radius");
        int p = blur.getUniform("Progress");
        ARBShaderObjects.glUniform2fARB(bd, 1, 0);
        ARBShaderObjects.glUniform1fARB(r, 1);
        ARBShaderObjects.glUniform1fARB(p, 1);
        GuiScreen.drawRect(0, 0, 100, 100, new Color(1, 1, 1, 0.5f).getRGB());
        blur.stop();

И к сожалению блюра нет.
**
перепробовал кучу шейдеров которые есть в интернете и они также "отказываются" блюрить мой рендер :(
 
Последнее редактирование:
@tox1cozZ
А есть ли вариант это реализовать под drawRect?
Если нельзя, то текстура передается в sampler2D через Minecraft.getMinecraft().getTextureManager().getTexture(texture).getGlTextureId()?
Можно ли использовать это с drawString в fontRenderer?
 
Последнее редактирование:

tox1cozZ

aka Agravaine
8,456
598
2,893
А есть ли вариант это реализовать под drawRect?
Как ты там блюр будешь делать, если у прямоугольника один цвет сплошной?

Если нельзя, то текстура передается в sampler2D через Minecraft.getMinecraft().getTextureManager().getTexture(texture).getGlTextureId()?
Нет, в шейдер нужно передавать текстур юнит. Обычная текстура в майне это 0, лайтмапа - 1.

Можно ли использовать это с drawString в fontRenderer?
Ну, вроде, да.
 
Сверху