UnrealEngine4禪意花園項目中的水池
來源:
52vr |
責任編輯:傳說的落葉 |
發布時間: 2019-06-13 08:22 | 瀏覽量:
這篇文章介紹了禪意花園項目中的水的效果實現方法。
禪意花園
禪意花園是Epic Games的官方項目,現在已經開放在Market Place中自由下載。這個項目中使用了特別的方法來實現水池,效果如下:
水面表現
整體的水池效果分成水面與池底兩塊,針對于水面來說使用了Cubemap + noise,原本不是十分特別的地方,但是針對于Cubemap反射這一塊有個黑魔法,值得一看:
這個函數寫的很復雜而且不好閱讀,應該是美術寫的。但是如果把它翻譯成代碼其實不難理解——它處理的是以場景設計師在關卡中放置的一個點為反射點,通過這個反射點、水面像素和相機位置的計算來獲得一個反射向量。這個反射向量在對應的CubeMap中采樣,從而獲得水面的反射效果,效果如下:
目前這個材質的實現似乎還有點小問題,可以進行修復。這里不方便將修復后的材質放出,讀者可以自己進行實現。
總體來講這個想法很新穎,可以在僅僅使用Emissive Color與Opacity通道的情況下來實現很好的水面的效果,尤其在反射效果上的效果很不錯。
因此,這個水面效果可以在移動平臺上兼顧性能和效果。
水底
禪意花園中水池的水底效果的腦洞也開的很大。在正常情況下想要表現水底的效果通常是使用Refraction通道。但是Refraction通道在某些設備上表現的不太正常,性能也是一個必須考慮的問題。
因此水底的模型是讓水底本身使用World Position Offset通道來對頂點進行位移操作,這種操作主動讓池底的網格模型進行浮動,這樣一來也就會比較好適配大部分的設備。
這種做法是很新穎的,另一方面效果也很不錯。
后記
看到了Epic Games提出的一些解決問題的方法,感覺到提出這些方法的人似乎已經到了另一種境界。《孫子兵法》說“以正合,以奇勝。”大部分人似乎花了太多的功夫在“正”上,例如不停地去鉆底層,硬碰硬的提高效率和表現。但是是否能夠在“奇”這一塊來解決實際的問題,這種“奇”的能力又該怎么去培養?
-
分享到:
相關文章
網友評論
全部評論:0條