2017年5月29日 星期一

[Unity 範例檔] 用 Reflection Probe、Standard Shader 製作鏡子效果 (Mirror)


本範例示範使用 Reflection ProbeStandard Shader  ,及一個控制 Reflection Probe 的 Script。
在Unity中製造一個滿滿的大鏡子。

線上玩
原始檔下載

單純使用Reflection Probe 是無法正確呈現出平面鏡子效果的,
你可以把掛在遊戲物件「mirror」上的「mirror.cs」給移除後跑跑看就知道了。

mirror.cs 的功能就是依據「攝影機」 與「鏡子」之間的位置,
移動「 Reflection Probe」至「可呈現平面鏡子效果」的「正確位置」。

==========================================================
本文是參考自此 Youtube 影片「https://youtu.be/AmwfMpf499U」的 Script。

不同處有:

  1. 我的版本是用 C#,影片版是JS。
  2. 我的版本不用自行設定鏡子面朝X軸、Y軸、Z軸。
  3. 承上,因此我的版本鏡子是可以擺斜的。
此鏡子範例是針對平面鏡子而做的,多邊形或是圓形的反射不太需要套用本範例。

延伸閱讀:Shader版本的鏡子



我在計算 Reflection Probe的座標那部份有點算是暴力解(mirro.cs 20~32),
相信應該有更聰明的數學解法!等哪天我想到時再來補上....

沒有留言:

張貼留言