g-cont
Расскажи потом, стоило ли оно того. :)
g-cont
> я не фпс тестировал, а визуальные отличия нормалки
Кстати, нужно же Compressonator юзать. На примере демки от ATI получается быстрее даже с учётом sqrt в шейдере
>а зачем вызывать дот для скаляра?
Да, нужно так sqrt( 1.0 - dot(bump.xy, bump.xy) )
Чем всё закончилось ?
Моласар
расскажу конечно. Но попозже, щас другими вещами занят.
>>Кстати, нужно же Compressonator юзать. На примере демки от ATI получается быстрее даже с учётом sqrt в шейдере
Всмысле быстрее чем фетчинг несжатой? Я охотно поверю, что разница минимальная и в пределах погрешности. Т.е. если там и есть небольшой прирост, на него не стоит даже обращать внимание. Главная выгода - экономия видеопамяти и скорость загрузки, всё.
>>Да, нужно так sqrt( 1.0 - dot(bump.xy, bump.xy) )
Ага. Вот здесь у меня вопрос. Будет ли dot( bump.xy, bump.xy ) быстрее чем bump.x*bump.x+bump.y*bump.y? Просто GLSL же не даёт посмотреть asm, остается только гадать.
g-cont
> Главная выгода - экономия видеопамяти и скорость загрузки, всё.
Нет, главная выхода - кол-во передаваемых данных по шине AGP. :)
Именно ради этого и придумали сжатие текстур, а кол-во видеопамяти всегда было избыточным. На моей риветнт2 стояло 32 мб, хотя игры в то время ориентировались на 4-8.
> Будет ли dot( bump.xy, bump.xy ) быстрее чем bump.x*bump.x+bump.y*bump.y
Зависит от компилятора, но я бы юзал первый вариант, где компилятор чётко видит dot-инструкцию.
>>я бы юзал первый вариант, где компилятор чётко видит dot-инструкцию.
Так в том-то и вопрос :)
g-cont
Исходи из того, что не видит - не ошибёшься.
g-cont
> Я охотно поверю, что разница минимальная и в пределах погрешности.
Не помню цифры - но 10 % было
Моласар
> > Будет ли dot( bump.xy, bump.xy ) быстрее чем bump.x*bump.x+bump.y*bump.y
> Зависит от компилятора, но я бы юзал первый вариант, где компилятор чётко видит
> dot-инструкцию.
Поддерживаю
g-cont
> Ага. Вот здесь у меня вопрос
Кстати, можно проверить что даёт 1.0 - dot(bump.xy, bump.xy) - и если < 0 вывести красным
Ну чтож, лучше поздно чем никогда. Прикрутил поддержку ATI2N через RGTC2. 3dc уже не поддерживается. Я-то надеялся что весь профит будет в декомпресии нормалей на уровне драйвера, а по факту так же пришлсоь в шейдере декодировать. Несмешно. Единственный плюс - они во вьювере сразу "синие", а не "зелёные".
Бардак.
g-cont
> Несмешно
ты с художниками работал ? :)
innuendo
Поясни мысль. Работал в каком смысле? Ставил им задачи\выслушивал их жалобы\сидел в одном помещении?
g-cont
художники видят артефакты при dxt5
Артефакты на самой текстуре рассмотреть практически нереально. Можно сравнивать через диффузию ошибки, но это не даёт представления о том, насколько нормали испохабятся в игре. Поэтому я всегда рассматривал артефакты именно в реальных условиях, отключив альбедо. Из всех способов кодирования нормалей мне больше всего понравилась параболическая проекция, насколько знаю её и Крайтек тоже жалует.
Тема в архиве.