2013-03-21 16 views
0

有誰知道如何將Matrix4轉換爲ThreeJS中的Matrix3?如何將Matrix4轉換爲ThreeJS中的Matrix3

我想獲得'逆視圖旋轉'矩陣。據我瞭解,你需要做這樣的事情:

1)camera.matrixWorldInverse轉換爲Matrix3
2)然後反轉結果

是正確的嗎?如果是這樣,我將如何從Matrix4轉換爲3?

感謝您的任何幫助所有

回答

1

您可以對4x4矩陣進行反演。上面的3x3將包含你想要的反向旋轉。否則,使用3x3矩陣的設置方法,併爲其分配4x4矩陣的值。

+0

謝謝gaitat。你的意思是這樣的:'var viewInv = new THREE.Matrix4()。getInverse(camera.matrixWorldInverse); \t var e = viewInv.elements; \t VAR viewRot =新THREE.Matrix3()。組( \t \t E [0] E [1],E [2], \t \t E [4],E [5],E [6], \t \te [8],e [9],e [10] \t); \t \t this.screenQuad.material.uniforms [「inv_proj」]。value = new THREE.Matrix4()。getInverse(camera.projectionMatrix); \t this.screenQuad.material.uniforms [「inv_view_rot」] .value = viewRot;' – Mat 2013-03-21 14:37:22

+0

我基本上試圖按照這個教程:[鏈接](http://codeflow.org/entries/2011/apr/13/advanced -webgl部分-2-天空渲染/)。特別是「眼睛雷」部分 - 我不知道如何獲得2套制服「inv_proj」&「inv_view_rot」 – Mat 2013-03-21 15:37:43

+0

現在你問的是另一個問題,我不準備回答,因爲我沒有玩過三個。 js着色器足以知道哪個矩陣對應哪個。但是我發現上面的代碼存在問題。由於matrixWorldInverse包含反函數,爲什麼要再次計算它。另外,WebGL沒有viewMatrix,因爲您試圖遵循的代碼需要。相反,它將modelMatrix和viewMatrix組合到了modeViewMatrix中。你可以看到這篇文章http://webglfactory.blogspot.gr/2011/06/how-to-create-view-matrix.html看看如何計算視圖矩陣。 – gaitat 2013-03-21 20:08:13

相關問題