作者laugher (.。oO)
看板AndroidDev
标题[问题] OpenGL 2.0 translateM 导致物体变形
时间Tue Jun 25 21:34:17 2013
我想用OpenGL画3D, 也的确成功了
但现在碰到一个问题
假如我用translateM进行位移, 物体就会产生变形
这变形可以理解, 因为视角跟摄影机位置都不变的话
物体位移的确会变形
但我想弄成像2D平移一样, 3D物件平移的外形也完整不变
请问这样有办法办到吗?
我的问题跟这个一样
http://webptt.com/cn.aspx?n=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
1F:推 stu85010:你有rotate或scale吗? 06/26 14:07
2F:→ laugher:有scale, 但没rotate 06/26 14:41
3F:→ laugher:不过就算没scale, 也就是只有位移, 形状也是会变 06/26 14:44
※ 编辑: laugher 来自: 140.116.72.155 (06/26 14:50)
4F:→ laugher:自己找到方法了, 更改视角是没用的, 因为这是OpenGL本身的 06/27 02:51
5F:→ laugher:特性, 所以要更改的是画布的位置, 也就是frustumM 06/27 02:52
6F:→ laugher:更改frustumM的边界座标就行了 06/27 02:52