簡體   English   中英

Three.js獲得場景的中心

[英]Three.js get center of Scene

我想做的是在Three.js中獲取從ColladaLoader(因為加載的模型是Scene)獲得的Scene的中心,然后將其設置為Camera的目標。

只要模型的來源恰好也是它的中心,@ gaitat的解決方案就會起作用,但是我認為情況並非如此。 模型的原點可能是左下角,或者是頂面的中間,或者是與模型的“中心”無關的任何其他點。

要獲得模型的“中心”,您需要根據其幾何形狀進行計算。 幸運的是,THREE.Geometry有一些方便的方法可以幫助實現這一點。 您可以計算幾何的“邊界球”,即適合所有幾何點的最小可能球。 該邊界球的中心將是整個幾何的“中心”。

var mesh; // this should be your model's mesh
          // it might be buried inside the DAE object somewhere

mesh.geometry.computeBoundingSphere(); // this isn't calculated automatically
                                       // you need to call it

mesh.geometry.boundingSphere.center; // THREE.Vector3 which is the center of the sphere

我不確定是否需要為生成的boundingSphere.center計算世界矩陣轉換,但這只是一個開始。

請記住,幾何體的邊界球並不能說明點的分布。 幾何中的一個孤立點與其他點非常遙遠,它將離開邊界球的中心,因為它需要移動以包含該點。 盡管如此,邊界球方法是最快,最簡單的方法,並且在大多數情況下應該可行。

您可以使用camera.lookAt(scene.position);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM