Углы картинки

Версия Minecraft
1.7.10
28
0
Хотел спросить можно ли кодом завернуть углы у картинки?
вот что то типо того что показано на картинке!Без имени-2.png
 
2,505
81
397
По теме. Можно использовать стенсил тест. А как-то немного пытался, но у меня ничего не вышло с ним. Видимо из-за того, что в ванильном фреймбуфере форж отключает стенсил буфер. Или я мало пытался.
А можно поколдовать с буфером глубины, нарисовать маску, а затем по ней нарисовать квадратную текстуру.
 

CumingSoon

Местный стендапер
1,634
12
269
Ему можно сделать так: включить блендинг, в текстуре оставить гладкими края и отрисовать её. Т.е., по сути, обычная прозрачность
Стенсил включается, насколько знаю, через какой-то параметр при загрузке
 
1,990
18
105
Самое простое (и, имхо, оно даёт самый красивый результат) - рисовать обычный квад через шейдер, забиндив две текстуры.
Одна - твоя картинка, другая - маска. Маску можно сделать и функциями в шейдере, если немножко умеешь в математику.
 
1,990
18
105
Насчет других ответов, чуть покритикую:
1) Стенсил тест и тест глубины оба дают результат "да\нет". В итоге "сглаженные" края картинок будут рваными, как бы ты там не изощрялся (если конечно, не рассматривать применение MSAA).
2) Менять модельку полигона сулит те же проблемы, включение всяких "hint"ов, как по мне, ужасный костыль, потому что я не уверен, что такое у всех работает, плюс оно сломается, если рисовать через шейдер.

В конце концов, маска, настраиваемая по текстуре очень легко конфигурируется.
Для любителей вектора и поэкономить данные можно использовать distance-field текстурки.
 

CumingSoon

Местный стендапер
1,634
12
269
Самое простое (и, имхо, оно даёт самый красивый результат) - рисовать обычный квад через шейдер, забиндив две текстуры.
Одна - твоя картинка, другая - маска. Маску можно сделать и функциями в шейдере, если немножко умеешь в математику.
А разве текстура не обрежется? Почему бы просто не сгладить саму текстуру и отрисовать квад с включенным с блендингом?
 
1,990
18
105
Не очень понял, почему текстура должна "обрезаться", если я буду умножать альфу этой текстуры на плавно изменяющееся у краёв значение из маски второй текстуры.
По факту, получается именно то, что ты толкаешь (сгладить текстуру), только в рантайме, и всё ещё ОЧЕНЬ быстро, а главное, практично.
 
7,099
324
1,510
На 1.11+(возможно раньше, не пробовал) можно переопределить методы класса TextureAtlasSprite: load,hasCustomLoader,updateAnimation. Пример как раз про объединение текстур(можно по аналогии маску скругления сделать)
HarderStuff/TextureAtlasDynamic.java at master · Draco18s/HarderStuff · GitHub
 
Сверху