Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphics 关于图形管道_Graphics - Fatal编程技术网

Graphics 关于图形管道

Graphics 关于图形管道,graphics,Graphics,在顶点着色器出现后的图形管道中,基本体组装->剪切到视锥体->规格化设备坐标->视口变换 现在,在顶点着色器中,我们通过modelview和投影矩阵来乘以对象坐标。“投影矩阵将视图坐标中的顶点转换为 标准视图体积(2边的立方体,以原点为中心,与3个坐标轴对齐)。通常,这将通过正交投影或透视投影进行。此变换包括投影变换矩阵的乘法和归一化 通过将每个顶点除以其自身的w坐标来计算。” 现在,如果这是在顶点着色器中完成的,那么为什么它在管道中的顶点着色器部分之后出现,它不应该只是顶点着色器的一部分吗。?

在顶点着色器出现后的图形管道中,基本体组装->剪切到视锥体->规格化设备坐标->视口变换

现在,在顶点着色器中,我们通过modelview和投影矩阵来乘以对象坐标。“投影矩阵将视图坐标中的顶点转换为 标准视图体积(2边的立方体,以原点为中心,与3个坐标轴对齐)。通常,这将通过正交投影或透视投影进行。此变换包括投影变换矩阵的乘法和归一化 通过将每个顶点除以其自身的w坐标来计算。”


现在,如果这是在顶点着色器中完成的,那么为什么它在管道中的顶点着色器部分之后出现,它不应该只是顶点着色器的一部分吗。?如果不是,投影矩阵乘以顶点坐标的输出是什么?

我不确定是否理解您的问题,但在您将点乘以顶点着色器中的modelview和投影矩阵后,您的点将位于剪辑坐标中。这样做是因为现在,图形硬件可以确定哪些对象可见,哪些不可见。这称为剪裁,它是顶点着色器之后的一个单独步骤。在此之后,它进行透视除法(将
xyz
坐标除以同质坐标
w
,这在gpu内部是硬编码的)以获得标准化设备坐标
[-1,1]

,因此标准体积[-1,1]不是与投影矩阵相乘的结果?@debonair:No,在透视分割之后得到这些坐标。但这是投影矩阵相乘的结果,
[-1,1]
内的点将在屏幕上可见。