Size: a a a

pro.graphon (and gamedev)

2021 April 16

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
А блендить как будешь?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Красный с зелёным через цвет детской неожиданности? :)
источник

d

disba1ancer in pro.graphon (and gamedev)
я буду работать с текстурой 11 11 10, а потом в конце её на экран выводить с коррекцией постпроцессом
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
А, с флоатами sRGB и не надо, у них же распределение и так ведёт себя примерно, как sRGB
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Для тёмных куча точности, при приближении к 0 падает экспонента, а для мантиссы остаётся столько же бит
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
11.11.10 sRGB формата и не бывает
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
8.8.8 только на запись
источник

d

disba1ancer in pro.graphon (and gamedev)
Не совсем, там довольно заметное отличие если график построить, но хз как на глаз, это раз, а во-вторых хз как загнать это в обычный rgba8 экранный по хитрому, потому делаю постпроцессом честную гамма-коррекцию
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Тонмаппинг, кстати, даёт результат уже в гамме, а не линейный
источник

d

disba1ancer in pro.graphon (and gamedev)
Это как?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Гамма-коррекция с флоатом для промежуточных результатов не нужна, она нужна, чтобы в 8 бит впихнуть на глаз тёмные цвета
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Чтобы у unorm было перцептуально,а не линейно однородное распределение значений
источник

d

disba1ancer in pro.graphon (and gamedev)
Ну это понятно мне надо чтобы на экране это было нормально выведено
источник

DP

Defragmented Panda in pro.graphon (and gamedev)
// asin pow2.71 80
// sin log 200
// mod smoothstep 300
// sign sqrt fract mix step 400
// inversesqrt * / pow2 floor ceil min max clamp degrees radians 600
// abs 800

float w=0.0;
for(int i=0;i<LIMIT;i++){
 w=OPERATION(w-0.001);
}


Сколько раз операцию можно повторить в пиксельном шейдере, при рендере 512*512, чтобы fps=30 на мобилке, mali 400

Оказывается компилятор для glsl весьма умен и умеет делать оптимизации где можно, например pow(x,2.0)

И оказывается что все функции весьма быстрые. Нет ничего что отличалось бы по скорости более чем в 10 раз, что радует.

Некоторые вещи неочевидно что отличаются по скорости типа sin VS asin, sqrt VS inversesqrt
источник

d

disba1ancer in pro.graphon (and gamedev)
Если просто блитить флоаты на экран получится не верно
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Кривая там мапит из яркости света в значения, которые приятны глазу
источник

d

disba1ancer in pro.graphon (and gamedev)
"приятны глазу" звучит как вкусовщина
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Компилятор в каждом драйвере свой == не можешь полагаться ни на какие подобные оптимизации
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Filmic всякие это и есть вкусовщина, и настраиваются параметры художниками
источник

DP

Defragmented Panda in pro.graphon (and gamedev)
ну, да

но как rule of thumb пойдет
источник