void main(void)
{
  vec4 clipCoord = glModelViewProjectionmatrix * gl_Vertex;
  gl_Position = clipCoord;

  gl_FrontColor = gl_Color;

  vec3 ndc = clipCoord.xyz / clipCoord.w;

所以clipCoord只是做标准的固定管道的变换。 为什么我的w划分,什么我从这得到什么?

有帮助吗?

解决方案

W是三维顶点的第四坐标;该顶点被称为均相的顶点坐标。

在几个字,w成分是其将其它矢量分量的一个因素。当W是1.0,均相顶点坐标是“归一化”。为了比较两个顶点,则应该W值标准化为1.0。

思顶点(1,1,1,1)的。现在增加W值(W> 1.0)。标准化的位置缩放!并且它会起源。想想顶点(1,1,1,1)的。现在减小W值(<1.0)。归一化的位置是要无限点。

除了缩放顶点坐标,在W坐标是必要的,因为你必须乘以4×4矩阵(模型视图和/或投影矩阵)用4×1矩阵(顶点)。

当然,红皮书是定指南:

  

红皮书附录

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top