unity游戏开发入门(附加)-镜面效果

材质的镜面反射
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数值改为相反数

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值