OpenFL/HTML5 Применение шейдера к растровому изображению

Я пытаюсь применить шейдер к растровому изображению, как описано в этой ссылке.

Это код:

var shader = new Shader ();
shader.glFragmentSource = "..."; <- this part is not important

shader.data.useAlphaImage = [ true ];
shader.data.uAlphaImage.input = alphaBitmapData;

bitmap.filters = [ new ShaderFilter (shader) ];

Но если я применяю шейдер, он становится прозрачным, без ошибок. Нужно ли что-то настраивать, чтобы это работало?

Я ориентируюсь на HTML5.

1 ответ

Решение

ShaderFilter частично отключен в текущих выпусках OpenFL. Первоначальная реализация была слишком медленной, чтобы работать на мобильных устройствах; Есть планы вернуться к этой функции, написанной по-другому.

Между тем, есть бета-версия API, которую вы можете попробовать:

bitmap.shader = shader;

Также имейте в виду, что OpenFL использует предварительно умноженную альфу, поэтому имейте это в виду в своем шейдере, когда дело доходит до альфа-значений. Это должно быть представлено в коде шейдера по умолчанию.

Другие вопросы по тегам