народ нужно помощь в поиски шейдера или создании, а так же его внедрении…
думаю нужен шейдер который отрисовывая спрайт на сурфейс сравнит пиксили в области пересечения и отрисует тот что светлее.
пробовал решить заменой белой прозрачности на чёрную и подбором blend мода, но не вышло…
так как возникают дыры или цвет не соответствует обычной отрисовке.
- 13 октября 2019, 20:30
- 00
На GLSL пойдет?
думаю да вопрос какая версия )
3.3 пойдет?
уже давно выслал бы и проверил)
(смысли скорее всего да просто нужно знать версию так как видимо есть какие-то сильные различия между актуальной и старой версией)
Вот как-то так. Код не тестировал.
uv - координаты текстуры
tex1 - первая текстура
tex2 - вторая текстура
luma - функция вычисления яркости
(пожалуй виноват... так как я его подключать замучаюсь -_- а с блендами всё ясно Ы!)
не... поспешил я...
что то я не понимю нифига... болезненно использование шейдеров этих -_-
кроче не выходит у меня его в писать -_-
uniform sampler2D - это текстура, вход
fragColor - цвет пикселя, выход
угу... получаю ошибку wrong shaider -_-
Не, ну ты прочитай документацию в своём движке, как правильно делать входы с выходами, это везде по-разному, хоть и названо GLSL
да оно понятно... вот тока у меня ситуация: смотрю в книгу, вижу фигу х)
типо вроде все правильно но, на самом деле совершенно нет)
Сделай сначала обычный шейдер, который, например, обнуляет синий и зеленый канал, а красный оставляет как есть. Подключи, отрисуй картинку и убедись что работает.
Затем напиши шейдер, к-й работает с сурфейсом, который на месте пересечения спрайта с сурфейсом рисует красные пиксели (255;0;0;255). Затем, когда заработает - меняй этот шейдер так, чтобы делал то что тебе надо.
А вообще, по моему опыту - не знаешь как это делается и не удается быстро найти тривиальное решение - забей и не делай. Слишком много времени потеряешь. Делай то, что ты уже умеешь и знаешь как делать.
Учиться новым фокусам лучше между конкурсами, на прототипах.
ну... я по сути так и делаю... к сожалению жалко времени на очередное изучение данного вопроса х)
Вот так вроде должно сработать.