我想使用Direct3D 11将几个图像从多视图混合到一个纹理中,因此我在顶点着色器阶段和几何着色器阶段进行多次投影,其中一个投影结果存储在SV_Position中,其他存储在POSITION0,POSITION1中等等。这些位置将用于采样图像。光栅化器阶段发生了什么?
然后在像素着色器阶段,SV_Position中的值典型地类似于(307.5,87.5),因为它在屏幕空间中。因为渲染目标的大小是500x500,所以样本的uv是(0.615,0.0.175),这是正确的。但POSITION0中的值将会像(0.1312,0.370),它会与偏移垂直反转。我必须做(0.5 + x,0.5 - y)。投影扭曲并且刚好大致匹配。
光栅阶段在SV_Position上做什么?
那么,投影变换后的坐标是否为NDC?什么观点转换似乎就像'(0.5 + x,0.5 - y)' – Clones1201 2014-12-06 10:20:36
预计位置除以它的w,然后成为NDC,它的工作,Thx! – Clones1201 2014-12-07 01:10:25
是的,对不起。我忘了提到'SV_Position'实际上可以在视角分隔之前超出'[-1,1]'范围之外。 – Lucius 2014-12-07 13:54:26