JavaScript - Three.js 使用 BufferGeometry 计算 Object3D 的边界框

标签 javascript three.js

我有一个 Object3D ,其中包含许多级别的子级(更多 Object3D 或网格/线)。 Box3 类有一个 setFromObject() 方法,该方法将计算对象及其所有后代的边界框。这就是我正在寻找的行为。

但是,我无法使用 Box3setFromObject() 方法,因为我没有使用 Geometry 对象。相反,我正在从事的项目专门使用 BufferGeometry。 BufferGeometry 对象没有 .vertices 属性,这是 setFromObject() 函数在计算边界框时查找的属性。

var bbox = new THREE.Box3().setFromObject(object);
console.log(bbox.min); // x, y, and z are all Infinity.
console.log(bbox.max); // x, y, and z are all -Infinity.

我也一直在尝试使用 BufferGeometrycomputeBoundingBox() 方法,但在操作几何图形时它似乎没有更新边界框。我认为这可能与 matrixAutoUpdatefalse 有关,但我也尝试显式调用 updateMatrix() 但无济于事。

如果使用 BufferGeometry 类,是否有方法计算 Object3D 及其所有后代的边界框?我是 Three.js 的新手,因此我们将不胜感激!

我使用的是 Three.js r66。

最佳答案

Box3.setFromObject( object ) 现在支持 BufferGeometry

三.js r.69dev(开发版本)

关于JavaScript - Three.js 使用 BufferGeometry 计算 Object3D 的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252499/

相关文章:

javascript - 无法渲染在 jQuery $.get 请求函数中添加到场景的三个 js 对象

javascript - Three.JS - 使用相同的骨骼结构在 SkinnedMeshes 之间共享骨架

javascript - 我无法渲染基本球体

javascript - 如何使用 HTML5 流畅地滚动文本

javascript - 简单的Three.js动画

javascript - 三个JS拖动控件Uncaught TypeError : Cannot set property 'x' of undefined

javascript - Nodejs频繁写文件

javascript - 使用 bxSlider 显示/隐藏筛选 slider 项

javascript - Slickgrid:拖动列时可以在网格上水平滚动吗?

java - 将值从 .txt 传递到 HTML 文本框(使用 Batch、Java 或 PHP)