《OpenGL ES 2.0 Prgramming Guide》中关于 Fragment Shader 的输入:
Varying variables—Outputs of the vertex shader that are generated by the rasterization unit for each fragment using interpolation.
破折号后面这句话怎么翻译和理解?
我理解的是:栅格化单元将顶点着色器(Vertex Shader)的输出用插值算法生成的片元(Fragment)。
感觉有点不通顺,而且无法和前面的 Varying variables 联系起来。
同时顶点着色器(Vertex Shader)的输出是 Varying variables 。
到底 Fragment Shader 的出入是 Varying variables 还是 Fragment ?
而且这句话有点关键,希望得到大家的指点。
1
lsmgeb89 2014-10-03 20:29:24 +08:00 1
不懂图形学,试试看。逃~~
由 rasterization 对每个片段进行插值从而生成的顶点着色器的输出。 这种输出是变量(varying variables) |
2
Mutoo 2014-10-03 20:44:23 +08:00 2
有些事情,实践过就知道了。
在 Vertex shader 中标记为 varying 的变量,会传递到 Fragment shader,但并不是直接传递。而是经过线性插值算法得出。 至于为什么需要插值,是因为每一个顶点都会由 Vertex shader 产生相应的 varying 变量。而 Fragment 的输入是由多个顶点插值得到,包括但不限于fragment的屏幕坐标、颜色、纹理坐标,其它varying 变量。 |
3
Mutoo 2014-10-03 20:56:55 +08:00
试翻译一下
Varying variables: Vertex Shader 的输出(多个),被光栅单元插值处理后供 Fragment 使用。 |
5
chaixl 2014-10-03 21:15:46 +08:00
Fragments 上的数据是光栅化过程中插值生成的。
比如顶点上的颜色、纹理坐标、法向量等值经过插值后可以得到每个片元上的相应值。 |