2013-06-05 5 views
0

iOS 및 GL ES1을 사용하여 텍스처를 전체 화면으로 렌더링하려고합니다. 나는 이미 FBO를 첨부 된 텍스처와 함께 사용하여이 작업을 수행했습니다.OpenGL ES가 POT가 아닌 텍스처로 렌더링됩니다.

그러나 내 접근 방식이 올바른지 확실하지 않습니다. iPhone 화면은 2의 거대한 힘이 아니므로 가장 가까운 POT 값에 glViewport를 설정하여 쿼드로 매핑해야합니다 같은 크기의 화면으로 이 작동하지만 이미지가 약간 흐리게 보입니다.

FBO에 첨부 된 텍스처의 일부분 만 그려서 쿼드 UV 좌표를 적절하게 매핑 할 수 있습니까?

대안이 아닌 냄비 텍스처를 사용하는 것이지만 나는 그것을 피하고 싶습니다.

+0

단순히 NPOT 텍스처로 렌더링하지 않는 이유는 무엇입니까? 가장 오래된 iOS 기기 (원래 iPhone, iPhone 3G) [NPOT 텍스처 지원] (http://stackoverflow.com/questions/4760174/rendering-to-non-power-of-two-texture-on-iphone/4761453) # 4761453). 이러한 오래된 장치는 현재 사용중인 장치의 비율을 무시할 정도로 작아서 무시해도 안전합니다. –

+0

네 말이 맞지만 안드로이드 포트도 계획 중이 야. 모든 안드로이드 장치가 NPOT 지원을 제공하는지 잘 모르겠다. 나는 또한 Npot 텍스처가 일반적으로 냄비보다 약간 느리다는 것을 들었다. –

답변

2

한가지를 제외하고는 귀하의 접근 방식이 좋다고 말할 수 있습니다. "가장 가까운 POT 값을 텍스처 크기와 일치 시키려면"이라고 쓰고 가장 가까운 것을 사용하지 말고 가장 가까운 것을 더 큼으로 사용하십시오. 크기를 줄이면 결과가 약간 흐려집니다.

그런 다음 화면 자체보다 큰 POT 텍스처를 만들고 프레임 버퍼에 연결 한 다음 화면과 동일한 매개 변수로 뷰 포트를 사용하고 다시 텍스처를 사용하여 대신 screen.width/texture.width과 같은 텍스처 좌표를 사용해야 할 경우 . 이것은 좋은 1 : 1 샘플링을 제공해야하며 결과는 가능한 한 명확해야합니다.

+0

답변 해 주셔서 감사합니다. 네, 미안 해요, "가장 가까운 냄비 짜임새"로 말했듯이, 나는 당신이 말했듯이 "가장 가까운 가장 가까운 냄비"를 의미했습니다. :). 텍스처의 나머지 부분이 흰색으로 OpenGL에 의해 자동으로 채워지는 것처럼 보입니다. –

+0

버퍼를 전혀 지우지 않으면 쓰레기 나 선명한 색으로 채워야합니다 (필요하지도 않습니다) –

관련 문제