Я искал через google и нашел результаты, которые объясняют, как blending работает в direct3d 11. Поэтому я делаю это сообщение только для проверки того, полностью ли я понимаю эти понятия.Нужно уточнить с помощью «смешивания» в direct3d 11
По большей части я несколько понимаю концепцию смешивания. Мы смешиваем цвета, комбинируя два цвета и создавая окончательный цвет. Это в основном выполняется с двумя уравнениями, которые direct3d имеет на стадии слияния вывода.
FinalColor = (Source Color * Source Blend Factor) + (Destination Color * Destination Blend Factor)
и
FinalAlpha = (Source Alpha * Source Alpha Blend Factor) + (Destination Alpha * Destination Alpha Blend Factor)
цвет источники Source Color
и Source Alpha
определяются любым пиксельный шейдер выходами. А адреса Destination Color
и Destination Alpha
определяются любым цветом, указанным в Render Target (backbuffer).
Теперь у меня есть немного трудно понять сочетание факторов Source Blend Factor
, Destination Blend Factor
, Source Alpha Blend Factor
и Destination Alpha Blend factor
Так как я знаю, что эти факторы смесевые определяются D3D11_RENDER_TARGET_BLEND_DESC
, я могу использовать элемент SrcBlend
и назначить его на флаг D3D11_BLEND_SRC_COLOR
... это будет означать, что коэффициент смешивания Source Blend Factor
будет иметь цвет, который выдает пиксельный шейдер.
Как вы думаете, я понимаю концепцию смешивания? или есть что-то, что мне не хватает? (Не стесняйтесь исправить меня)
Спасибо за ваш ответ и ссылки. Но у меня есть еще один вопрос (и этот вопрос может быть глупым, но я хочу убедиться, что это понимаю), заполнив структуру 'D3D11_RENDER_TARGET_BLEND_DESC' ... Я просто описываю, как уравнение смешивания выглядит правильно? –
@Soon_to_be_code_master Правильно - при заполнении элементов структуры используйте их (в качестве члена 'D3D11_BLEND_DESC') при вызове [' CreateBlendState'] (https://msdn.microsoft.com/en-us/library /windows/desktop/ff476500(v=vs.85).aspx), вы получите объект состояния смешения, который представляет уравнение, которое вы описали на основе структуры. Когда вы применяете это состояние смешивания, используя ['OMSetBlendState'] (https://msdn.microsoft.com/en-us/library/windows/desktop/ff476462 (v = vs.85) .aspx), GPU будет использовать уравнение для смешивания при последующих обратных вызовах. – MooseBoys