13

好的,我知道体素基本上只是像素的体积版本。

在那之后,我什至不知道要寻找什么。

谷歌搜索没有显示任何教程,我在任何地方都找不到关于它的书,我什至找不到任何与体素到底是什么的基本概念有关的东西。

我知道很多 C++ 库,并且掌握了 OpenGL 的基础知识。

有人可以指出我正确的方向吗?

编辑:我想我只是对如何实现它们感到困惑?抱歉让我感到痛苦,只是我真的找不到任何可以轻松关联的东西……我想我在想象一个体素与一个向量相关,你可以在其中实际存储数据。

体素可以表示为任何3D 形状吗?例如,假设我希望形状是圆柱体。这是可能的,还是他们必须像立方体一样链接?

4

6 回答 6

8

Minecraft是使用体素的一个很好的例子。在 Minecraft 中,每个体素都是一个立方体。

要查看 C++ 示例,您可以查看 Minecraft 克隆Minetest-c55。这是开源的,因此您可以阅读所有源代码以了解其完成方式。

立方体不是体素的要求。它们可以是金字塔或任何其他可以组合在一起的形状。

于 2011-10-04T01:41:02.553 回答
5

我怀疑您正在寻找有关体积渲染技术的信息(因为您提到了体素和 OpenGL)。您可以在 C++ 中找到大量简单的渲染代码,以及更高级的 OpenGL 着色器以及对该术语进行一些搜索。

于 2011-10-04T02:02:06.953 回答
3

在最简单的可能实现中,体素空间只是一个 3 维数组。对于实体,您可以为每个体素使用一个位:1 == 填充,0 == 空。您使用隐式公式来制作形状,例如,球体是距离中心体素半径范围内的所有体素。

体素与基于多边形的 3D 渲染并不真正兼容,但它们广泛用于图像分析、医学成像、计算机视觉......

于 2011-10-04T03:59:07.680 回答
3

Let's Make a Voxel Engine on Google Sites可能有助于开始创建基于体素的引擎:

https://sites.google.com/site/letsmakeavoxelengine/

除此之外,在Youtube 上还有值得一试的结果介绍:

http://www.youtube.com/watch?v=nH_bHqury9Q&list=PL3899B2CEE4CD4687

于 2013-04-02T13:57:38.317 回答
0

通常,体素是某个 3D 空间中具有体积的位置(类似于像素包含的区域。

就像在图像中,一个像素包含一些标量值(灰度)或值向量(就像在彩色图像中,向量是红色、绿色和蓝色分量,或者色调、饱和度和值分量)体素的条目可以有一些值的比例或向量。

包含体素的体积图像的两个自然示例是 3D 医学图像,例如 CT、MRI、3D 超声等。

从数学上讲,3D 图像是从某个体素空间到某组数字的函数。

于 2011-10-04T02:52:43.767 回答
0

寻找voxlap 或试试这个http://www.html5code.com/gallery/voxel-rain/或编写您自己的代码。是的,体素可以简化为 3d 坐标(可以通过它在文件结构中的位置来暗示)和可以是任何东西(立方体、球体、图片、颜色......)的图形表示。就像像素是带有颜色索引的二维坐标一样。

您只需要解析您的文件并渲染相应的体素。可悲的是,尽管 voxlaps 文件格式看起来很整洁,但没有“正确”的文件格式。

祝你好运

于 2011-10-05T11:14:33.763 回答