gpt4 book ai didi

c++ - 体素数据/openvdb 结构如何工作?

转载 作者:行者123 更新时间:2023-11-30 00:53:01 27 4
gpt4 key购买 nike

因为我不想重新发明轮子,所以我正在寻找一个好的数据结构,它可以帮助我为 3D 渲染引擎提供一个真正基本的 3D 编辑器,我基本上是在寻找一个能够存储必要的数据,在我的情况下仅限于:

  • 几何
  • 局部和全局坐标或也称为变换
  • Material 或指向另一个结构的指针,该结构包含该 Material 的真实定义

现在这是我使用 3D 渲染的第一种方法,但我对光栅化器的工作原理、GPU 如何处理三角形、点和线以生成图像有很好的基础,我的问题是现在我不知道得到这个新的“基于体素的”数据结构是什么,即使这个OpenVDB是否适合我。

我认为这个引擎的大部分“输入”将来自类似 obj 的文件,基本上是三角形和点,但我仍然不想错过最新最好的,所以我问,真正的区别是什么在 OpenVDB 和包含三角网格的通用数据结构之间? OpenVDB 可能在现实世界中有哪些应用?

最佳答案

如果您了解 2D 中 vector 艺术和光栅艺术之间的区别,那类似于三角形和体素之间的区别。 vector 艺术使用线段和几何图形来表示形状,就像三角形在 3D 中表示网格一样。或者,图像使用排列在网格上的像素来表示形状,就像体素用于表示 3D 体积一样。例如,球体可以表示为网格、三角形......或一组开/关体素在 3D 网格上。现在可以将 3D 纹理存储在 GPU 上,从而实现高效的光线转换、遍历等。它们对烟雾和流体特别有用。

OpenVDB 是基于 CPU 的,但扩展了单个 3D 体积,因此它是多分辨率的。许多较小的 NxNxN 体积被组合成一棵树,形成一个非常非常大的体积。

您使用的表示在很大程度上取决于您要进行的 3D 编辑操作的类型。你想 build 树木和有机物吗?你想编辑和建模流体吗?你想为角色建模吗?..对于一个非常基本的,即入门级 3D 编辑器,我会建议三角形和网格,因为它们无处不在,以及 GPU 管道是如何设计的。

关于c++ - 体素数据/openvdb 结构如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17627420/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com