Size: a a a

pro.graphon (and gamedev)

2020 May 18

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
Alexey Gordiychuk
Привет! Сказали тут мне могут помочь. Пытаюсь CG шейдером в Юнити смешать две картинки. Никак не получается убрать артефакты сверху. Вот такой код:
return fixed4(
lerp (tA.rgb, tB.rgb, tB.a),
clamp(tA.a + tB.a,0.0f,1.0f));
мой перый вопрос тут у вас)
источник

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
Мне не потребовалось изменять как-то картинки
источник

VK

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

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
они на белом фоне, да, пример не ясный
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Так-то твой шейдер делает абсолютно то же самое, что и обычный альфа-блендинг, только у тебя в шейдере лерп между двумя текстурами, а альфа-блендинг лерпает между тем, что во фреймбуфере, и тем, что ты вернул, но альфа-блендинг (src factor SRC_ALPHA, dest factor ONE_MINUS_SRC_ALPHA) без premultiplied alpha это тот же лерп
источник

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Так-то твой шейдер делает абсолютно то же самое, что и обычный альфа-блендинг, только у тебя в шейдере лерп между двумя текстурами, а альфа-блендинг лерпает между тем, что во фреймбуфере, и тем, что ты вернул, но альфа-блендинг (src factor SRC_ALPHA, dest factor ONE_MINUS_SRC_ALPHA) без premultiplied alpha это тот же лерп
Возможно, не силён в теме, смутно понимаю о чём именно говоришь) Скажи плз, Я могу как-то доработать имеющийся шейдер?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Alexey Gordiychuk
Возможно, не силён в теме, смутно понимаю о чём именно говоришь) Скажи плз, Я могу как-то доработать имеющийся шейдер?
Это будет очень неоптимальный подход
источник

VK

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

VK

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

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
в текущем решении нужно смешать прозрачную картинку с полностью непрозрачной
источник

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
простой бленд как ты говоришь
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Alexey Gordiychuk
в текущем решении нужно смешать прозрачную картинку с полностью непрозрачной
По краям у тебя не полностью прозрачная
источник

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
да
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
По краям у тебя полупрозрачный серо/сине/жёлто-розовый
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
источник

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
Я могу розовый сделать любым другим цветом
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Alexey Gordiychuk
Я могу розовый сделать любым другим цветом
Сделай чёрным
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
И поменяй Blend SrcAlpha OneMinusSrcAlpha на Blend One OneMinusSrcAlpha
источник

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Сделай чёрным
смотри-ка, почти хорошо, Только там где белый нужен не белый)https://monosnap.com/file/tIyLylGuLS5RZHNaATYefthNIOTlwh
источник

AG

Alexey Gordiychuk in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
И поменяй Blend SrcAlpha OneMinusSrcAlpha на Blend One OneMinusSrcAlpha
SrcAlpha OneMinusSrcAlpha нету же
источник