Re: [情報] 海島奇兵的海浪效果
看板GameDesign (遊戲設計)作者cjcat2266 (CJ Cat)時間10年前 (2015/06/25 02:19)推噓3(3推 0噓 9→)留言12則, 5人參與討論串2/3 (看更多)
基本上就是把頻率不同的雜訊疊加在一起 (如perlin noise, simplex noise, etc.)
用不同速度移動各頻率雜訊
我可以想到的做法有三種:
1. 在CPU上即時生成雜訊材質,傳入vertex shader
vertex shader對雜訊材質取樣,用以位移水面的vertices
優點:時間軸上,不易出現重複的紋路
缺點:跟2.和3.比起來,較消耗CPU運算資源
雜訊品質受材質解析度限制
空間軸上,還是會注意到tiling產生的重複紋路(如果材質解析度太低)
2. vertex shader中,把vertex位置傳入雜訊函式取得位移量
ShaderToy上有不少shader雜訊函式範例
這是其中一個 https://www.shadertoy.com/view/Ms2SD1
優點:空間和時間軸上,皆不易出現重複紋路
雜訊品質不受解析度限制
缺點:跟1.和3.比起來,較消耗GPU運算資源
3. 事先生成不同頻率的雜訊材質(pre-rendered noise)
傳入vertex shader,用來位移水面的vertices
或者拿來當做normal map
優點:跟1.和2.比起來,消耗較少運算資源
美術人員對雜訊的視覺控制較大,容易設計stylized noise
缺點:空間和時間軸上,皆較易讓人注意到重複紋路
normal map沒有實際位移水面,容易讓人注意到瑕疵
雜訊品質受材質解析度限制
原po提到的Boom Beach看起來是用3.的方式產生水面normal map
然後再用個低頻雜訊位移水面的vertices
一般運算資源足夠的PC或主機遊戲,採用的是1.或2.
--
Web http://AllenChou.net
Twitter http://twitter.com/TheAllenChou
LinkedIn http://linkedin.com/in/MingLunChou
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 160.33.43.15
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1435169976.A.595.html
※ 編輯: cjcat2266 (160.33.43.15), 06/25/2015 02:52:41
推
06/25 09:24, , 1F
06/25 09:24, 1F
→
06/25 09:45, , 2F
06/25 09:45, 2F
推
06/25 10:48, , 3F
06/25 10:48, 3F
推
06/25 15:15, , 4F
06/25 15:15, 4F
→
06/25 15:15, , 5F
06/25 15:15, 5F
→
06/25 15:16, , 6F
06/25 15:16, 6F
→
06/25 15:16, , 7F
06/25 15:16, 7F
→
06/25 15:17, , 8F
06/25 15:17, 8F
→
06/25 15:18, , 9F
06/25 15:18, 9F
→
06/25 15:18, , 10F
06/25 15:18, 10F
→
06/25 15:19, , 11F
06/25 15:19, 11F
→
06/25 16:03, , 12F
06/25 16:03, 12F
討論串 (同標題文章)
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
28
34
10
19