用于Android的OpenGL ES 2.0翻译似乎搞乱了矩阵

时间:2011-12-04 23:22:41

标签: android opengl-es matrix opengl-es-2.0 translate

我正在尝试翻译三角形条。我的程序获得了人的手指触摸位置并在那里创建了一个盒子。我在应用翻译时遇到问题,在同一个地方的每次触摸时创建形状,然后通过Matrix.translateM将其转换为触摸位置。当我这样做时,我一切都变得棘手!盒子从屏幕边缘向中心拉伸,变得无限小。至少它正在注册触摸。也许它不起作用,因为MotionEvent getX和y并没有规范化?但我不知道这会如何搞乱mvp Matrix。

基本上就像这样onDrawFrame:

对于每个形状  设置属性指针  翻译MMatrix  乘以MM,VM存储在mvp中  乘以MVP,Proj  绘制

我知道视图和项目矩阵有效,因为如果我禁用翻译,它就可以正常工作。

正如预期的那样,它越来越多地翻译每一帧 - 我在形状构造函数中完成了翻译,但为了简单起见,将它放在这里并测试它,同样奇怪的结果

1 个答案:

答案 0 :(得分:0)

只有那么小的假代码才有点困难,但我还是会尝试的; 首先确保你已经在你的modelMatrix上调用了Matrix.setIdentity(),其次,确保你的相机不是有一个奇怪的透视导致“无限伸展”。