簡體   English   中英

JOGL Confusion-紋理如何起作用?

[英]JOGL Confusion- How do textures work?

OpenGL對我來說很混亂,我不習慣許多圖形術語,等等。在許多教程中,這非常猖very。 我了解如何繪制三角形,圓形,四邊形,多邊形等,但是現在我試圖了解紋理的工作方式。

有人可以指出我正確的方向來理解紋理嗎?

由於只能讓JOGL在Netbeans中工作,因此我嘗試將名為“ Tiki Mask”的圖像放入構建路徑。 當我運行它時,它沒有引發異常,因此我假設它找到了圖像文件?

gl.glGenTextures(1, glu, 0);
    gl.glBindTexture(gl.GL_TEXTURE_2D, glu[1]);



    try {

        Texture tex = TextureIO.newTexture(new File("tikimask.jpg"), true);
         gl.glBegin(GL.GL_POLYGON);
    gl.glNormal3f(0,0,1);
        gl.glTexCoord2d(-tex.getWidth(), -tex.getHeight());
        gl.glVertex2d(-25, -25);
        gl.glTexCoord2d(-tex.getWidth(), tex.getHeight());
        gl.glVertex2d(1.0f,0);
        gl.glTexCoord2d(tex.getWidth(), tex.getHeight());
        gl.glVertex2d(.05f, .05f);
        gl.glTexCoord2d(tex.getWidth(), -tex.getHeight());
        gl.glVertex2d(0, .05f);
    gl.glEnd();
    gl.glFlush();



    } catch (IOException ex) {
        Logger.getLogger(SimpleJOGLwee.class.getName()).log(Level.SEVERE, null, ex);
    } catch (GLException ex) {
        Logger.getLogger(SimpleJOGLwee.class.getName()).log(Level.SEVERE, null, ex);
    }

您的問題是您從未綁定所加載的紋理。 嘗試添加以下行:

tex.enable();
tex.bind();

加載紋理后。

另外,我建議將紋理加載到您的init函數中,而不是在draw函數中,然后在您的draw函數中將其啟用並綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM