XML3D 边界框
XML3D Bounding boxes
根据我在规范中阅读的内容,每个场景元素形式的 XML3D 都有与之关联的边界框。
请问bounding boxes的size是怎么计算的?
特别是 <group>
和 <xml3d>
元素 - 它是否考虑了儿童边界框的大小?
我假设 <mesh>
的边界框大小是根据网格顶点位置计算的。
我需要这些知识来调整相机翻译速度。
正如您对 <mesh>
元素的猜测,它是根据顶点位置计算的。对于<group>
个元素,基本计算如下:
var bbox = new XML3DBox();
for (var child in children) {
bbox.extend(child.getWorldBoundingBox());
}
所以它递归直到它命中 <mesh>
个元素,并且层次结构中每个组的最终边界框是包围所有子元素边界框的最小体积,无论它们是 <groups>
或 <meshes>
。 <group>
在其子树的任何位置都没有可渲染对象(<mesh>
或 <model>
)将 return 一个空框。
在 <xml3d>
元素上,它将 return 一个包围整个场景的框。
要记住的一件事是标记为不可见的对象(具有 visible="false" 属性)不会包含在边界框计算中。
根据我在规范中阅读的内容,每个场景元素形式的 XML3D 都有与之关联的边界框。
请问bounding boxes的size是怎么计算的?
特别是 <group>
和 <xml3d>
元素 - 它是否考虑了儿童边界框的大小?
我假设 <mesh>
的边界框大小是根据网格顶点位置计算的。
我需要这些知识来调整相机翻译速度。
正如您对 <mesh>
元素的猜测,它是根据顶点位置计算的。对于<group>
个元素,基本计算如下:
var bbox = new XML3DBox();
for (var child in children) {
bbox.extend(child.getWorldBoundingBox());
}
所以它递归直到它命中 <mesh>
个元素,并且层次结构中每个组的最终边界框是包围所有子元素边界框的最小体积,无论它们是 <groups>
或 <meshes>
。 <group>
在其子树的任何位置都没有可渲染对象(<mesh>
或 <model>
)将 return 一个空框。
在 <xml3d>
元素上,它将 return 一个包围整个场景的框。
要记住的一件事是标记为不可见的对象(具有 visible="false" 属性)不会包含在边界框计算中。