Проблемы с прозрачностью загрузки OpenGL ES OBJ

Привет, я работаю над загрузчиком OBJ для использования в программировании iOS, мне удалось загрузить вершины и грани, но у меня проблема с прозрачностью граней.

Цвета вершин, которые я только что сделал, варьируются от 0 до 1. Таким образом, каждая вершина постепенно изменится с черного на белый. Проблема в том, что белые вершины и грани кажутся поверх черных. Чем темнее вершины, тем больше они казались покрытыми.

Для иллюстрации этого см. Видео, которое я разместил здесь ‹http://youtu.be/86Sq_NP5jrI> Модель здесь состоит из двух кубиков, одного большого куба и меньшего, прикрепленного к углу.


person Paul Reed    schedule 26.09.2011    source источник


Ответы (1)


Как назначить цвет вершине? Я предполагаю, что у вас есть цель рендеринга RGBA. Итак, вам нужно настроить цвет следующим образом:

struct color
{
    u8 r, g, b, a;
};

color newColor;
newColor.a = 255;//opaque vertex, 0 - transparent
//other colors setup
person iDev    schedule 26.09.2011
comment
Привет, цвет хранится в большом массиве чисел с плавающей запятой; поэтому для 3 вершин у меня будет массив из 3 вершин * RGBA = 12 значений. Затем он передается в визуализацию как «цвета» glColorPointer (colorStride, GL_FLOAT, 0, colors); glEnableClientState (GL_COLOR_ARRAY); Каждое 4-е значение (Alpha) установлено на 1.0 для нулевой прозрачности. - person Paul Reed; 26.09.2011
comment
просто совет - вы можете сэкономить много места, если будете использовать 4 байта без знака для цвета (4 байта) против 4 плавающих (12 байтов) в 3 раза меньше места. - person iDev; 26.09.2011