我正在尝试创建一个包含单元立方体(或球体)的600x600x600网格。只有一些立方体存在。所以,基本上,我试着像下面这样的小立方体或球体。

问题1:呈现这样的结构代价很高。它需要3个嵌套循环(600个迭代中的每个循环)。有什么办法解决这个问题吗?
我的想法是将附近的立方体合并成一个单一的立方体(oct-tree),因为在我的例子中不会有太多的缺口。但我想要一个通用的解决办法。你认为渲染这样一个场景需要多长时间(看起来像是250 x250x250)?
问题2:实例呈现与我的问题有关吗?
注意事项:这里我将体素表示为一个立方体,而这个立方体又需要6个四边形。
发布于 2014-09-19 13:43:25
我以前做过体素渲染引擎。下面是一些我可以建议的快速优化,这些优化会给您带来很好的速度提升:
正确地做这三件事会给你很大一部分你想要的刺激。在此之后,它将根据您的需要和需求进行微调。
发布于 2014-04-08 21:12:30
实际上,问题1可以通过将不同的多维数据集组合成一个大立方体来处理。体素引擎通常将多个单独的盒子分组在一起。这也许是最好的办法。其次,可以对每个体素以及包含这些体素的块使用一个布尔变量,并将其设置为呈现1,否则设置为0。您将需要一个voxel类、一个块类和一些其他抽象,这取决于您的需求。
发布于 2014-04-09 09:03:08
也许可以创建一个几何图形着色器,为网格中的每个点复制一个盒子。编程的着色器智能,使它不输出边,转离视图,没有边的地方有一个“活动”框相邻。
问题是提供几何着色器600*600*600大小的布尔值。如果复合"object“有点坚固--也许您只需要在每一行/每列上提供起始和结束位置,那么: 1,4, 90 ,345意味着填充从1到4的位置,从90到345填充多维数据集。
https://stackoverflow.com/questions/22948068
复制相似问题