【问题标题】:'Culling' in a voxel world体素世界中的“剔除”
【发布时间】:2014-06-06 00:20:18
【问题描述】:

我有一个充满体素的世界,假设我的世界是 320*320*96 体素。我的想法是将整个世界加载到我的视频卡的内存中,这样在将新“块”传输到 GPU 时不会损失任何性能。为显示体素世界而生成的面数应该很容易适应现代显卡的内存。

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

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

【问题讨论】:

    标签: javascript three.js culling voxels


    【解决方案1】:

    您可以从场景中移除不想显示的体素。

    scene.remove( mesh )
    

    并在您确实想要显示它们时将它们添加到场景中。

    scene.add( mesh )
    

    我建议将您的体素世界分割成多个块(如 Minecraft),然后将这些块分别制成网格。将您希望在场景中可见的块网格添加到场景中,并在您想要隐藏它们时将其移除。

    【讨论】:

    • 这只是部分解决了我的问题,我实际上想一次显示/隐藏单条体素,我的块是 16*16*16
    • @windwarrior 那么使用块来组织你的体素有什么意义呢?
    • 所以改变单个块不会使整个体素世界无效;)
    • 你想在一个场景中像一个场景(在白色方块中)吗?你可以看看this topic然后
    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多