Я работаю над проектом, который находится в GLES 1.1. Это должно быть GLES 1.1.Умножая каждый пиксель на его альфа-Open GLES 1.1 (премультипликация), а затем обратный
Но он должен сделать некоторое умножение, т. Е. Получить каждый пиксель и изменить его из rgba = r * a, b * a, g * a, a. А потом переверните его.
Если бы у меня был доступ к шейдерам, это было бы проблемой, но, конечно же, я был бы 1.1.
Выполнение этого с помощью readpixels, а затем выполнение его на процессоре и его возврат ужасно медленно, поэтому я пытаюсь подумать о том, как я могу обмануть.
Теперь один способ, которым я мог бы сделать это путем предварительного умножения, воспользовавшись glTexEnvi
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_TEXTURE0);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_TEXTURE1);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_ALPHA);
но потом, мне нужно отменить операцию. Для жизни меня я не могу придумать, как это изменить.
Если все имело такую же альфу, я мог злоупотреблять функциями glLighting, но, к сожалению, они этого не делают.
У меня такое чувство, что я немного обречен.
Возможно, я мог бы просто использовать общие контексты и сделать фрагмент GLES 2.0 ... но я чувствую, что придет со своими собственными накладными расходами
если у кого есть какие-либо идеи или мысль по этому поводу вообще я был бы весьма признателен слыша их!