反射角cg unity3D

Reflection angle cg unity3D

我有一个平面,上面有一个 cg 着色器,告诉平面反映立方体贴图。这一行告诉它需要如何反映立方体贴图:

float3 reflectDir = reflect(viewDirection,v.normalWorld);

如果你正视法线,我希望反射为 0%,如果你从侧面看法线,我希望反射为 100%,我该如何实现?现在我做了一个我想要的插图:

reflectPercent = Vector3.Cross(viewDirection.normalized, normalDirection.normalized).magnitude;

点积错误 - 它是一个向量在另一个向量上的 投影 的大小。

虽然你可以使用

reflectPercent = Abs(1-Abs(Vector3.Dot(viewDirection.normalized, normalDirection.normalized)));