Текстура-карта

Сообщения
1,952
Лучшие ответы
65
Реакции
186
Версия Minecraft
1.7.10
Доброго всем времени суток о/

Вопрос в следующем, каким образом можно обрезать одну текстуру по другой?
То есть вместо того, чтобы создавать уберсложную 2D модель из 100500 полигонов использовать картинку, которая будет являться "картой", из которой будет браться прозрачность каждого пикселя, чем прозрачные элементы будет обрезаться.

Заранее спасибо :3
 
Сообщения
1,981
Лучшие ответы
18
Реакции
90
1) Биндишь нужную текстуру-маску на glActiveTexture(GL_TEXTURE2) (нулевой юнит - основная текстура, первый майн использует для лайтмапы).
2) Рисуешь что нужно через шейдер, который умножает цвет и альфу первой текстуры на альфу второй текстуры. Profit.
 
Сообщения
1,952
Лучшие ответы
65
Реакции
186
Ну нафиг... шейдер в разы проще:
C-like:
#version 120
uniform sampler2D image;
uniform sampler2D mask;
void main(void) {
    vec2 uv = vec2(gl_TexCoord[0]);   
    gl_FragColor = texture2D(image, uv) * texture2D(mask, uv).a;
}
 
Сверху