之前由于对OpenGL的渲染管线理解有偏差。
一直不是很明白为什么能在像素着色器中通过丢弃像素来实现模型的裁剪。
(关于这种裁剪方法参见:http://blog.youkuaiyun.com/lyh916/article/details/45598575)
后来才明白,如果把顶点着色器中的顶点值传给像素着色器,如下图中的raw_vertex:
varying vec4 raw_vertex;
void main()
{
raw_vertex = gl_Vertex;
gl_Position = ftTransform();
}那么在片段着色器中所得到的raw_vertex, 不仅仅是你所输入的原始值本身,还有管线
插值的结果:
varying vec4 raw_vertex;
void main()
{
gl_Color = raw_vertex;
}所显示出的颜色是平滑的:
本文解释了在OpenGL中如何利用像素着色器进行模型裁剪的技术。通过将顶点值从顶点着色器传递到像素着色器,并利用插值结果,可以实现在像素级别上的精确裁剪。
1885

被折叠的 条评论
为什么被折叠?



