-1

私はopenglでマスキングを使用して壁に穴を作成することに取り組んでいます.私のコードはこのように非常に単純です.

//Draw the mask
glEnable(GL_BLEND);                         
glBlendFunc(GL_DST_COLOR,GL_ZERO);  
glBindTexture(GL_TEXTURE_2D, texture[3]);

glBegin(GL_QUADS);
glTexCoord2d(0,0); glVertex3f(-20,40,-20);
glTexCoord2d(0,1);glVertex3f(-20,40,40);
glTexCoord2d(1,1);glVertex3f(20,40,40);
glTexCoord2d(1,0);glVertex3f(20,40,-20);

glEnd();

//Draw the Texture
glBlendFunc(GL_ONE, GL_ONE);


glBindTexture(GL_TEXTURE_2D, texture[2]);
glBegin(GL_QUADS);
glTexCoord2d(0,0); glVertex3f(-20,40,-20);
glTexCoord2d(0,1);glVertex3f(-20,40,40);    
glTexCoord2d(1,1);glVertex3f(20,40,40);
glTexCoord2d(1,0);glVertex3f(20,40,-20);
glEnd();

問題は、壁に穴を正しく開けたのですが、半透明で、その上に黒い影ができていて、透けて見えることです。ここに私が得ているものの写真があります: 代替テキスト

助言がありますか?

4

1 に答える 1

-1

解決済み:D 法線を正しい位置に設定すると、サーフェスの法線に問題が発生しました。黒い色合いがフェードアウトしました。

于 2010-05-14T22:52:48.260 に答える