LINUX.ORG.RU

Фильтрация в OpenGL


0

0

Вопрос простой: если есть к примеру пиксели в текстуре.

0.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 0.0
Если это сжать до 1 пикселя, то получится 1.0/9.0 0.(1), короче его не будет видно. Этим можно как-то рулить? К примеру дорога уходящая в даль, и на черном асфальте разделительная. Я нашел в примеры как можно задать разные весовые параметры для насыщенности, но пример для SG, а они вроде как NV карточки используют.

Как вариант, можно самому нарисовать карты мип-мапинга, но хочется обойтись без мип-мапинга вообще.

> но хочется обойтись без мип-мапинга вообще.

Вообще мипмап для этого неплохо подходит(если памяти хватает). Ещё могу посоветовать просто написать пиксельный шейдер - координаты текстурки выдавай со смещениями.

theos ★★★
()
Ответ на: комментарий от Artem-Dnepr

>Пиксельный шейдер? Это CUDA?

Скажите честно, какое вы имеете отношение к компьютерной графике? :)

"Фрагментный(Пиксельный) шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксель, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения."

- загляните в википедию.

Появился с начала времён, даже на iPod Touch теперь поддерживается ;) Ни к какой КУДЕ отншения не имеет.

theos ★★★
()
Ответ на: комментарий от theos

Можно какой-то пример? (можно и на английском) Мне просто нужно вывести текстуру, но не так как хочет карточка, а как мне нужно. У меня громадное кол-во дел, помимо OpenGL, но OpenGL мне нужен чтобы графику выводить. Но он выводит ее немного не так как мне нужно и это для меня критично. Так что заранее извиняюсь за чайниковские вопросы.

Artem-Dnepr
() автор топика
Ответ на: комментарий от Artem-Dnepr

> Можно какой-то пример?
Пример... Ну PCF похож на то что вы просите (Percentage Closer Filtering используется в построении тени).
К примеру:
http://www.fabiensanglard.net/shadowmappingPCF/index.php
google "pcf shadow mapping opengl" и "opengl custom texture filtering glsl"

stpg
()

> Как вариант, можно самому нарисовать карты мип-мапинга, но хочется обойтись без мип-мапинга вообще.

Так чем mip-mapping не устраивает? Шейдеры не нужны, а следовательно будет работать везде. По производительности весьма хорош.

andreyu ★★★★★
()
Ответ на: комментарий от stpg

Я правильно понял или нет? 1. Шейперы это часть OpenGL и системно-независимая, будет работать одинакого на nvidia, ATI, интеле итд. 2. Шейпер можно объявлять просто как const char s1[] = "varying vec3 lightDir,normal; void main() \0"ж итд, потом компилировать итд. 3. Есть шейперы которые работают по пикселям, есть которые работают по вертексам.

Тогда есть дурной вопрос. 1. Можно ли сделать такой шейпер, чтобы при текстурировании, он действовал не так как сейчас действует linear или nearest а брал максимальное значение. 2. Можно ли "на лету" шейпером делать хитрые преобразования? Хочется тригонометрия - sin, cos, умножение, деление итд?

Artem-Dnepr
() автор топика
Ответ на: комментарий от andreyu

Тем что придется вручную генерить каждый уровень мип-мапинга. И все равно получится не совсем то, что мне нужно.

Не могу понять, как сделать шейпер, который бы сравнивал несколько соседних пикселей одной текступы.

Artem-Dnepr
() автор топика
Ответ на: комментарий от Artem-Dnepr
Ответ на: комментарий от Artem-Dnepr

Блин, понял уже.

Есть какие-то идеи, как мне сказать OpenGL чтлобы для GL_TEXTURE_MIN_FILTER, оно брало не ближайшее а максимальное из окрестных всех пикселей текстуры, которые должны быть оттекстурированы на это место.

Artem-Dnepr
() автор топика
Ответ на: комментарий от Artem-Dnepr

> Тем что придется вручную генерить каждый уровень мип-мапинга. И все равно получится не совсем то, что мне нужно.

Если делать мип-мэпы руками, то получится именно то, что вам (или вашему дизайнеру) нужно.

andreyu ★★★★★
()
Ответ на: комментарий от Artem-Dnepr

> Есть шейперы которые работают по пикселям, есть которые работают по вертексам.

Вы о каких шейперах? Админское прошлое дает о себе знать? ;)

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Уже сделал. НЕ получается. Блин. Если пиксель один, но длинный, и узкий, то в мипмапах он есть, а на жкране нет. (%*()^@$#*(%^*(@^%*#@^$%*(#@^$%

Artem-Dnepr
() автор топика
Ответ на: комментарий от Artem-Dnepr

> Гоню. Все работает. Тьфу-тьфу-тьфу.

Вот теперь верю ;)

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.