2015-05-28 143 views
1

從我在規範中讀取的每個場景元素表單XML3D都有與之相關的邊界框。 我想問一下包圍盒的大小是如何計算的? 特別是對於<group><xml3d>元素 - 是否考慮到兒童邊框的尺寸? 我假設<mesh>的邊界框尺寸是從網格頂點位置計算出來的。XML3D邊界框

我需要這些知識來調整相機的翻譯速度。

+0

好的我已經檢查過,似乎xml3d包圍盒只是設置爲整個空間。哪一個沒有意義的imho。 – Pietrko

回答

1

正如你猜對<mesh>元素,它是從頂點位置計算出來的。對於<group>元素它的基本計算公式如下:

var bbox = new XML3DBox(); 
for (var child in children) { 
    bbox.extend(child.getWorldBoundingBox()); 
} 

所以遞歸直到它擊中<mesh>元素,並將所得邊框每個組的層次結構是包圍所有的子元素的包圍盒體積最小,無論他們是<groups>還是<meshes>。 A <group>(其子樹中的任何地方都沒有可呈現對象(<mesh><model>))將返回一個空框。

<xml3d>元素上,它將返回一個包含整個場景的框。

要記住的一件事是標記爲不可見(帶有visible =「false」屬性)的對象將不會包含在邊界框計算中。