2つのレイヤーを持つ円形の球を作成しています。1
つは上の明るいレイヤー(半径300)
、もう1つは暗いカラーレイヤー(半径298)です。
この球をウィンドウに描画すると、球が正しく描画されます。
次のコードは正確ではありませんopenGL
が、openGL
人々はそれを理解するのに問題はありません
ofImagesphericalImage; 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();
ofPopMatrix();
ただし、問題は一部にあり、前面の画像(明るい部分)が実際に背面の球面画像を覆い隠します(暗い部分は完全には見えません)。カメラで球を回転させると、回転角/軸によっては領域が見える場合があります。このような効果が発生しないように、これを無効にします。
以前、これがopenGLのface-cullinに関連しているかどうかを考えていましたが、設定glDisable(GL_CULL_FACE)
してディベールしましたが、効果はありませんでした。glEnable(GL_DEPTH_TEST);
も設定されています。両方の球面画像が表示されるようにこれを無効にする方法についての提案はありますか?