Как к программно альфе исчезают текстурированный объект в OpenGL ES 1.1 (iPhone)

Это походит на плохую идею. Liskov не был бы впечатлен.

, Если Вы не хотите, чтобы потребители DerivedClass были в состоянии к методам доступа DeriveClass. () и DerivedClass. B () я предложил бы, чтобы DerivedClass реализовал некоторый открытый интерфейс, IWhateverMethodCIsAbout и потребители DerivedClass должны на самом деле говорить с IWhateverMethodCIsAbout и ничего не знать о реализации BaseClass или DerivedClass вообще.

6
задан PewterSoft 15 October 2009 в 12:52
поделиться

2 ответа

Решение Николая верное; пожалуйста, не обращайте внимания на то, что я сказал на форумах Apple. Поскольку текстура предварительно умножается, цвет для каждой вершины должен быть таким же. Вы должны использовать GL_ONE , а не GL_SRC_ALPHA , и сделайте следующее:

glColor4f(1., 1., 1., myDesiredAlpha);
glColor4f(myDesiredAlpha, myDesiredAlpha, myDesiredAlpha, myDesiredAlpha);
2
ответ дан 8 December 2019 в 13:47
поделиться

Возможно, я не понимаю вас, но мне это кажется тривиальным, и я успешно справляюсь с этим с помощью своих приложений. Для этого нужно:

  1. включить текстурирование и все необходимое
  2. включить смешивание: glEnable (GL_BLEND)
  3. выбрать режим наложения glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA)
  4. установить цвет для смешивания с: glColor4f (r * a, g * a, b * a, a)
  5. нарисуйте свою геометрию

Функция смешивания предназначена для porter-duff поверх с использованием предварительно умноженных цветов / текстуры. GL_TEXTURE_ENV_MODE должен иметь значение GL_MODULATE , но это значение по умолчанию.

15
ответ дан 8 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: