为什么我不能编辑gl_FragCoord?

时间:2015-07-31 15:02:10

标签: google-chrome webgl shader fragment-shader

作为头衔, 我在WebGL程序的片段着色器中有这一行,

gl_FragCoord.xy = vec2(gl_FragCoord.x + 1.0,gl_FragCoord.y);

并且谷歌Chrome控制台告诉:

错误:0:45:'分配' :需要l值" gl_FragCoord" (不能修改gl_FragCoord)

为什么?

1 个答案:

答案 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