Прозрачный спрайт в opengl es 2.0 с использованием шейдера - PullRequest
0 голосов
/ 18 января 2011

Я пытаюсь создать шейдер, который делает то же самое, что и glcolor4f, а затем его альфа-часть.В opengles 1.1, если вы установите альфа, скажем, 0.5, спрайт будет наполовину полупрозрачным.

Теперь я не могу получить эффект с помощью шейдера, вот как мой шейдер выглядит сейчас:*

gl_FragColor = texture2d(texture, coord) * blend;

И используя этот режим наложения:

glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

Но это не работает, оно меняет цвет спрайта, но не прозрачность.Чего мне не хватает?

Спасибо за ваше время, Ричард.

1 Ответ

1 голос
/ 19 января 2011

Кажется, что вы масштабируете цвет, который вы получаете от текстуры, на коэффициент наложения, а не на то, как выполняется альфа (это только сделает его темнее).строки следующего

gl_FragColor = vec4(texture2d(texture, coord).rgb, blend);

Проверьте, работает ли это

...