Показать сообщение отдельно
Старый 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(maskX, maskY)) / vec2(maskW, maskH); 
Ну ты конечно передашь эти 4 данных одним vec4, но для наглядности они по отдельности. Будет у тебя что-то типо:
vec2 v_textCoordMask = (v_texCoordImage - maskCoords.xy) / maskCoords.zw; 
Миниатюры
Нажмите на изображение для увеличения
Название: texCoords.png
Просмотров: 2512
Размер:	2.7 Кб
ID:	20126  
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SBJoker (10.02.2014)