2011-12-03 2 views
0

간단한 작업 : 텍스처가있는 전체 화면 쿼드를 그릴 수 있으므로 더 많은 텍스처가 전체 화면 공간을 채울 수 있습니다. (나중에 쉐이더 마법을 좀 더 할 것입니다.)SDL을 사용하여 OpenGL 2.0에서 질감이있는 전체 화면 쿼드를 만드는 방법은 무엇입니까?

단순한 조각 쉐이더를 사용하여 전체 화면 쿼드를 그리는 것은 쉬웠지 만, 이제는 하루 종일 질감으로 만들려고 노력하고 있습니다. 우리는 튜토리얼을 많이 읽었지만 그들 중 누구도 우리를 도왔습니다. 에 대한 내용은 주로 1x를 사용하고 OpenGL 2.0에 관한 내용은 텍스처링 또는 SDL에 관한 내용이 아닙니다. :(

코드는 모든 것이 colorLUT.c입니다. here, 그리고 조각 쉐이더는 colorLUT.fs입니다. 결과는 이미지와 같은 크기의 창입니다, 당신은 쉐이더의 마지막 줄을 주석, 당신은 그린/레드 좋은 얻을 프래그먼트 쉐이더 작품,하지만 당신은 텍스처를 참조 (검은 화면을 얻을 수없는 경우 그라데이션, 쉐이더 잘 그래서.

답변

3
  1. 텍스처 초기화에서 OpenGL 1.4에 비해 변경되지 않았습니다. 자습서가 잘 작동합니다.
  2. ), 텍스처 로딩이 깨 졌거나 텍스처가 올바르게 설정되지 않았습니다. 셰이더를 사용하지 않도록 설정하고 고정 함수 기능으로 텍스처가있는 폴리곤을 표시해보십시오.
  3. 초기화 텍스처를 시도하기 전에 glPixelStorei(GL_UNPACK_ALIGNMENT, 1)에 전화 할 수도 있습니다. 기본값은 4입니다.
  4. 텍스처를 화면에 정렬하는 더 쉬운 방법은 gl_FragCoord를 사용하여 정점 쉐이더를 추가하고 텍스처 좌표를 전달하는 것입니다.
  5. 표면 크기를 "해상도"균일하게 전달하고 있습니다. 이는 오류입니다. 대신 뷰포트 크기를 전달해야합니다.
  6. 밉맵을 생성 할 수 있습니다. 직접 생성하거나 OpenGL 2에서 사용할 수 있으므로 GL_GENERATE_MIPMAPS를 사용하십시오 (이후 버전에서는 더 이상 사용되지 않습니다).
  7. OpenGL.org는 OpenGL 2.0 및 GLSL 1.5에 대한 사양을 제공합니다. 의심되는 경우 참조 파일로 다운로드하여 사용하십시오.
  8. NVIdia OpenGL SDK에는 쉐이더를 다루고있는 예제가 있습니다.
  9. 그리고 셰이더를 특별히 다루는 "OpenGL Orange book"(OpenGL 쉐이딩 언어)이 있습니다.
  10. 다음 번에 질문 할 코드를 포함하십시오.
+0

'glGenerateMipmap (GL_TEXTURE_2D); – Pitel

관련 문제