2016-06-13 6 views
0

FTGLテクスチャフォント(FTTextureFont)を使用してXORモードでフォントをレンダリングします。問題は、すべての文字がボックスとしてレンダリングされることです(バックグラウンドで色がXORされます)。フォントをレンダリングする 呼び出しがで囲まれている:FTGLテクスチャフォントはGL_XORモードでボックスを表示します

glPushAttrib(GL_ALL_ATTRIB_BITS); 
glEnable(GL_COLOR_LOGIC_OP); 
glLogicOp(GL_XOR); 

glDisable(GL_COLOR_LOGIC_OP); 
glPopAttrib(); 

私は深ビットglDisable(GL_DEPTH_TEST)を無効にしようとしたが、それは助けにはなりませんでした。

答えて

0

私はこの回答で解決策を見つけた:https://stackoverflow.com/a/29313195/4174026

問題は除外されていないグリフテクスチャ、透明ピクセルによって引き起こされました。

のOpenGL ESはバージョン1.0と1.1アルファテスト関数(GL_ALPHA_TEST)が透明なフラグメントを破棄するために使用することができる:OpenGL ESのカスタムピクセルシェーダの新しいバージョンで

glAlphaFunc(GL_GREATER, 0.2f); // Reject fragments with alpha < 0.2 
glEnable(GL_ALPHA_TEST); 

を代わりに使用することができる。

void main() { 
    gl_FragColor = v_color * texture2D(u_texture, v_texCoords); 

    if (gl_FragColor.a <= 0.2) { 
     discard; 
    } 
} 
関連する問題