2011-08-30 3 views
5

저는 Ffmpeg를 사용하여 OpenGL 비디오 플레이어를 만들었으며 모든 비디오는 일반 비디오 해상도이므로 2의 제곱수가 아닙니다. 그것은 내 nvidia 카드로 좋은 fps에서 실행되지만 그들은 구형이 아닌 그래픽을 지원하지 않기 때문에 오래된 ATI 카드에서 실행되지 않습니다.두 텍스처의 출력은 얼마나 효율적입니까?

나는 엔비디아 카드에서만 이것을 사용하게 될 것이므로 ATI 문제에 대해서는별로 신경 쓰지 않지만 텍스쳐가 2의 거듭 제곱이면 얼마나 많은 성능 향상을 가져올 지 궁금합니다. ? 그것들을 채우는 것이 가치가 있니?

가치가있는 경우 가장 가까운 큰 2의 거듭 제곱으로 패딩하는 방법은 무엇입니까?

답변

3

동영상 플레이어를 작성하면 glTexSubImage2D()을 사용하여 텍스처 콘텐츠를 업데이트해야합니다. 이 함수는 임의의 크기의 이미지를 제공 할 수 있습니다. 이미지는 대상 텍스처의 어딘가에 배치됩니다. 따라서 glTexImage()이라는 호출로 텍스처를 초기화하고 데이터 포인터가 NULL이면 데이터를 채울 수 있습니다.

2 텍스처의 순수 파워 성능 이득은 사용 된 하드웨어에 따라 크게 다르지만 극단적 인 경우 최대 300 %까지 증가 할 수 있습니다.

+0

좋아요, 당신이 말하는 것처럼 이미 glTexSubImage2D()를 사용하고 있습니다 만, glTexImage2D()로 텍스처를 초기화 할 때는 2의 거듭 제로 작성한 다음 glTexCoord2f() 호출을 정렬하여 비디오 만 표시하도록해야합니다 " "효과를 극대화하기 위해 텍스처를? –

+0

그것은 주로 OpenGL 구현 (GPU 읽기)에 따라 다릅니다. 최근의 모든 GPU는 NPO2에 대한 실적이 매우 적습니다. – datenwolf

관련 문제