当模型被打印出来时,你可以用它们装饰书架和桌子:3
以下是一些我在制作这个系统时遇到的技术挑战:
- 我最初使用CPU来 voxelize 模型,通过模型的射线来检测碰撞,这是一个非常慢且线性的过程,并且没有被优化,至少也没有使用GPU。
- 然后我切换到使用GPU上的计算着色器,它并行化了所有的过程,但使用了几乎相同的系统,只不过不使用射线检测。然而,我意识到我做的系统是不准确的,因为它无法正确采样表面颜色,并且模型中有奇怪的空隙。
- 最后我修改了计算着色器来使用精度基准的计算,从三个轴上采样颜色,并且使用了与附近的 voxel 进行颜色融合,这样即使在大 voxel 大小下表面颜色也能准确。
- 因为这些计算非常耗资源,所有的计算都堵塞了游戏的主线程,导致游戏逐步卡顿,所以我限制了每批次的计算,这样就可以保持60帧率而不卡顿(还在寻找一种避免使用线程的方法以便于移动和浏览器的构建)。
- 我还需要考虑到使用纹理的模型,而不是仅仅使用实体材料,这需要进行大量的试错。
- 目前我正在尝试制作一个系统来保存和加载 voxelized 数据,以免每次都需要等待 voxelization。
如果你感兴趣的话,我可以制作一个深度剖析这个系统的视频博客!
如果你对这个游戏感兴趣的话,可以在Steam上找到它。
评论 (0)