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

sRGB - для чего? (2 стр)

Страницы: 1 2 3 412 Следующая »
#15
9:50, 28 ноя. 2017

Короче, я запутался что к чему, зачем, почему.

Что конкретно дает эта вещь?
как правильно оно делается?
какой вообще должен быть результат?

да, лучше внятную практическую статью. Теория, теорией, но я просто не понимаю зачем вообще все это надо (а теория в таком случае никак не воспринимается)

0xc0de
> Для корректного блендинга и расчета освещения.
а без нее как будто будет некорректный (в смысле визуального вида)... но ведь много игр без sRGB - картинка от этого худе не становится


#16
9:54, 28 ноя. 2017

war_zes
> Теория, теорией, но я просто не понимаю зачем вообще все это надо
Я же накатал телегу объяснений почему sRGB и зачем нужна возня с переводом.

#17
10:04, 28 ноя. 2017

war_zes
> а без нее как будто будет некорректный (в смысле визуального вида)

Да. Возьми, к примеру, аддитивный блендинг. Вот так будет без возни с переводом:
result_srgb = tex1_srgb + tex2_srgb;

А вот так будет правильно:
result_srgb = pow( pow( tex1_srgb, 2.2 ) + pow( tex2_srgb, 2.2 ), 1.0 / 2.2 );

PS:
Из расчета с аппроксимацией гамма 2.2. На самом деле формула чуть сложнее, но суть не меняется.

#18
10:25, 28 ноя. 2017

war_zes
> ярко. я не такой цвет задумывал. и появляется мыло так как больше цветов
> сливаются в белый
это называется обыкновенной ерундой. если текстуры при единичном освещении выглядят ярче или темнее, чем они в ресурсах, это 100% значит ошибка в коде, такие ошибки совершенно типичные при неполном переводе кода в srgb.

чтобы рендеринг был srgb-корректным, текстуры при чтении нужно переводить в линейное пространство, а при записи — обратно в srgb. в результате этого рендеринг без блендинга и освещения должен выглядеть точно так же, как он выглядит вообще без srgb. а вот при добавлении блендинга и освещения srgb будет выглядеть более корректно.
собственно, сравнение srgb-корректного блендинга(слева) и некорректного линейного (справа):
Изображение
гораздо менее очевидный пример в 3d. менее очевидный — потому что влияют много факторов вроде ambient освещения и использованных материалов. если рендер изначально был некорректным, то без srgb он может выглядеть лучше, чем c srgb, просто потому что ресурсы уже заточены по неправильную модель. но сравнение обычно приводят примерно такое:
Изображение

но вообще с таким подходом в духе "вот все, дурачьё, какой-то ерундой занимаются. я не понимаю, зачем мне это нужно, и живу хорошо. попробовал это ваше srgb включить и стало только хуже." ты, конечно, далеко пойдёшь. так держать.

#19
10:36, 28 ноя. 2017

MrShoor
Suslik
Отлично объяснили, наконец-то я разобрался с sRGB - а то до этого использовал, но без понимания.

#20
10:45, 28 ноя. 2017
Изображение
#21
11:00, 28 ноя. 2017

Suslik
> текстуры при чтении нужно переводить в линейное пространство, а при записи —
> обратно в srgb
что такое чтение и что такое запись в данном контексте? чтение/запись из файла, памяти, временной текстуры, рт, экрана, шейдера....?

Suslik
> но вообще с таким подходом в духе "вот все, дурачьё, какой-то ерундой
> занимаются. я не понимаю, зачем мне это нужно, и живу хорошо. попробовал это
> ваше srgb включить и стало только хуже." ты, конечно, далеко пойдёшь. так
> держать.
чтобы чем-то пользоваться, нужно понимать - зачем оно нужно... Разве нет? или предлагаешь использовать "чтоб было" и "у всех так"? С таким подходом я дальше уйду?

