GLSL - 更改为 vec3 颜色
GLSL - changing to vec3 colors
我在着色器方面是个新手,几个小时以来一直在努力解决这个问题...我在 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 有什么想法吗?
虽然我还没有测试过,但像下面这样的东西应该可以工作:
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 );
我在着色器方面是个新手,几个小时以来一直在努力解决这个问题...我在 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 有什么想法吗?
虽然我还没有测试过,但像下面这样的东西应该可以工作:
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 );