Я очень смущен в использовании методов GLU.gLookAt (eyeX, eyeY, eyeZ, Xpos, Ypos, Zpos, upX, upY, upZ). Все, что я хочу, это увеличить 3D-куб. Когда я увеличиваю/уменьшаю значение eyeZ, камера перемещается вперед/назад к кубу. Его все хорошо до определенного предела eyeZ, но когда я увеличиваю значение eyeZ за пределами этого предела, он начинает возвращать эффект, то есть вместо масштабирования он начинает масштабироваться.Движение камеры в OpenGL ES android
Возможно, я не очень хорошо разбираюсь в openGL, чтобы понять метод выше, но может ли кто-нибудь сказать мне, что является основной причиной этого. я упомянул эту ссылку http://jerome.jouvie.free.fr/opengl-tutorials/Tutorial8.php
Если вы хотите, я могу разместить свой код здесь ..
public void onDrawFrame(GL10 gl)
{
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
//gl.glTranslatef(xPos, yPos, -zoomFactor);
GLU.gluLookAt(gl, eyeX, eyeZ, eyeZ, 0f, 0f, 0f , 0f, 1f, 0f);
gl.glRotatef(mAngleX, 0, 1, 0);
gl.glRotatef(mAngleY, -1, 0, 0);
// Draw the model
cube.draw(gl);
}
это метод, в котором я использую метод gLookAt ..
сделайте свой код и точку, в которой он начинает уменьшаться. –
Ну, если вы переместите камеру вдоль линии, в какой-то момент вы будете ближе всего к своей цели. –
общественного недействительными onDrawFrame (GL10 ГЛ) { \t \t gl.glClear (GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); \t gl.glMatrixMode (GL10.GL_MODELVIEW); \t gl.glLoadIdentity(); \t \t //gl.glTranslatef (xPos, yPos, -zoomFactor); \t GLU.gluLookAt (gl, eyeX, eyeZ, eyeZ, 0f, 0f, 0f \t, 0f, 1f, 0f); \t gl.glRotatef (mAngleX, 0, 1, 0); \t gl.glRotatef (mAngYY, -1, 0, 0); \t // Нарисуем модель \t cube.draw (gl); } –