Вот когда я что-то не понимаю в самой ее сути, из-за чего даже теория не воспринимается, тогда и спрашиваю на форуме.

Ведь не просто так все это сделали. значит была проблема, значит нужно было решение этой проблемы. но что за проблемы?

#22
11:04, 28 ноя. 2017

Ruslan
и что показывают эти два рисунка?
gamma 1.0 лучше. она насыщенней и более четка. Тогда как 2.2 смазанная и от нее начинают болеть глаза (особенно у дальних кубов).

#23
11:06, 28 ноя. 2017

war_zes
> что такое чтение и что такое запись в данном контексте? чтение/запись из файла,
> памяти, временной текстуры, рт, экрана, шейдера....?
Чтение - это texture в шейдере. Запись - это запись в gl_FragColor в шейдере.
Вручную ничего переводить не надо. Надо лишь сказать OpenGL-ю, что вот эта конкретная текстура SRGB задав ей формат не GL_RGBA, а GL_SRGB. Тогда при чтении в шейдере OpenGL сделает все сам за тебя. Чтобы OpenGL при записи конвертировал в sRGB нужно задать в фреймбуфер GL_FRAMEBUFFER_SRGB, а так же текстура, в которую ты пишешь тоже должна быть GL_SRGB.

#24
11:20, 28 ноя. 2017

war_zes
> чтобы чем-то пользоваться, нужно понимать - зачем оно нужно... Разве нет? или
> предлагаешь использовать "чтоб было" и "у всех так"? С таким подходом я дальше
> уйду?
нет. я предлагаю подходить к подобным вопросам с позиции "прежде чем формировать мнение о теме, необходимо хотя бы поверхностно в ней разобраться.".

> и что показывают эти два рисунка?
> gamma 1.0 лучше. она насыщенней и более четка. Тогда как 2.2 смазанная и от нее
> начинают болеть глаза (особенно у дальних кубов).
вот как раз прекрасный пример, когда неправильно поставленное освещение может выглядеть более красиво(хоть и не более правильно) в линейном пространстве, чем в srgb. поэтому ещё раз повторюсь — в примеры с использованием srgb для освещения вмешивается огромное количество посторонних факторов, которые влияют на приятность картинки. примеры с блендингом — более объективные и наглядные, хотя физические принципы за ними кроются одни и те же.

> но что за проблемы?
ты вообще читаешь, что тебе пишут? кучу раз уже объяснили, ты продолжаешь по кругу задавать одни и те же вопросы, игнорируя ответы.

#25
11:24, 28 ноя. 2017

https://www.slideshare.net/ozlael/hable-john-uncharted2-hdr-lighting

#26
11:41, 28 ноя. 2017

Suslik
> ты вообще читаешь, что тебе пишут? кучу раз уже объяснили, ты продолжаешь по
> кругу задавать одни и те же вопросы, игнорируя ответы.

может сразу посылать к докам, вместо того, чтобы 100-500 расжёвывать ?

#27
12:12, 28 ноя. 2017

war_zes
> gamma 1.0 лучше. она насыщенней и более четка. Тогда как 2.2 смазанная и от нее
> начинают болеть глаза (особенно у дальних кубов).
как раз пример показывающий, что если пренебречь в рендере гамма коррекции, то к примеру в интерьере будет тьма тьмущая, в тени не будут читаться детали, а вблизи источника света будет пересвет.
Хотелось быстро в двух словах объяснить порядок работы с текстурами\цветом и как все это приготовить(мне этот момент самому долго разжевывали) но понял, что я сам уже забыл, как все работает и нужно вспоминать, а у меня сейчас нет времени(

#28
12:47, 28 ноя. 2017

Suslik
С лицом не понял, имхо на лавой фотке просто спекуляр накрутили, ну и амбиент слишком темный.

#29
12:57, 28 ноя. 2017

nes
В этом и разница sRGB и RGB. sRGB, скажем так, обязателен при наличии физически корректных техник рендеринга.

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