作为头衔, 我在WebGL程序的片段着色器中有这一行,
gl_FragCoord.xy = vec2(gl_FragCoord.x + 1.0,gl_FragCoord.y);
并且谷歌Chrome控制台告诉:
错误:0:45:'分配' :需要l值" gl_FragCoord" (不能修改gl_FragCoord)
为什么?
答案 0 :(得分:3)
gl_FragCoord
是着色器当前运行的片段的坐标。你不能动态地选择你正在处理的片段“出于并行化的原因”,因为“GPU不是那样设计的”,如果你想了解更多有关GPU体系结构的信息,那么这样做的一个很好的资源就是{{3} }。
仅在片段语言中可用,gl_FragCoord是一个输入变量,它包含片段的窗口相对坐标(x,y,z,1 / w)值。如果是多次采样,则此值可以是像素内的任何位置,也可以是其中一个片段样本。 此值是固定功能的结果,该功能在顶点处理后插入基元以生成片段 。 A trip through the Graphics Pipeline by Fabian Giesen aka ryg