GLSL - 改为vec3颜色

时间:2016-01-24 12:48:49

标签: ios opengl-es glsl shader openframeworks

我在着色器方面非常陌生并且一直试图解决这个问题几个小时......我在glslsandbox上找到了一个着色器,它绘制了一个简单的网格。我试图了解如何将网格的颜色从一个小数更改为vec3颜色。

float x = gl_FragCoord.x - gl_FragCoord.y;
float y = gl_FragCoord.y + gl_FragCoord.x;
bool grid = mod(x, CELL_SIZE) < LINE_WIDTH || mod(x, CELL_SIZE) < LINE_WIDTH;
float color = grid ? 1.0 : 0.0; 
gl_FragColor = vec4( vec3( color ), 0.2 );

我需要更改的行是

float color = grid ? 1.0 : 0.0; 

只允许我使用黑色,白色和灰色。关于如何将两种颜色都改为vec3的任何想法?

1 个答案:

答案 0 :(得分:2)

虽然我没有对它进行测试,但下面的内容应该有效:

lowp vec3 gridColor = vec3(0.5,0.5,0.0);
lowp vec3 nonGridColor = vec3(0.5,0.0,0.5);
vec3 colorv = grid ? gridColor : nonGridColor;
gl_FragColor = vec4( colorv, 0.2 );