gpt4 book ai didi

java - 如何在OpenGL中给物体添加纹理?

转载 作者:行者123 更新时间:2023-12-01 14:18:50 25 4
gpt4 key购买 nike

我使用二十面体的底面制作了球体,因此我将许多三角形组合成一个球体。有很多顶点和索引,但是使用此代码(java)可以轻松绘制所有内容:

gl.glFrontFace(GL10.GL_CW); 
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertBuff);
gl.glDrawElements(GL10.GL_TRIANGLES, size, GL10.GL_UNSIGNED_SHORT, shortBuff);

其中,shortBuff 表示索引,vertBuff 表示顶点。有没有办法将图像包裹在物体的正面以放置纹理?

最佳答案

基本上,您需要顶点的纹理坐标,然后将图像加载到纹理中并激活该纹理阶段。

Here's an (somewhat old but still valid) article on OpenGL texture mapping.

另一个来源可能是offical OpenGL FAQ .

还有一些选项可以让 OpenGL 为您生成纹理坐标,但它们可能不会产生您想要的结果。

最后一种更现代的方法是使用着色器进行纹理映射。然而,这可能仍然高于您的水平,而且我也不确定 OpenGL ES 的功能(我正在使用完整的 OpenGL)。

编辑:

这是a tutorial on OpenGL tex coord generation

请注意,您仍然应该深入研究其他纹理坐标生成方法,例如在其他地方生成它们(例如建模软件)并将它们与顶点坐标一起加载 - 或根据顶点坐标或其他数据计算它们。

纹理坐标生成可能是一个开始,但出于学习目的,我建议学习如何手动进行。这样您将更好地了解纹理坐标和纹理映射的工作原理。

关于java - 如何在OpenGL中给物体添加纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17833615/

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