我正在创建一个具有两层的圆形球体:
一层具有上面的浅色层(半径 300)
,一层具有较深的颜色层(半径 298)
当我在窗口上绘制这个球体时,我得到了正确绘制的球体。
以下代码不完全正确openGL
,但openGL
人们理解它不会有任何问题
ofImage 球形图像;GLUquadricObj *quadric;
ofPushMatrix();
//Sphere dark image
ofRotateX(90);
ofPushStyle();
ofSetColor(43,64,105);
sphericalImage.getTextureReference().bind();
gluSphere(quadric, 298, 100, 100);
ofPopStyle();
//Sphere light image
ofPushStyle();
ofSetColor(255,255,255);
sphericalImage.getTextureReference().bind();
gluSphere(quadric, 300, 100, 100);
ofPopStyle();
sphericalImage.unbind();
流行矩阵();
然而,问题在于某些部分,前图像(较浅的图像)实际上覆盖/覆盖了后球形图像(并且较暗的部分不完全可见)。当用相机旋转球体时,有时该区域会根据旋转角度/轴变得可见。我想禁用它,这样就不会发生这种效果。
我早些时候在想这是否与 openGL 中的 face-cullin 有关,但我通过设置禁用了glDisable(GL_CULL_FACE)
它并且它没有任何效果。glEnable(GL_DEPTH_TEST);
也设置了。关于如何禁用它以使两个球形图像都可见的任何建议?