2009-02-04 3 views
6

나는 다소 2D이지만 3D로 렌더링 된 게임을 가지고 있습니다. 카메라는 완벽하게 수직에서 약 20도 기울어 진 2D 게임 필드 위를 가로 질러 약간의 3D 관점을 제공합니다.OpenGLES에서 카메라를 올바르게 향하게 스프라이트 얻기

구형 객체를 나타 내기 때문에 완벽하게 정사각형으로 렌더링해야하는 일부 스프라이트가 있습니다. 내 첫 번째 접근 방식은 제대로 배치 된 2D 필드에서 사각형을 렌더링했지만 스프라이트는 원근 왜곡의 영향을 받았으며 항상 둥근 모양이 아니 었습니다.

현재 나의 접근 방식은 스프라이트를 렌더링 할 때 카메라가 게임 필드 (및 스프라이트)에 수직이되도록 움직여 쿼드가 원근감에 의해 왜곡되지 않는다는 것입니다. 단점은 스프라이트의 위치가 카메라가 기울어 진 경우의 위치와 약간 다릅니다.

그래서, 어떻게는 스프라이트를 렌더링 할 수 있습니다

  1. 완벽 광장 및 카메라에 직면하지만,이를 달성하기 위해 내 카메라를 이동하는 저를 필요로하지 않습니다.
  2. 은 (포인트 스프라이트와는 달리) 카메라의 거리에 의해 영향을받는 크기

답변

10

항상 카메라를 마주 보는 다각형을 사용하여 원하는 것을 얻을 수 있습니다. 이것은 "게시판"이라고합니다. Here is 수학을 설명하고 OpenGL을 사용하여 구현하는 방법을 설명하는 멋진 튜토리얼

+1

감사합니다. 매우 도움이됩니다. –

0

당신이 제안으로 카메라에 수직 쿼드 그리기하지만, 필드 위에 그들에게 약간의 위치를 ​​되세요. 위의 거리는 아마도 구의 반지름이어야합니다.

+0

나는 어떻게 움직이는 지 잘 모르겠습니다. 도움이 될 것입니다. 그리고 내 문제의 일부는 내가 플레이 필드에 수직이 아닐 때 쿼드가 움직이는 카메라를 향하게하는데 필요한 수학을 알아낼 수 없다는 것입니다. 미안하지만 내가 잘 설명하지 못하면. 말로 표현하는 것은 까다 롭습니다. –

0

당신은 여전히 ​​포인트 스프라이트를 사용할 수 있습니다 ... glPointParameter()를 사용하면 깊이 감쇠를 줄 수 있습니다. 현재 개발중인 입자 시스템의 깊이 감쇠에 0.00025를 사용하고 있습니다. 아래쪽은 제 1 세대 기계 (iphone 또는 ipod touch에서이 작업을 수행한다고 가정)에서 64x64 픽셀의 최대 스프라이트 크기로 고정됩니다.

+0

나는이 주석이 오래되었다는 것을 알고 있지만 잠재적 인 독자들에게는이 방법에 또 다른 단점이 있다는 것을 강조해야한다. 클리핑 때문에 화면이 꺼지면 스프라이트가 사라집니다. – Rene

관련 문제