[問題] OpenGL 2.0 translateM 導致物體變形

看板AndroidDev作者 (.。oO)時間11年前 (2013/06/25 21:34), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
我想用OpenGL畫3D, 也的確成功了 但現在碰到一個問題 假如我用translateM進行位移, 物體就會產生變形 這變形可以理解, 因為視角跟攝影機位置都不變的話 物體位移的確會變形 但我想弄成像2D平移一樣, 3D物件平移的外形也完整不變 請問這樣有辦法辦到嗎? 我的問題跟這個一樣 http://www.ptt.cc/bbs/C_and_CPP/M.1273726617.A.3B4.html 謝謝 補充視角設定: int_width跟int_height為螢幕寬高 GLES20.glViewport(0, 0, int_width, int_height); float flo_ratio = (float) int_width / int_height; Matrix.frustumM(proj_matrix, 0, -flo_ratio, flo_ratio, -1, 1, 1, 100); Matrix.setLookAtM(view_matrix, 0, 0, 0, 5, 0, 0, 0, 0f, 1f, 0f); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.72.155

06/26 14:07, , 1F
你有rotate或scale嗎?
06/26 14:07, 1F

06/26 14:41, , 2F
有scale, 但沒rotate
06/26 14:41, 2F

06/26 14:44, , 3F
不過就算沒scale, 也就是只有位移, 形狀也是會變
06/26 14:44, 3F
※ 編輯: laugher 來自: 140.116.72.155 (06/26 14:50)

06/27 02:51, , 4F
自己找到方法了, 更改視角是沒用的, 因為這是OpenGL本身的
06/27 02:51, 4F

06/27 02:52, , 5F
特性, 所以要更改的是畫布的位置, 也就是frustumM
06/27 02:52, 5F

06/27 02:52, , 6F
更改frustumM的邊界座標就行了
06/27 02:52, 6F
文章代碼(AID): #1HoPnSWL (AndroidDev)