Работа с OpenGL разширения с помощта на NVIDIA OpenGL SDK 5
Преди да започнете да използвате разширението EXT_texture_compression_s3tc, трябва да го инициализирате. Но ако искате да инициализирате това разширение с glh_init_extensions ("GL_EXT_texture_compression_s3tc"), тогава ще ви очаква неприятна изненада - ще продължите да получавате съобщение, че това разширение не е намерено. Струва ми се, че това се дължи на грешка в заглавния файл glext.h, в която липсват следните редове:
Това кара GLH библиотеката да мисли, че текущата версия на заглавните файлове на OpenGL не поддържа това разширение.
Изходът от тази ситуация е да добавите реда "#define GL_EXT_texture_compression_s3tc 1" след директивата "#include", но преди да свържете библиотеката GLH.
След това, работа с това разширение не е много различен от ARB_texture_compression: 4 имаме нова структура формат (GL_COMPRESS_RGB_S3TC_DXT1_EXT, GL_COMPRESS_RGBA_S3TC_DXT1_EXT, GL_COMPRESS_RGBA_S3TC_DXT3_EXT, GL_COMPRESS_RGBA_S3TC_DXT5_EXT), който се използва по подобен формат GL_COMPRESSED_RGB_ARB или разширяване GL_COMPRESSED_RGBA_ARB ARB_texture_compression.
За да се демонстрира как се работи с разширението EXT_texture_compression_s3tc, е написано просто приложение (Ex03), което ви позволява циклично да променяте вида на компресията на текстурата с клавиша "n" и да наблюдавате резултата. В този случай в конзолата се показва информация за успешно/неуспешно компресиране на текстура. От гледна точка на програмист, няма нищо особено в тази програма. Единственото нещо, което може да се отбележи, е, че е била коригирана грешка в метода add () на класа glut_console: ако са направени промени в активната конзола с командата add, тя не е преначертана.
С помощта на тази програма беше проведено малко проучване на качеството на компресията на текстурата по различни методи. В този случай беше използван компютър със следната конфигурация: GeForce2MX 32MB, Windows XP 2 текстури от 3DS MAX 3 бяха избрани като примери за текстури: текстура на стената с висока разделителна способност (най-благоприятният случай) и текстура на небето с ниска резолюция (най-неблагоприятният случай). Резултатите са показани на фигури 3-8.

Фигура 3. Некомпресирана текстура

Фигура 4. Текстура на GL_COMPRESS_RGB_S3TC_DXT1_EXT формат