我正在使用Three.JS和Collada加載程序構建建築物的3D模型。Three.JS,如何配置攝像頭以避免顛倒模型?
我提高了我的系統交互,但我有兩個主要問題:
1 - 當我在現場旋轉模型,它在3軸旋轉,它使得倒掛!我想保持模型固定在水平軸上,只沿Y軸旋轉(向上)。
A live sample如何將此立方體僅圍繞Y軸(上)旋轉?
2 - 如何使用鼠標移動對系統進行平滑控制?例如在大型模型中,要順利地縮放到特定的小物體並不容易。我如何配置相機以平滑放大,平移和旋轉?
感謝
我正在使用Three.JS和Collada加載程序構建建築物的3D模型。Three.JS,如何配置攝像頭以避免顛倒模型?
我提高了我的系統交互,但我有兩個主要問題:
1 - 當我在現場旋轉模型,它在3軸旋轉,它使得倒掛!我想保持模型固定在水平軸上,只沿Y軸旋轉(向上)。
A live sample如何將此立方體僅圍繞Y軸(上)旋轉?
2 - 如何使用鼠標移動對系統進行平滑控制?例如在大型模型中,要順利地縮放到特定的小物體並不容易。我如何配置相機以平滑放大,平移和旋轉?
感謝
您不旋轉模型。你正在旋轉相機。
使用OrbitControls
而不是TrackballControls
- 它會保持相機正面朝上。
OrbitControls
應該平滑。如果不是,那麼你的模型可能有問題。這隻能在個案基礎上處理。
您正在使用一個已有一年的圖書館版本。更新到當前版本是明智的。
three.js r.57。
添加下面的腳本:
controls.getMouseProjectionOnBall2 = controls.getMouseProjectionOnBall;
controls.getMouseProjectionOnBall = function(x, y){
return controls.getMouseProjectionOnBall2.call(controls, x, controls.screen.height/2);
}
關於生澀的動作,我看你做的一切可能已經(通常人們忽略requestAnimationFrame)。我認爲除了減少建築物的複雜程度之外,你不能做任何事情來減少急躁。
嗨,我是初學者到3JS。我想知道你是如何創建建築物的3D模型的? – TBAG 2015-02-16 07:10:28
我使用Autodesk Revit創建IFC文件。然後,我使用Blender將IFC文件導出到Collada。有一個Blender插件可以讀取IFC,您可以輕鬆將其導出到Collada。您也可以使用Sketch創建Collada文件。 – mbehnaam 2015-02-19 05:49:20