[程式] 黏土绘制:迈进方块与色块绘制

楼主: 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