2016-03-01 43 views
1

我開始在Android(Java)上的OpenGL ES; 我下面這個教程:http://developer.android.com/training/graphics/opengl/projection.htmlAndroid GLES2.0:基本矩陣問題

事情基本順利,但我有一個矩陣乘法一些麻煩,我沒有在桌面上的OpenGL的(這裏我用的不是Java/Android框架GLM) 我的投影+視圖矩陣一點兒也不正常工作,當我做投影*視* vec4(.. COORDS ..) 爲要顯示我的幾何形狀的唯一方法是通過右鍵乘: vec4(...)* MVP其中MVP是投影*視圖。 它應該不起作用(就我而言),但是......它的確如此。至少有一點點。我得到通過這樣大規模的剪裁問題,但它仍然是聊勝於無:d

我的問題是有點兒類似這樣的(和相同的教程,但它看起來像它得到了更新):Android OpenGL weirdness with the setLookAtM method

但看起來我現在有相反的問題。我累了,每一個組合我想象中要解決這個(約轉MVP在GLSL,通過投影乘視圖,而不是其他方式等)

這裏是我的代碼

//GLSL : 
gl_Position = vec4(vPosition, 1.0) * MVP; 

凡MVP是mMVPMatrix,其被定義爲...

Matrix.setLookAtM(mCameraMatrix, 0, 8, 8, -8, 0f, 0f, 0f, 0.0f, 1.0f, 0.0f); 
Matrix.multiplyMM(mMVPMatrix, 0, mProjectionMatrix, 0, mCameraMatrix, 0); 

和投影是

float ratio = (float) width/height; 

android.opengl.Matrix.frustumM(mProjectionMatrix, 0, -ratio, ratio, -1, 1, 3, 7); 

不限想法?

+0

一點兒也不看工作(當然,用乘法,你告訴我和乘法vec4 * MVP,我得到一個可怕的結果,而不是一個幾乎正確的結果,並與MVP * vec4,我什麼也沒有......) BTW,什麼醫生說看起來像它在OpenGL: 如果你這樣做: 投影*查看* vec4,投影最後得到應用,但是是LHS。這就是我不喜歡它的原因 – bisthebis

+0

也許你是對的。儘管如此,它並沒有解決我的問題。多麼奇怪 – bisthebis

+1

忘了我所說的一切,你是對的......我從Android SDK下載了一個示例,並使用它們。 – Gusman

回答

0

問題解決了:我只是計算它之前設置我的MVP矩陣,以身份,而這一點,每一幀