2013-03-19 97 views
1

我正在使用Three.JS和Collada加載程序構建建築物的3D模型。Three.JS,如何配置攝像頭以避免顛倒模型?

我提高了我的系統交互,但我有兩個主要問題:

1 - 當我在現場旋轉模型,它在3軸旋轉,它使得倒掛!我想保持模型固定在水平軸上,只沿Y軸旋轉(向上)。

A live sample如何將此立方體僅圍繞Y軸(上)旋轉?

2 - 如何使用鼠標移動對系統進行平滑控制?例如在大型模型中,要順利地縮放到特定的小物體並不容易。我如何配置相機以平滑放大,平移和旋轉?

感謝

+0

嗨,我是初學者到3JS。我想知道你是如何創建建築物的3D模型的? – TBAG 2015-02-16 07:10:28

+0

我使用Autodesk Revit創建IFC文件。然後,我使用Blender將IFC文件導出到Collada。有一個Blender插件可以讀取IFC,您可以輕鬆將其導出到Collada。您也可以使用Sketch創建Collada文件。 – mbehnaam 2015-02-19 05:49:20

回答

1

您不旋轉模型。你正在旋轉相機。

使用OrbitControls而不是TrackballControls - 它會保持相機正面朝上。

OrbitControls應該平滑。如果不是,那麼你的模型可能有問題。這隻能在個案基礎上處理。

您正在使用一個已有一年的圖書館版本。更新到當前版本是明智的。

three.js r.57。

1

添加下面的腳本:

controls.getMouseProjectionOnBall2 = controls.getMouseProjectionOnBall; 
controls.getMouseProjectionOnBall = function(x, y){ 
    return controls.getMouseProjectionOnBall2.call(controls, x, controls.screen.height/2); 
} 

關於生澀的動作,我看你做的一切可能已經(通常人們忽略requestAnimationFrame)。我認爲除了減少建築物的複雜程度之外,你不能做任何事情來減少急躁。

相關問題