Использование шейдеров при каком то действии

Версия Minecraft
1.7.10
643
6
14
Сабж в теме, как заюзать шейдер при определенном условии?
Либо путь к гуишке "Super secrets settings" подскажите.
 

Icosider

Kotliner
Администратор
3,600
99
663
ВНИМАНИЕ! Работает только на 1.10 и выше!(Может и на 1.9, но я ленивая задница :angel: )
Код:
   public static void shaderActivate(String name)
    {
        if (OpenGlHelper.shadersSupported)
            Minecraft.getMinecraft().entityRenderer.loadShader(new ResourceLocation(name));
    }
Код:
if (worldIn.isRemote)
      ClientProxy.shaderActivate("shaders/post/desaturate.json");//То что в кавычках, это путь до шейдера
notch, fxaa, art, bumpy, blobs2, pencil, color_convolve, deconverge, flip, invert, ntsc, outline, phosphor, scan_pincushion, sobel, bits, desaturate, green, blur, wobble, blobs, antialias, creeper, spider
 

Icosider

Kotliner
Администратор
3,600
99
663
Перезалив для 1.7.10 версий:
Код:
public static void shaderActivate(String name)
    {
        if (OpenGlHelper.shadersSupported)
            loadShader(new ResourceLocation(name), Minecraft.getMinecraft().theWorld);
    }

    public static void loadShader(ResourceLocation resourceLocationIn, World world)
    {
        if(world.isRemote){
            Minecraft mc = Minecraft.getMinecraft();
            try{
                mc.entityRenderer.theShaderGroup = new ShaderGroup(mc.getTextureManager(), mc.getResourceManager(), mc.getFramebuffer(), resourceLocationIn);
            }catch(JsonException e){
                e.printStackTrace();
            }
            mc.entityRenderer.theShaderGroup.createBindFramebuffers(mc.displayWidth, mc.displayHeight);
        }
    }
 
Сверху