glbindtexture 예제

이것은 내가 생각해 올 수있는 가장 간단한 예입니다. 나는 arcsynthesis 자습서에서 내 예를 구축. 샘플러 코드를 남겼어야하지만 그렇지 않았습니다. 이제 우리는 우리의 그늘기의 RGB 출력을 포함하는 텍스처를 만들 필요가있다. 이 코드는 매우 고전적인 : 이미지를로드하는 방법을 보자. 헤더가 다르게 구성된다는 점을 제외하면 BMP 코드와 매우 유사합니다: glBindTexture로 텍스처를 바인딩하면 다른 텍스처가 동일한 대상에 바인딩될 때까지 활성 상태로 유지되거나 glDeleteTextures를 사용하여 바인딩된 텍스처를 삭제합니다. 함수. 명명된 텍스처를 만든 후에는 필요에 따라 동일한 차원을 가지는 텍스처 대상에 바인딩할 수 있습니다. texUnit은 활성 텍스처의 숫자입니다. 우리는 우리의 샘플러의 균일을 설정할 때uniformUnit에 균일, 그것은 우리가 균일 한 샘플r2D texSampler을 사용하는 것을 말하고있다; 활성 텍스 텍스Unit에 있습니다. 우리는 화면을 채우는 간단한 쿼드를 그릴 것입니다. 우리는 일반적인 버퍼, 샤더, 아이디, …

DXT 압축은 OpenGL에 비해 V 텍스처 좌표가 반비례하는 DirectX 세계에서 제공됩니다. 따라서 압축 된 텍스처를 사용하는 경우 올바른 텍셀을 가져 오기 위해 (coord.u, 1.0-coord.v)를 사용해야합니다. 내보내기 스크립트, 로더, 그늘진 자 등 언제든지 이 작업을 수행할 수 있습니다. (“24″는 비트의 정밀도입니다. 필요에 따라 16, 24 및 32 중에서 선택할 수 있습니다. 일반적으로 24는 괜찮습니다) 드라이버가 Hi-Z와 같은 일부 최적화를 사용할 수 없기 때문에 다소 느려야합니다. glTexImage2D에서 GL_RGB는 3 구성 요소 색상에 대해 이야기하고 있음을 나타내며 GL_BGR은 RAM에서 정확히 어떻게 표현되는지 나타냅니다. 사실, BMP는 Red->Green->Blue를 저장하지 않지만 Blue->Green->Red를 저장하지 않으므로 OpenGL에 알려야 합니다.

깊이 버퍼도 필요합니다. 이것은 실제로 텍스처에 그릴 필요가 있는 것에 따라 선택 사항입니다. 하지만 수잔을 렌더링할 예정이기 때문에 심도 테스트가 필요합니다. 위의 UV 좌표는 다음 모델에 해당합니다 : >여기 프로그램, minimum_texture2d.cpp입니다. 두 개의 삼각형으로 구성된 사각형을 만들고 사각형에 텍스처를 넣습니다. 텍스처는 파란색과 빨간색 격자입니다. 이 것으로 충분해야 시작하지만 제공된 소스 코드도 이를 구현합니다. 이 코드는 텍스처를 샘플링하기만 하지만 시간에 따라 달라지는 작은 오프셋을 추가합니다. 이를 개선하기 위해 할 수 있는 몇 가지 방법이 있습니다. GL_TEXTURE0과 텍스Unit 인덱스로 표시되는 glActive Texture를 설정합니다. 액티브텍스처 위치로 써서 사용할 텍스처를 바인딩합니다. 그런 다음 생성된 샘플러를 동일한 위치에 바인딩합니다.

따라서 texUnit의 샘플러는 제공된 샘플러와 함께 바운드 텍스처를 사용합니다. 다음 단계는 샘플러를 설정하는 것입니다. 샘플러를 생성하는 것은 필요하지 않습니다, 그것은 우리가 샘플러에 대한 구성을 저장할 수 있습니다. 즉, 조각 샤이더에서 텍스처()는 (U,V) 좌표에 있는 텍셀을 가져와 행복하게 계속됩니다. 먼저 몇 가지 데이터가 필요합니다. 이러한 변수는 파일을 읽을 때 설정됩니다. DXT1, DXT3 및 DXT5 : 여기서 우리는 3 가지 형식을 다룰 것입니다. “fourCC” 플래그를 OpenGL이 이해하는 값으로 변환해야 합니다. 선형 및 이방성 필터링모두에 문제가 있습니다.

멀리서 질감을 볼 경우 4개의 텍셀만 혼합하는 것만으로는 충분하지 않습니다. 실제로 3D 모델이 화면에 조각이 1개만 걸리는 것보다 멀리 떨어져 있는 경우 이미지의 모든 텍셀을 평균화하여 최종 색상을 생성해야 합니다. 이것은 분명히 성능상의 이유로 수행되지 않습니다. 대신, 우리는 MipMaps소개 : :* * 두 가지 의 힘 텍스처를 사용하는 또 다른 매우 중요한 포인트 !** 이 시점에서, 당신은 아마 TGA 대신 JPEG 파일을로드하는 방법을 궁금해.

This entry was posted in Uncategorized. Bookmark the permalink. Comments are closed, but you can leave a trackback: Trackback URL.
  • Get a Quote
  • Request a Call Back

    Enter your details and we will call you back!
  • We deliver…

    • Fully A-Rated Inhouse
    • Special Q-Lon Sealing Gaskets
    • Heat Retaining Glass
    • Most Competitive Prices
    • 10 Day delivery
    • Expert Fitting
    • Same Day Aftercare
    • Largest Range of Colours
    • Best Technical Advice
    • No Deposit