Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';剔除';在体素世界中_Javascript_Three.js_Culling_Voxels - Fatal编程技术网

Javascript ';剔除';在体素世界中

Javascript ';剔除';在体素世界中,javascript,three.js,culling,voxels,Javascript,Three.js,Culling,Voxels,我有一个充满体素的世界,假设我的世界是320*320*96体素。我的想法是将整个世界加载到我的显卡ram中,这样在将新的“块”传输到GPU时就不会丢失性能。为显示体素世界而生成的脸的数量应该很容易地放入现代图形卡的内存中 然而,我现在面临的问题是如何不显示这个世界的某个部分,我想将这个世界的视图限制为(例如)128*128*96,并将世界或相机移动以显示不同的部分 为了演示我的问题,请看一个(简单的)场景,该场景由白色地面和“可视”区域组成,我正在寻找合适的WebGL/three.js函数,以将

我有一个充满体素的世界,假设我的世界是320*320*96体素。我的想法是将整个世界加载到我的显卡ram中,这样在将新的“块”传输到GPU时就不会丢失性能。为显示体素世界而生成的脸的数量应该很容易地放入现代图形卡的内存中

然而,我现在面临的问题是如何不显示这个世界的某个部分,我想将这个世界的视图限制为(例如)128*128*96,并将世界或相机移动以显示不同的部分

为了演示我的问题,请看一个(简单的)场景,该场景由白色地面和“可视”区域组成,我正在寻找合适的WebGL/three.js函数,以将视图限制为仅白色部分


可以从场景中删除不希望显示的体素

scene.remove( mesh )
并在确实要显示它们时将它们添加到场景中

scene.add( mesh )

我建议将你的体素世界分割成块(如Minecraft),并将这些块分别制作成网格。添加希望在场景中可见的块网格,并在希望隐藏它们时将其删除。

这只部分解决了我的问题,我实际上希望一次显示/隐藏单个体素条带,我的区块是16*16*16@windwarrior那么,使用块来组织体素有什么意义呢?这样更改单个块不会使整个体素世界无效;)你想在一个场景中加入一个场景(在白色的广场上)?那你可以看一看