Показать сообщение отдельно
Старый 10.02.2014, 21:51   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: [cocos2d-x][shaders] Шейдер маски для фрагментов текстур

А как ты вычесляешь вторые текстурные координаты?
Я думаю тут нужно вычислять вторые координаты в фрагментном шейдере, исходя из смещения и скейла маски в атласе маск.
Тебе нужно передать данные о смещении и скейле, например:

Смещение на 25% влево и вверх, также размер 50% от оригинала. По сути тебе нужно знать % смещение и % размера между регионом маски и самим атласом маски. Эти 4 переменные передать в шейдер (maskX, maskY, maskW, mashH).
На примере картинки выше это будет:
maskX 0.25;
maskY 0.25;
maskW 0.5;
maskH 0.5
Далее формула будет такой:
vec2 v_textCoordMask = (v_texCoordImage vec2(maskXmaskY)) / vec2(maskWmaskH); 
Ну ты конечно передашь эти 4 данных одним vec4, но для наглядности они по отдельности. Будет у тебя что-то типо:
vec2 v_textCoordMask = (v_texCoordImage maskCoords.xy) / maskCoords.zw
Миниатюры
Нажмите на изображение для увеличения
Название: texCoords.png
Просмотров: 1993
Размер:	2.7 Кб
ID:	20126  
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SBJoker (10.02.2014)