私はウィンドウでQt5.4.2を使用しています。私はQOpenGLWidget継承されたウィジェットを実装しようとしています。 ウィンドウは、はっきりとしっかりとレンダリングできる必要があります。つまり、ユーザーはプログラム内の2つのレンダリングを切り替えることができます。QOpenglWidget透明度の変更に関する黒い画面
Depth_testでプログラムを起動すると、うまく動作します。プログラムをブレンドして起動しても正常に動作します。しかし、実行時の透明度を変更すると、黒いウィンドウが表示され、depth_testに戻ってきます!そしてブレンドに戻ったときもう一度普通です したがって、depth_testの透明度を変更すると問題が発生します。
古いQGLWidgetで同じことを試しました。完全に動作するので、黒いウィンドウはありません。私はGL_CULL_FACEを有効にした場合:次も
if (/transparent or not/)
{
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
} else
{
glDisable(GL_BLEND);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
}update();
興味深い 私は黒いウィンドウを得たが、私は透明に戻ったとき、私はまた、半分黒のウィンドウを(対角線が分離された)です。