создать негативную текстуру в glsl - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь реализовать некоторую простую обработку изображений в glsl, например создание серой и негативной текстуры из изображения, но, похоже, я не могу понять, почему это не работает в фрагментном шейдере.Стиль 2, который должен превратить изображение в серый, работает как задумано, но стиль 3, который должен создавать негативное изображение, просто отображает пустое изображение.

#version 140

in  vec2 textureCoords;
out vec4 out_Color;

uniform sampler2D guiTexture;
uniform int style;

void main(void)
{
    if(style==1)
    {
        out_Color = texture(guiTexture,textureCoords);
    }
    else if(style==2)
    {
        out_Color = texture(guiTexture,textureCoords);
        float grayscale = (out_Color.x+out_Color.y + out_Color.z)/3;
        out_Color = vec4(grayscale,grayscale,grayscale,out_Color.w);
    }
    else if(style==3)
    {
        out_Color = texture(guiTexture,textureCoords);
        float Newr = (255.0 - out_Color.x);
        float Newg = (255.0 - out_Color.y);
        float Newb = (255.0 - out_Color.z);
        out_Color =vec4( Newr, Newg, Newb , out_Color.w);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...