比方说,我在三维模型空间中给出了两条射线,从同一个中心P开始,但方向不同,D和E:
A=( P,D)
B=( P,E)
我从这两种光线中形成半角射线:
H=( P,(D+E)/2)
现在假设A‘和B’是相同的射线,但转化为屏幕空间(MVP矩阵乘法、透视除法、视口缩放等)。射线H‘分别指屏幕空间中的半角矢量。
现在我的问题是,向量H‘可以用上面提到的运算从向量H中导出吗?还是我必须计算A’和B‘并从它们计算H’?
问候
发布于 2016-12-12 08:54:41
你必须计算A‘和B’,然后从它们计算H‘。原因是三维空间中两个点的中点不一定是这些点的二维投影之间的中点( 2D)。用D和E的中点定义了半角射线。
举个例子,把你的A和B向量想象成你站在墙上的一个V的两面,你站在旁边,向下看。由于透视,当投射到2D时,V的两个尖端的三维中点将更接近进一步的尖端。
https://stackoverflow.com/questions/41097001
复制相似问题