Цветной шар в OpenGL - PullRequest
       22

Цветной шар в OpenGL

3 голосов
/ 27 мая 2010

Хорошо, так вот ссылка на код в c ++ http://pastebin.com/nfPmd0um (с польскими комментариями;) Я хотел бы создать сферу, разделенную на четыре плоскости. Каждая часть сферы должна иметь свой цвет. На данный момент он отображает только 2 цветные части. Я знаю, что что-то не так с этой частью кода в функции Display ():

glEnable (GL_CLIP_PLANE0 +i);
glDisable (GL_CLIP_PLANE1 -i);

glEnable (GL_CLIP_PLANE2 +i);
glDisable (GL_CLIP_PLANE3 -i); 

Кто-нибудь знает, что я должен изменить? Заранее спасибо:)

Ответы [ 2 ]

1 голос
/ 15 июня 2010

Почему вы используете + i в своем вызове glEnable / Disable. Это означает, что после того, как i увеличится до 1, вы изменяете плоскости над индексом (GL_CLIP_PLANE3), и у вас там не определены никакие плоскости.

Итак, удалите «i» из вашего кода glEnable / Disable и используйте что-то вроде (mod (i, 4) == i% 4).

Ketan

0 голосов
/ 17 июня 2010

Я согласен с Кетаном. Вы можете искать это:

glEnable (GL_CLIP_PLANE0 +i );
glDisable (GL_CLIP_PLANE0 + (1+4-i)%4);

glEnable (GL_CLIP_PLANE0 +(2+i)%4);
glDisable (GL_CLIP_PLANE0 +(3+4-i)%4); 

Например, часть (1 + 4-i)% 4 дает последовательность 1 0 3 2 при переходе i от 0 1 2 3. Аналогично, последняя плоскость отсечения повторяется 3 2 1 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...