ПрограммированиеФорумГрафика

Аппаратная подгрузка 3DC в OpenGL (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
11:12, 7 апр 2015

g-cont
> корень из отрицательного числа

Откуда? 1 - dot(x,x) - dot(y,y) ? Ну сделай saturate

#16
12:22, 7 апр 2015

innuendo
GLSL умеет распознавать конструкцию saturate( dot( x, x ) )?
Cgc компилирует её в dp3_sat инструкции на всяких ps_3_0 и даже arbfp, а в glslf делает последовательно min и max.

#17
12:24, 7 апр 2015

Моласар
Меня больше волнует откуда там отрицательное ?

#18
15:16, 7 апр 2015

Артефакты сжатия, например.
Там больше 1 может появиться, и под корнем получится отрицательное.

#19
18:13, 7 апр 2015
1 - dot(x,x) - dot(y,y) 

а зачем вызывать дот для скаляра?

#20
20:45, 18 апр 2015

Хм, приделал поддержку DXT5NM встала другая проблема. Оказывается с точки зрения той же NVDXT DXT5 и DXT5nm ничем не отличаются в заголовке.
Иными словами нам остается только догадываться по косвенным признакам о формате текстуры. Это надо для того, что отличить нормалмапу, сохраненную просто в DXT5, от нормалмапы, сохраненной в DXT5NM. Прикол в том, что флажки о наличии альфы используются только для DXT1, а для DXT3, DXT5 альфа подразумевается
в любом случае, но при этом естественно не гарантируется, что в ней содержится какая-то информация. Единственный метод, как я понял - это распаковать несколько пикселей альфы и убедиться, что они не равны 255. Но это не слишком удобно. Может есть какие-то более простые способы?

#21
23:09, 18 апр 2015

Вообщем сделал детектирование альфы анализом содержимого альфы, видимо другого способа нет.
кстати, как я и предполагал восстановление z даёт артефакты. Пришлось ограничить в диапазоне 0.1 - 1. В этом случае результат почти идеальный и сжатая нормалмапа даже немного "сочнее" несжатой.

#22
23:39, 18 апр 2015

g-cont
> кстати, как я и предполагал восстановление z даёт артефакты
Поэтому и нефиг нормалмапы сжимать..

#23
14:41, 19 апр 2015

Там между прочим советуют использовать стереографическую проекцию с учётом нормали поверхности, для более точного восстановления, так сказать.
Потом попробую, наверное будет лучше.

#24
14:51, 19 апр 2015

Моласар
> > кстати, как я и предполагал восстановление z даёт артефакты
> Поэтому и нефиг нормалмапы сжимать..

Да, а с сжатой можно поюзать текстуры большого размера. Чего там ATI  рекламировала на X800 ?

#25
18:06, 19 апр 2015

innuendo
Сжатые нормалмапы - это не только артефакты. Это ещё усложнение пиксельного шейдера и невозможность хранить какой-нибудь ништячок в альфа-канале (например, спекуляр).
И таки да, внутренние затраты на декодирование DXT.
Не превысит ли это всё в совокупности профит от уменьшения кол-ва данных по шине? Тем более что чтение нормалмапы обычно кэш-френдли, это ж не g-buffer какой-нибудь.

#26
18:13, 19 апр 2015

Моласар

В Крайзисе они использовались

#27
18:17, 19 апр 2015

innuendo
И как они это обосновали?

#28
18:20, 19 апр 2015

Моласар

Качество картинки улучшилось :) NormalMap/DetailNormalMap

>Это ещё усложнение пиксельного шейдера

Да уже давно sqrt и пара dot не проблема в PS

#29
18:42, 19 апр 2015

innuendo
> Качество картинки улучшилось
От сжатия?
> Да уже давно sqrt и пара dot не проблема в PS
С ними он работает быстрее, чем без них?
Бесплатный sqrt только в мышеловке.

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.