2009-11-14 2 views
2

그래서 본질적으로 게임이란 무엇입니까 ...이 게임에는 지형이 있습니다. 나는 "플레이어"가 어디로 가고 있는지 볼 수 있도록 하향식 미니 맵을 만들 수 있기를 원합니다. 나는 지형에서 약간의 음영 처리 등을하고 있는데, 미니 맵에도 같이 나타나기를 바랍니다. 두 번째 카메라를 만들고 그 카메라의 디스플레이를 특정 상자에 표시해야하는 것처럼 보입니다. 나는 또한 거울 같은 것이 작동 할 것이라고 생각하고있다.OpenGL의 지형 미니 맵?

내가 취할 수있는 접근법을 찾고 있는데, 현재 내가 가지고있는 것과 동일한 견해를 제공 할 것입니다. 꼭대기에 오르십시오 ... 가능합니까? 부담없이 질문하십시오 ... 감사합니다!

답변

4

이 작업을 수행하는 한 가지 방법은 렌더링 버퍼가 첨부 된 FBO (프레임 버퍼 객체)를 만들고 미니 맵을 렌더링 한 다음 텍스처에 FBO를 바인딩하는 것입니다. 그런 다음 텍스처를 원하는대로 매핑 할 수 있습니다. 일반적으로 쿼드입니다. 모든 종류의 HUD 객체에 대해이 작업을 수행 할 수 있습니다. 이것은 또한 HUD/메뉴 객체의 내용을 기본보기처럼 자주 다시 그리지 않아도된다는 것을 의미합니다. 필요한만큼만 연관된 버퍼를 갱신하십시오. 이 경우 FBO에 렌더링 할 객체/장면을 (다각형 수 감각으로) 다운 샘플링하기를 원할 것입니다. 당신이로 확인하고 싶은거야 API의 기능은 다음과 같습니다

  • glGenFramebuffersEXT
  • glBindFramebufferEXT
  • glGenRenderbuffersEXT
  • glBindRenderbufferEXT
  • glRenderbufferStorageEXT
  • glFrambufferRenderbufferEXT
  • glFrambufferTexture2DEXT
  • glGen erateMipmapEXT

gamedev.net에 FBO 사용에 대한 글이 있습니다. 또 다른 잠재적 인 최적화는 미니 맵의 내용이 정적 인 경우 카메라를이 정적 뷰 (실제로는 맵) 위로 이동하는 것입니다. 지도에 실제로 표시하려는 것보다 훨씬 큰지도 부분을 렌더링하고 매핑 된 객체의 텍스처 좌표를 조정하여 카메라를 가짜로 만들 수 있습니다. 이것은 미니 맵이 정사영 투영에있는 경우에만 작동합니다.

+0

여러 개의 뷰포트를 사용할 수도 있습니까? 폴리곤을 프레임 버퍼에 렌더링 할 수 있습니까? 분명히 나는 ​​그래픽 프로그래밍 하하에 꽤 멍청하다. – Polaris878

+1

예, 프런트 버퍼와 교환하기 전에 백 버퍼에 렌더링하는 것과 동일하게 윈도우 프레임 버퍼에서 일반적으로 그리는 것과 완전히 똑같은 방법으로 FBO에 그릴 수 있습니다. 각 FBO에서 다른 gluPerspective/gluLookAt를 사용할 수 있습니다. 이점은 현재 프레임에서 필요하지 않으면 FBO에서 다시 그릴 필요가 없으며 FBO는 모든 차원 일 수 있으며 사용하지 않아도 텍스처에 사용될 때 매우 빠릅니다. glCopyTexImage. glBindFramebufferEXT (0은 이전에 사용했던 윈도우의 프레임 버퍼를 바인드 함)로 많은 FBO를 생성하고 전환 할 수 있습니다. – charstar

1

글쎄, 나는 당신의 특정 질문에 대한 답변을 가지고 있지 않지만 게임에서 세계를 위에서 직각으로 바라 보면서 이미지를 렌더링하고 미니 맵에 사용하는 것은 일반적입니다. 적어도 실시간으로 렌더링하는 것보다 성능 집약적 일 수 있습니다.