Size: a a a

pro.graphon (and gamedev)

2020 April 21

L

Lain-dono in pro.graphon (and gamedev)
У меня задача: GUI общего назначения, а не просто костыль для моей игры
источник

L

Lain-dono in pro.graphon (and gamedev)
Кроме того я должен поддерживать обычный фреймбуфер и sRGB фреймбуфер
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Lain-dono
Кроме того я должен поддерживать обычный фреймбуфер и sRGB фреймбуфер
Обычный фреймбуфер это какой?
источник

L

Lain-dono in pro.graphon (and gamedev)
Два основных варианта. Фреймбуфер это ведь тоже текстура.
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Lain-dono
Два основных варианта. Фреймбуфер это ведь тоже текстура.
Ты можешь unorm и unorm_srgb кастовать друг к другу через typeless, суть содержимого в них не поменяется
источник

L

Lain-dono in pro.graphon (and gamedev)
Если я правильно понимаю, то в OpenGL аналогично: GL_FRAMEBUFFER и GL_FRAMEBUFFER_SRGB
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Разница чисто при записи/блендинге (в случае фреймбуфера) и при чтении (в случае текстуры)
источник

L

Lain-dono in pro.graphon (and gamedev)
Мне не только надо уметь рисовать примерно одинаково по ним, но и как можно меньше терять в точности.
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
На монитор всё равно должно в итоге приходить sRGB
источник

L

Lain-dono in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Разница чисто при записи/блендинге (в случае фреймбуфера) и при чтении (в случае текстуры)
Вот мне всю эту разницу и надо понимать. При том очень хорошо.
источник

L

Lain-dono in pro.graphon (and gamedev)
А блендинга тут дофига
источник

L

Lain-dono in pro.graphon (and gamedev)
И антиалиасинг требует это дело
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
GUI надо блендить в sRGB, с учётом того, как глаза воспринимают тёмные и светлые тона, как я понимаю, вот тут жалуются https://forum.unity.com/threads/linear-vs-gamma-color-space-for-ui-font-rendering.689296/
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Точнее, цвета
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
А вот освещённости в мире надо блендить в линейном пространстве
источник

L

Lain-dono in pro.graphon (and gamedev)
Хм. Как вариант, я могу требовать от пользователя предоставить таргет в sRGB и работать только в нём. Я правильно понимаю эту мысь?
источник

L

Lain-dono in pro.graphon (and gamedev)
Это лучше будет?
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Lain-dono
Хм. Как вариант, я могу требовать от пользователя предоставить таргет в sRGB и работать только в нём. Я правильно понимаю эту мысь?
Нет. Тебе как раз наоборот, нужен здесь обычный рендер таргет
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Обычный рендер таргет это destination в sRGB смешивается с source из шейдера в sRGB
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
ну, ты сам должен из шейдера выдать значение в sRGB — из PNGшки напрямую прочитанное, например, или цвет, который пользователь в пэинте/фотошопе посмотрел и указал
источник