说,我在3D模型空间中给出两条光线,从相同的中心P开始,但方向D和E不同:
A =(P,D)
B =(P,E)
我从这两个角度形成半角射线:
H =(P,(D + E)/ 2)
现在说A'和B'是相同的光线,但转换为屏幕空间(MVP矩阵乘法,透视分割,视口缩放等)。光线H'分别指屏幕空间中的半角矢量。
现在我的问题: 矢量H'可以仅使用上述操作从矢量H导出,还是我必须计算A'和B'并从中计算H'?
此致
答案 0 :(得分:0)
你必须计算A'和B'并从中计算H'。原因是3D空间中的两个点的中点不一定是这些点的2D投影之间的中点(在2D中)。半角射线是根据D和E的中点定义的。
例如,将你的A和B矢量想象成一个V的两面画在墙上,你站在旁边,往下看。由于透视,当投影到2D时,V的两个尖端的3D中点将更接近另一个尖端。