有人可以使用以下公式向我指出计算世界空间视图方向背后的解释:
float3 worldSpaceViewDir = _WorldSpaceCameraPos.xyz - worldPos;
答案 0 :(得分:3)
float3 worldSpaceViewDir = _WorldSpaceCameraPos.xyz - worldPos;
这给出了从世界坐标中的物体位置到世界坐标中的摄像机位置的方向。
我猜你会期望数据是相机所在的位置。 在着色器方面,你不会这样想,这没关系。
考虑到当相机正好在它前面时,你想要一个像素显示白色(当看不到时,它是黑色)。您可以使用点积产品来查看方向是否与正常方向对齐,但相机是否正在查看它并不重要。您的像素获取信息,如果相机面对,那么它将呈现,但在此之前,着色器不关心并做它应该做的事情。
请注意,CG中已有此方法:
float3 WorldSpaceViewDir (float4 v)