代码之家  ›  专栏  ›  技术社区  ›  Jim

纹理映射C++ OpenGL

  •  5
  • Jim  · 技术社区  · 14 年前

    我读了很多关于这个的文章,包括Nehe和这里的解决方案,但是我找不到具体的答案。

    我正在尝试加载一张名为stars.jpg的照片。我想把它作为场景的背景,通过使用UV坐标映射它,通过

    glBegin(GL_QUADS);
    glTexCoord2f(0,0);
    glVertex2f(0,0);
    

    但是,我对如何加载实际纹理感到非常困惑,所有的调用

    glActiveTexture();
    glEnable(GL_TEXTURE_2d);
    glBindTexture(GL_TEXTURE);
    

    他们所做的只是让我困惑,这些都是什么意思/做的,我应该按照什么顺序把它们放进去,以便让stars.jpg成为我的背景?

    2 回复  |  直到 14 年前
        1
  •  3
  •   TJB    14 年前

    下面是关于加载纹理的逐步教程
    http://www.nullterminator.net/gltexture.html

    记住OpenGL是一个状态机是很重要的,所以你必须告诉它“我现在要讨论纹理”,这就是 glActiveTexture(); 进来。

    还请记住,您将不得不逐像素加载从.jpg(压缩)到纹理数组的颜色,因此您需要找到一个库来提供.jpg文件的位图值,或者您需要将其预转换为.ppm或.bmp,这将使读取值更容易。

        2
  •  4
  •   Kos    14 年前

    在OpenGL中加载纹理的第一个工具是 Simple OpenGL Image Loader (SOIL) 图书馆。只需传递文件名和一些标志,就可以获得纹理ID。

    specs