저는 기본적으로 iPhone에서 2 차원 게임을 가지고 있습니다. 다른 속도로 스크롤하는 여러 배경을 설정하려고합니다 (시차 배경으로 알려짐).iPhone에서 OpenGL ES의 시차 배경
내 생각에 다른 z 좌표 평면을 사용하여 전경 아래에 배경을 고정시키고 수용 할 수 있도록 전경 (크기로)보다 커지게하여 전체를 스크롤 할 수있게되었습니다. 다른 속도).
그리고 (내가 아는 한) 기본적으로 구현했습니다. 유일한 문제는 내가 제공 한 z 값을 완전히 무시하거나 오히려 모든 것을 무시한다는 것입니다. 나는 배경을 본다. (나는 지금까지 하나의 배경을 테스트 해 보았고, 단순하게 유지했다. 그래서 지금은 전경이 있고 다른 배경으로 한 배경을 스크롤하고 싶다.)하지만 1 : 1로 스크롤한다. 전경, 그래서 그것은 분명히 옳지 않습니다, 그리고 그것의 대부분은 잘립니다 (더 큰 원인). 그리고 배경과 여러 가지 near/far 클리핑 비행기에 대해 다양한 z 값을 시도했습니다 ... 항상 동일합니다. 나는 아마 단순한 일을 잘못하고있을 것이지만, 나는 그것을 이해할 수 없다. 포 그라운드에 대한 glVertexPointer에서 2 좌표 만 사용하여 나와 관련이 있는지 궁금하네요?
(배경 내가 3 전달 AM에 대한 물론) 나는 몇 가지 코드를 게시합니다 :
를이 일부 초기 설정은 다음과 같습니다
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-1.0f, 1.0f, -1.5f, 1.5f, -10.0f, 10.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glEnableClientState(GL_VERTEX_ARRAY);
//glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
//transparency
glEnable (GL_BLEND);
glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
내 전경의 float 배열에 대해 조금 .. .. 인터리브되었습니다. 내 전경 들어, 버텍스 x, 버텍스 y, 텍스쳐 x, 텍스쳐 y, 반복. 이것은 모두 정상적으로 작동합니다.
이 내 전경 렌더링 :
glVertexPointer(2, GL_FLOAT, 4*sizeof(GLfloat), texes); <br>
glTexCoordPointer(2, GL_FLOAT, 4*sizeof(GLfloat), (GLvoid*)texes + 2*sizeof(GLfloat)); <br>
glDrawArrays(GL_TRIANGLES, 0, indexCount/4);
배경 렌더링 : 그것은 정점의 X, 정점 y를 정점 Z, 텍스처 X, 텍스처, Y, 반복을가는이 시간을 제외하고 여기
동일 드릴. 이번에는 z 값에 유의하십시오. 이 배열의 데이터가 디버깅 중에 올바른지 확인했습니다 (올바른 z 값 가져 오기). 그리고 다시, 그것은 나타난다. .. 그것이해야하는 것처럼 멀리에서 멀리 돌아 가지 않고있다.
glVertexPointer(3, GL_FLOAT, 5*sizeof(GLfloat), b1Texes);
glTexCoordPointer(2, GL_FLOAT, 5*sizeof(GLfloat), (GLvoid*)b1Texes + 3*sizeof(GLfloat));
glDrawArrays(GL_TRIANGLES, 0, b1IndexCount/5);
내 카메라를 이동하려면 간단한 glTranslatef (x, y, 0.0f)를 사용하십시오.
나는 가장 기본적인 3D 기능이 상상할 수있는 것처럼 보이지만 내가하는 일을 이해하지 못한다. 카메라가 움직이면 멀리 떨어져있는 것이 더 작아지고 빠르게 움직이지 않는다. 나를위한 경우는 아닙니다. 꽤 기본적이고 내 계획과 모든 영향을받지 않아야합니다 (비록 glFrustum을 재미, 성공하지 못하게하려고 시도했지만). 제발 도와 줘, 나는 그것이 단지 한 바보 같은 것 같아요. 필요한 경우 더 많은 코드를 게시 할 것입니다. 설정에 프레임 버퍼 초기화 내에서 깊이 - 버퍼링을 잊고에 어둠 속에서
depthBuffering을 사용 설정 했습니까? – Till
깊이 버퍼 추가에 대한 자세한 내용은 http://www.memention.com/blog/2009/10/08/Think-deep.html – epatel