OpenGL中的彩色球体

时间:2010-05-26 22:07:18

标签: opengl

好的,所以这里是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 个答案:

答案 0 :(得分:1)

为什么你在glEnable / Disable电话中使用+ i。这意味着在i递增到1之后,您正在修改索引上方的平面(GL_CLIP_PLANE3),并且您没有在那里定义任何平面。

因此,从glEnable / Disable代码中删除“i”并使用类似(mod(i,4)== i%4)的内容。

科坦

答案 1 :(得分:0)

我同意Ketan。您可能正在寻找:

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,因为我从0 1 2 3开始。类似地,最后一个剪辑平面迭代3 2 1 0。