材质的镜面反射
1.直接创建material并赋给物体
对于新创建的material的inspector面板的smoothness属性进行调整,将其数值调整为1
缺点:会发现产生的反射图像存在扭曲
2.实时反射
创建物体的子摄像机→创建material赋给物体→创建Render Texture→将rengder texture赋值给camere的target texture建立联系→将render texture 赋给material的albedo→将材质赋给物体→将材质的shader改变为unit/texture
附加如下代码,保证镜子的成像为VR摄像机的视线反方向
public class Mirror : MonoBehaviour {
/// <summary>
/// 镜子摄像机
/// </summary>
public Transform MirrorCam;
/// <summary>
/// VR摄像机
/// </summary>
public Transform VRCam;
// Update is called once per frame
void Update () {
CauculateRotation();
}
#region 计算MirrorCam角度
private void CauculateRotation()
{
Vector3 dir = (VRCam.position - transform.position).normalized;
Quaternion rot = Quaternion.LookRotation(dir);
rot.eulerAngles = transform.eulerAngles - rot.eulerAngles;
MirrorCam.localRotation = rot;
MirrorCam.position = new Vector3(MirrorCam.position.x, VRCam.position.y, MirrorCam.position.z);
}
#endregion
}
同时为了保证镜子内和显示同方向,需要将镜子内渲染反向,即将其scale的x数值改为相反数