Я пытаюсь понять, как применять шейдер в SpriteKit, так что я сделал следующий шейдер, который исходит от руководства с некоторыми изменениями (http://battleofbrothers.com/sirryan/understanding-shaders-in-spritekit):Shader не лежит на верхней части моего спрайта
void main() {
vec4 val = texture2D(u_texture, v_tex_coord);
if (val.a == 1.0) {
gl_FragColor = vec4(1.0,1.0,1.0,1.0);
} else {
gl_FragColor = val;
}
}
Идея этого простого шейдера заключается в том, чтобы перевести на белый каждый непрозрачный пиксель узла спрайта.
Шейдер работает с моими вершинами спрайтов, которые имеют единую текстуру как свое изображение.
Проблема, с которой я сталкиваюсь, заключается в том, что шейдер, кажется, игнорируется, когда я применяю его к узлу спрайта, который поступает из многослойного SKScene. Я попытался установить шейдер на каждый дочерний узел сцены, но он все равно не появляется.
Любые предложения?
К сожалению, у меня не хватает какой-то понимание. Что вы подразумеваете под «многослойным SKScene»? – Confused
Привет, спасибо вам за вашу поддержку. Я нашел решение своей проблемы (которую я опубликую в ближайшее время). Во всяком случае, по «многослойной SKScene» я имею в виду, что я создал файл сценария визуальной сцены (.sks), и я построил свой спрайт внутри этой сцены, добавив разные узлы для различных частей тела, так что легко оживить спрайт с некоторыми SKActions. – gionti