gpt4 book ai didi

java - JOGL 困惑 - 纹理如何工作?

转载 作者:行者123 更新时间:2023-12-01 04:48:13 25 4
gpt4 key购买 nike

OpenGL 对我来说非常困惑,我不习惯很多图形术语等,这些术语在许多教程中非常猖獗。我了解如何绘制三角形、圆形、四边形、多边形等,但现在我试图了解纹理的工作原理。

有人能给我指出理解纹理的正确方向吗?

由于我只能让 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);
}

最佳答案

您的问题是您从未绑定(bind)加载的纹理。尝试添加这些行:

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

加载纹理后。

此外,我建议在 init 函数中加载纹理,而不是在绘图函数中加载,然后只需在绘图函数中启用并绑定(bind)它们即可。

关于java - JOGL 困惑 - 纹理如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com