[程式] 黏土繪製:邁進方塊與色塊繪製
我原本是在研究全畫面的射線邁進(ray marching)
雖然用了包絡空間階層(bounding volume hierarchy, BVH)優化了不少
但是感覺效能還是沒辦法進步到能夠在遊戲中廣泛應用
(當然如果遊戲本體或主要機制就是全畫面射線邁進則另當別論)
這是我的ray marching優化最終成果demo
https://www.youtube.com/watch?v=2T2FqvtXqLw
後來有不少人建議我去看看Clayxels: https://andrea-intg.itch.io/clayxels
它是一個Unity的外掛,使用邁進方塊(marching cubes)方式建構物件
與ray marching同樣是對有向距離場(signed distance field, SDF)取樣
所以同樣可以達到像是黏土般融合物件的效果
再加上用色塊(splat)的方式繪製,就可以達到類似Dreams的效果
(Clayxels算是部分受到Dreams影響)
受到了Clayxels的啟發
我便轉換跑道從ray marching改成研究marching cubes
開頭的demo影片就是目前的研究進度
已經可以達到物件融合和材質融合
接下來就要開始研究優化和工具UX了
以下是我所用到的研究資料
http://www.michaelwalczyk.com/blog/2017/5/25/ray-marching
http://www.iquilezles.org/www/articles/smin/smin.htm
http://www.iquilezles.org/www/articles/normalsSDF/normalsSDF.htm
https://box2d.org/files/ErinCatto_DynamicBVH_GDC2019.pdf
https://github.com/erincatto/box2d
http://paulbourke.net/geometry/polygonise/
--
Web http://AllenChou.net
Twitter http://twitter.com/TheAllenChou
LinkedIn http://linkedin.com/in/MingLunChou
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 160.33.168.6 (美國)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1588213931.A.E5A.html
推
04/30 10:54,
4年前
, 1F
04/30 10:54, 1F
推
04/30 12:44,
4年前
, 2F
04/30 12:44, 2F
推
04/30 17:03,
4年前
, 3F
04/30 17:03, 3F
→
04/30 20:12,
4年前
, 4F
04/30 20:12, 4F
→
04/30 20:12,
4年前
, 5F
04/30 20:12, 5F
我沒有採用存取鄰近面的方法
每一個方塊是獨立的GPU thread運算
如果要存取鄰近方塊生成的面,會遇到以下兩個問題之一:
1. 需要額外配置跨GPU thread的共同記憶體
2. 需要重算6個鄰近方塊生成的面,會多出6倍運算量
我使用的方式是對SDF進行數值微分
https://iquilezles.org/www/articles/normalsSDF/normalsSDF.htm
不過也只用在圓滑mesh繪製模式
splat繪製模式用平的法向量就可以了
※ 編輯: cjcat2266 (160.33.168.6 美國), 05/01/2020 03:24:22
推
05/01 10:10,
4年前
, 6F
05/01 10:10, 6F
※ 編輯: cjcat2266 (160.33.168.6 美國), 05/01/2020 10:30:25
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
10
38