你知道任何关于体素图形的C++库吗?

11

所以,我正在寻找一个带有C++库的体素图形引擎(面向游戏)。只是为了好玩,这将是我第一次使用图形库,因此它不必非常复杂或强大,只需要易于理解。


你说的是哪种体素?是类似于Minecraft的大块纹理体素,还是传统的尽可能小的体素? - Nicol Bolas
@Nicol Bolas,一个Minecraft风格,可能不是那么大,但足够大以确保它是一个立方体。但最终这并不重要,我只是想深入了解一下体素图形。 - Ignacio Contreras Pinilla
4个回答

23
请记住,体素只是一个概念。处理它们作为数据的方法有几种,可视化它们的方法也有几种(提取几何形状,射线投射等)。
它是固定间隔网格中的数据点,仅此而已。这一点代表什么或者你将哪个几何原语与之关联,完全取决于实现。人们通常将它们可视化为占据固定空间网格中整个单元格的立方体,这就是你将它们与立方体相关联的原因。
最著名/流行的基于体素的应用程序Minecraft使用标准光栅化管道将它们可视化为以网格为中心的立方体。像GigaVoxels这样的(学术)系统对稀疏体素八叉树结构进行射线追踪以生成图像。
我遇到了以下面向体素的库:

这里有一篇Reddit帖子,包含20年的体素引擎代码:https://www.reddit.com/r/VoxelGameDev/comments/3fvjb4/20_years_of_voxel_engines_source_code_included/


6
我参与开发一个现代的体素库,名为PolyVox,它提供了体积存储(包括分页)、表面提取以及其他辅助功能,如光线投射和环境遮蔽计算。虽然它不是游戏引擎,但提供了所有需要插入到其他任何东西中的体素内容。它完全开源,并且有一个良好的开发者社区。在论坛上,人们总是愿意回答关于体素渲染等一般性问题。

谢谢!我一定会深入研究它。 - Ignacio Contreras Pinilla

6
这完全取决于实现和执行。我希望这些可以帮助您追求所需的内容。然而,我找到了一个链接,可能会有用。 Field3D - 一个用于存储体素数据的开源库。它提供处理内存存储的C++类,以及基于HDF5的文件格式,允许C++对象轻松地从磁盘写入和读取。
此外Minetest - 开源游戏,与Minecraft非常相似。 Voxel Article - 图形化解释了什么是体素。

2

我看到它使用了Voxlap。这是一个很好的起点。谢谢。 - Ignacio Contreras Pinilla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接