Выбор цвета OpenGL ES на iPhone - PullRequest
       10

Выбор цвета OpenGL ES на iPhone

4 голосов
/ 06 сентября 2010

Я смотрю в 3D на iPhone, мне удалось получить 3D-куб на устройстве, но я хотел бы добавить интерактивность, например, прикосновение к одному лицу вызывает определенное событие, а другое - к другому. Я бы предпочел держаться подальше от выбора лучей, поскольку это добавляет дополнительную сложность, которую я не хочу в своем приложении.

Я прочитал довольно много учебных пособий по выбору цвета, но, похоже, нигде в Интернете нет специальных руководств для iPhone или примеров кода.

Моя основная проблема - рисование уникальных цветных объектов в заднем буфере, а текстурированных объектов - в передний буфер, никогда не показывая пользователю уникальные цветные объекты, но определяя цвет пикселя, которого коснулись из заднего буфера.

Итак, мой вопрос: может ли кто-нибудь указать мне направление к учебному пособию Objective-C или опубликовать пример кода?

Любая помощь или совет будет высоко ценится.

1 Ответ

3 голосов
/ 07 сентября 2010

ОК, так что через 18 часов я наконец исправил свою проблему.В методе рендеринга все, что мне нужно было сделать, это предотвратить вызов presentRenderbuffer, когда рендеринг находился в режиме SELECT.Я мог бы пнуть себя прямо сейчас!

if (mode == SELECT) {
    glDisable(GL_DITHER);
    glDisable(GL_LIGHTING);
    glDisable(GL_LIGHT0);
}

// Draws the cube object, face by face and adds unique color to each face
[Face1 draw];
[Face2 draw];
[Face3 draw];
[Face4 draw];
[Face5 draw];
[Face6 draw];

if (mode == SELECT) {
    glEnable(GL_DITHER);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
}

// Wrapping presentRenderbuffer with this if statement fixed
// the problem where the unique colors would appear onscreen
if (mode == RENDER) {
    [context presentRenderbuffer:GL_RENDERBUFFER_OES];
}

Я надеюсь, что это может помочь кому-то еще в будущем: o)

...