[英]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.