добавил gluBuild2DMipmaps - генерирует текстуры всех уровней детализации
и не требует, чтобы размер изображения был кратен степени двойки.
и выбор алгоритма для уменьшения(увеличения) текстуры:
GL_NEAREST_MIPMAP_NEAREST,
GL_LINEAR_MIPMAP_NEAREST,
GL_NEAREST_MIPMAP_LINEAR,
GL_LINEAR_MIPMAP_LINEAR
для gluBuild2DMipmaps
http://www.hiasm.com/forum_serv.php?q=56&id=976
+ анизотропная фильтрация
Этот топик читают: Гость
Ответов: 373
Рейтинг: 108
|
|||
карма: 0 |
| ||
Голосовали: | sla8a, MAV |
Ответов: 4641
Рейтинг: 334
|
|||
Обычно к компонентам примеры прикладывают!
|
|||
карма: 1 |
|
Ответов: 373
Рейтинг: 108
|
|||
Если в примере к Opengl StarWar.sha заменить GL_Texture под текстурой сферы на этот code_16552.txt то исчезнет мерцание текстуры.
GL_LINEAR_MIPMAP_LINEAR - трилинейная фильтрация.
GL_LINEAR_MIPMAP_NEAREST - билинейная фильтрация. |
|||
карма: 0 |
| ||
файлы: 1 | code_16552.txt [114B] [276] |
Ответов: 1304
Рейтинг: 405
|
|||
Vlad.-, элемент получился не намного лучше моего, что в своё время я предлагал на замену стандартного GL_Texture . Но раз есть желающие получить максимум от OpenGL то можно повторить попытку . Поэкспериментировав над различными примерами удалось поднять анизотропную фильтрацию, как определюсь со всеми проблемами запихну в компонент(ы). Заранее могу сказать не решённая проблема с высокой загрузкой проца решена. Далее скрин ; справа трилинейная фильтр. - слева анизотропная фильтр. Х16.
|
|||
карма: 3 |
| ||
файлы: 1 | gl_texture.png [36.4KB] [720] |
Ответов: 373
Рейтинг: 108
|
|||
Добавил анизотропную фильтрацию.
|
|||
карма: 0 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Vlad.-, быстро управился, и притом работает .
Думаю что анизотропную фильтрацию надо будет повесить на GL_Main, как глобальную функцию для всего проекта, так же как и проверку максимального уровня AF. Есть пример на котором хорошо видно действие фильтра, правда чтобы работали кнопки выбора для GL_TextureEX необходимо AF прировнять 0. |
|||
карма: 3 |
| ||
файлы: 1 | gl_texture_af.rar [3.4KB] [257] |
Ответов: 373
Рейтинг: 108
|
|||
MAV писал(а): Думаю что анизотропную фильтрацию надо будет повесить на GL_Mainтам ей и место. В GL_Texture оставил управление фильтрацией для uselist=true. url---удалил---url |
|||
карма: 0 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Vlad.-, ну ты и накалбасил
Еле разобрался кого к чему включать , ну думаю что организовать нужные функции в нужном месте(элементе) разрешимая задача. Что мне абсолютно непонятно почему комбинация gluBuild2DMipmaps + дисплейный список = процессор в ауте . Практические цифры для слегка разогнаного AMD 3800+(4600), glTexImage2D + дисплейный список - загрузка процессора 4%, gluBuild2DMipmaps + дисплейный список - загрузка процессора 27%, это при одной загруженной текстуре 1024х1024. MAV писал(а): Заранее могу сказать не решённая проблема с высокой загрузкой проца решена.Увы решение применить текстурные списки заместо дисплейных позволяет загрузить одновременно не более 25 текстур . Может есть мысли по этому поводу ps: Если не найду другого решения на ARB или EXT завтра выложу компонент. |
|||
карма: 3 |
|
Ответов: 373
Рейтинг: 108
|
|||
для управления опциями текстур можно компонент как GL_Options сделать или расширить его
url---удалил---url |
|||
карма: 0 |
|
Ответов: 373
Рейтинг: 108
|
|||
MAV писал(а): решения на ARB или EXTПолучается ------------ Дoбавленo в 18.24: управление параметрами текстур вынес в отдельный компонент, модифицировал GL_CallList,GL_Main,GL_Texture. Совместимость вроде на пострадала. http://hiasm.com/forum_serv.php?q=56&id=988 GL_TEXTURE_WRAP_S и GL_TEXTURE_WRAP_T пока не работают т.к. надо модифицировать GL_Options. |
|||
карма: 0 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Vlad.-, полез в расширения и незаметно переключился с AF на AA , правда пока безуспешо .
Но вернёмся к фильтрации текстур, в в твоём новом варианте всё опять усложнено, думаю новичку в OpenGL, будет непросто разобраться в хитросплетениях включений выключений параметров. Поэтому предлагаю оставить в покое "GL_Texture" и "GL_CallList" и вынести загрузку текстур методом gluBuild2DMipmaps в одельный компонент, за основу взял свой старый компонент GL_Texture и добавил компонент загрузки текстурного списка . Проверил на XP и на семёрке, с обоими компиляторами всё вроде работает.Соответственно пример и компоненты для тестирования в архиве. http://www.hiasm.com//getfile/16652 Кроме GL_TEXTURE_WRAP в "GL_TexParameteri", можно ещё запихнуть изменение параметров glTexGeni, посмотри пример OpenGL_TexGeni.sha. Ваше мнение коллега? |
|||
карма: 3 |
| ||
файлы: 1 | bindtexture.rar [23.9KB] [472] | ||
Голосовали: | sla8a |
11