2011-09-24 7 views
0

내 플랫폼은 iPhone - OpenGL ES 1.1OpenGL ES 1.1의 바운드 텍스처를 수정하는 방법

텍스처 수정 또는 그리기에 대한 자습서를 찾고 있습니다. 내가 너무 배경에 여러 번 개체를 그릴 필요 enter image description here

: (그냥 빈 파란색 - 흰색 gradiant 이미지)

와 객체 텍스처 : 나는 배경 질감이

: 예를 들어

enter image description here

사람이 패스트을 알고 않습니다 :이 같은 배경 질감으로 그리려는 성능을 최적화 이것을하는 st 방법? 감사합니다.

답변

1

배경 질감에 그려 넣은 다음 유지 하시겠습니까? 아니면 오버레이로 만들거나 무엇을할까요? 나는 그 질문에 대해 완전히 확신하지 못한다.

배경에 그려서 다시 사용하려면 다른 텍스처 또는 pbuffer/fbo를 만들고 바인딩해야합니다. 배경 이미지로 전체 화면 쿼드를 그린 다음 필요에 따라 오버레이로 추가 쿼드를 그립니다. 바운드 텍스처는 결과를 가져와 필요한대로 합성하고 텍스처로 사용하거나 파일로 복사해야합니다. 이것은 일반적으로 Render-to-Texture로 알려져 있으며 일반적으로 이미지 또는 다른 동적 이미지 효과를 결합하는 데 사용됩니다.

여기에서 성능을 최적화하려면 최종 결과가 포함 된 텍스처를 다시 사용해야합니다. 이렇게하면 렌더링 비용이 1 회 배경 + 4 회에서 1 회 배경 추첨으로 줄어들 수 있습니다.

편집 :This article에는 OpenGL ES RTT가 상당히 좋은 것으로 보입니다. this one에있는 유용한 정보는 ES에 한정되지는 않지만.

데칼을 오버레이하려면 배경 위에 그려야합니다. RTT와 같은 그리기 방법이지만 렌더링 타겟으로 텍스처를 바인딩하지 않습니다. 이것은 지속되지 않을 것이고, 그것은 백 버퍼에서만 존재할 것이지만 동일한 효과를 줄 것입니다.

이 방법을 최적화하려면 가능한 한 데칼을 일괄 처리하는 것이 좋습니다. 그들은 모두 동일한 속성과 소스 텍스처를 가지고 있다고 가정하면 매우 쉽습니다. 필요에 따라 모든 텍스처를 바인딩하고 속성을 설정하고, 모서리에 메모리 조각을 채운 다음 많은 사각형을 그립니다. 직접 모드에서 개별적으로 그릴 수도 있지만 이것은 다소 비쌉니다.

+0

예, 저는 backgound에 그려서 계속 유지하려고합니다. (앞으로 변경되지 않으므로) 벽에있는 총알 구멍과 같습니다. 나는 그것이 pBuffer o FBO를 사용하는 것을 안다. @@ –

+0

에 대한 예제 나 튜토리얼을 찾을 수 없다. – ssube