[程式] 黏土繪製:射線邁進與GPU空間結構優化
這是最近做的一個實驗
因為某些原因,就跳進射線邁進(ray marching)的大坑了
Ray marching是在demoscene領域很紅的繪圖手法
在 http://shadertoy.com 上也很熱門
搭配有號距離場(signed distance field, SDF)和柔化混和
可以繪製出類似用黏土建構的場景效果
使用相關技術的遊戲有Claybook和Dreams
這是我的第一個實驗
https://twitter.com/TheAllenChou/status/1251469038644912128
後來成功將此效果套用到Unity的scene view中
這樣就可以方便用自由視角觀測
https://twitter.com/TheAllenChou/status/1251755478670962695
然後我改用compute shader後製
做到可以利用編輯器內的game object達到即時互動
https://twitter.com/TheAllenChou/status/1252126496799375361
後來試著做出能視覺化效能瓶頸的熱視圖(heat map)
這是視覺化射線邁進次數的熱視圖
https://twitter.com/TheAllenChou/status/1252495311798321153
接下來的計畫是用空間結構階層(bounding volume hierarchy, BVH)
想辦法優化,剔除射線壓根不會碰到的物件所對應的SDF
首戰告敗,因為陷入race condition的陷阱做出了...蜜蜂群XD
https://twitter.com/TheAllenChou/status/1252828873533743104
二度嘗試後成功了
BVH優化在壓力測試中可以有效剔除96%的SDF運算
我並且追加了另外一個熱視圖,以觀測射線實際運算的SDF數量
這是最終的demo + 解釋
https://www.youtube.com/watch?v=2T2FqvtXqLw
原始檔:
https://github.com/TheAllenChou/unity-ray-marching
參考資料:
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://www.shadertoy.com/
https://box2d.org/files/ErinCatto_DynamicBVH_GDC2019.pdf
https://github.com/erincatto/box2d
以上 :)
--
Web http://AllenChou.net
Twitter http://twitter.com/TheAllenChou
LinkedIn http://linkedin.com/in/MingLunChou
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 23.242.26.50 (美國)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1587547933.A.82C.html
※ 編輯: cjcat2266 (23.242.26.50 美國), 04/22/2020 17:44:45
推
04/22 17:47,
4年前
, 1F
04/22 17:47, 1F
→
04/22 17:55,
4年前
, 2F
04/22 17:55, 2F
推
04/22 18:29,
4年前
, 3F
04/22 18:29, 3F
推
04/22 19:43,
4年前
, 4F
04/22 19:43, 4F
推
04/23 00:19,
4年前
, 5F
04/23 00:19, 5F
※ 編輯: cjcat2266 (160.33.168.6 美國), 04/23/2020 02:27:35
推
04/23 11:46,
4年前
, 6F
04/23 11:46, 6F
因為運算量太多了,所以有沒有優化都撐到100%運算吞吐量了吧
我用RTX 2080的資源使用差別是40% vs 100% (過飽和)
超過100%的過飽和部分要用GPU profiler或高精度stopwatch才觀測得到
我用profiler觀測的結果,效能差異約是12倍
不同於SDF運算量的30倍,因為仍需考慮兩者共同的基礎繪製運算
※ 編輯: cjcat2266 (23.242.26.50 美國), 04/24/2020 02:03:37
推
04/25 08:03,
4年前
, 7F
04/25 08:03, 7F
→
04/25 11:04,
4年前
, 8F
04/25 11:04, 8F
→
04/25 11:04,
4年前
, 9F
04/25 11:04, 9F
→
04/25 11:04,
4年前
, 10F
04/25 11:04, 10F
→
04/25 11:04,
4年前
, 11F
04/25 11:04, 11F
→
04/25 23:07,
4年前
, 12F
04/25 23:07, 12F
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章