2015-04-15 34 views
0

使用WebGL,我正在顯示包含多個對象的3D場景。相機/眼睛瞄準場景的中心,並使用鼠標滾輪,我可以放大和縮小。我想要做的是在3D場景中選擇任何對象,然後使用鼠標滾輪放大所選對象。我是WebGL的新手,我正在努力嘗試弄清楚如何讓這個工作。我能夠將所選對象的座標取消投影到三維座標。這是我感到困惑的地方。所選對象的3D座標是否爲新目標(lookAt)值?在放大之前是否需要更新相機/眼睛座標?指導將非常感激。WebGL:在場景中選擇對象後如何更改縮放方向?

回答

0

This answer has a sample that zooms from object to object。如果你的選擇代碼已經在工作,那麼唯一的區別就是你告訴它哪個對象要縮放,而不是隻按順序進入下一個對象。

一般來說,lookAt功能只需要在世界空間座標任何你想要的,以「看​​」。縮放取決於您如何將相機拉近或靠近它所看到的物體。最簡單的方法就是沿着矢量從相機的當前位置向您想要的位置滾動。上面鏈接的示例做到了這一點。

請注意,根據您的lookAt函數,它可能會生成相機矩陣(將相機/物體置於世界空間中指向其目標的矩陣),或視圖矩陣(將矩陣移動世界上其他所有物體它的前面)。

我找到一個圖書館產生的相機矩陣更有用,因爲所有樣的事情(人物的頭,炮塔,安全攝像機等),可以使用相同的功能點無論他們正在追蹤。產生的視圖矩陣庫是僅用於製造圖矩陣是有用的。

一個是另一個的倒數,但這樣你可以把矩陣的逆如果你需要其他的雖然。

相關問題