渲染大型体素对象的最佳方法是什么?

问题描述 投票:0回答:1

我正在尝试在opengl中显示人的3d模型。人体对象由3D array [n] [n] [n](高度,宽度和深度)表示,其中n =300。数组的每个元素的值为1或0。如果element为0,则应为忽略了其他绘制。

问题:由于我必须使用3个嵌套的for循环来遍历3D数组,然后为每个单独的体素创建顶点,因此需要花费大量时间。

我解决问题的想法:编写另一个程序,该程序将遍历数组,创建顶点并将其写入文件。然后,每当需要渲染时,我都会从文件中读取顶点。

问题:渲染此类对象的最佳方法是什么?如果您可以建议任何算法或技术,那就太好了。

opengl 3d rendering 3d-modelling
1个回答
0
投票

很多年前,我做了一个类似的学校项目。

我有一个0和1的3D体积表示,表示一个房间。 0表示多维数据集为空,1表示多维数据集已满。这是您面临的相同问题,但翻转了四边形的法线。

enter image description here

所以我做了一个算法,将位的立方变成最小的四边形。

我一直在挖掘旧的代码存储库,并找到了function that does that。我对当时写的代码感到as愧,但希望您能从中得到一些启发。

© www.soinside.com 2019 - 2024. All rights reserved.