[程式] 黏土繪製:邁進方塊與色塊繪製

作者: cjcat2266 (CJ Cat)   2020-04-30 10:32:07
先貼demo~
https://www.youtube.com/watch?v=yILKJEd9pvE
我原本是在研究全畫面的射線邁進(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/
作者: zxc9764315 (Norus)   2020-04-30 10:54:00
要看起來這麼平滑的話,cube size是多少啊?
作者: metallican (鋼鐵人)   2020-04-30 17:03:00
貓大是我的神
作者: aiwhat   2020-04-30 20:12:00
要看起來平滑,可以根據與該點相鄰的面重新計算 normalvector,取代原本的 face normal

Links booklink

Contact Us: admin [ a t ] ucptt.com