0

openGLの透明性に関する複数のフォーラムを検索して読んだところ、このコードが見つかりました

gl.glEnable(GL2.GL_BLEND);
gl.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL2.GL_ALPHA_TEST);
gl.glAlphaFunc(GL2.GL_GREATER, 0.1f);
gl.glClearColor(0, 0, 0, 0);

init一部の人々は、メソッド内にこのコードを記述し、結果を得ました。ブレンディングについてはもうよくわかりませんが、このコードを追加しても何も起こりませんでした!

ここに間違いや誤解はありませんか!? どうやってやるの?

ちなみに使っjogl 2.0ています。

4

1 に答える 1

-1

GLJPanelを洗練することで透明にする方法は次のGLCapabilitiesとおりです。

/** Creates an instance of a transparent GLJPanel. **/
public static final GLJPanel createTransparentPanel() {
    /* Instantiate a new set of GLCapabilities based upon the System's default parameters. */
    final GLCapabilities lGLCapabilities = new GLCapabilities(GLProfile.getDefault());
    /* Define that we don't wish for the background to be opaque. */
    lGLCapabilities.setBackgroundOpaque(false);
    /* Create a new GLJPanel based on these capabilities. */
    final GLJPanel lGLJPanel = new GLJPanel(lGLCapabilities);
    /* Disable opacity for the panel. */
    lGLJPanel.setOpaque(false);
    /* Return the panel. */
    return lGLJPanel;
}

これは、transparent に追加できますJFrame。以下を呼び出して、JFrame の透過性を有効にできます。

.setBackground(new Color(0,0,0,0));
于 2014-10-18T12:21:20.560 に答える