Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl GL:将图像映射到立方体的面:使用ilutGLLoadImage()获取全黑纹理_Opengl_Texture Mapping_Devil - Fatal编程技术网

Opengl GL:将图像映射到立方体的面:使用ilutGLLoadImage()获取全黑纹理

Opengl GL:将图像映射到立方体的面:使用ilutGLLoadImage()获取全黑纹理,opengl,texture-mapping,devil,Opengl,Texture Mapping,Devil,我只想将图像作为纹理映射到立方体的面并显示出来。立方体上没有我的图像,而是全黑的。我的图片都是64x64 jpg的 我的申请代码如下。最初,它是一个生成2个棋盘纹理的程序,每次在立方体的所有面上显示1个,允许用户在它们之间切换。我想要的不是所有面上的棋盘,而是图像。我已经注释掉了他们的纹理生成和纹理加载代码,最重要的是,将其替换为ilutGLLoadImage()(来自DevIL):它应该可以一举杀死大多数图像纹理加载鸟类。这在init()中发生。唯一的控制台输出是“1,2”(来自my cout

我只想将图像作为纹理映射到立方体的面并显示出来。立方体上没有我的图像,而是全黑的。我的图片都是64x64 jpg的

我的申请代码如下。最初,它是一个生成2个棋盘纹理的程序,每次在立方体的所有面上显示1个,允许用户在它们之间切换。我想要的不是所有面上的棋盘,而是图像。我已经注释掉了他们的纹理生成和纹理加载代码,最重要的是,将其替换为ilutGLLoadImage()(来自DevIL):它应该可以一举杀死大多数图像纹理加载鸟类。这在init()中发生。唯一的控制台输出是“1,2”(来自my cout),这意味着图像已加载并提供了有效的纹理ID。为什么立方体是黑色的

应用程序代码(init()是开始查找的好地方):

片段着色器:

#version 150


in  vec2 texCoord;

out vec4 fColor;

uniform sampler2D texture;

void main() 
{ 
    fColor = texture2D( texture, texCoord );
}

可能重复?看起来可能是ilutGLLoadImage中的错误。@jozzas我刚刚添加了GL错误检查,就像他所做的那样。我确实有一个错误:1280,GL\u无效\u枚举。和他的错误不一样,我不明白原因是什么。也许是个bug?嗯,可能不是ilutGLLoadImage中的bug。我尝试了这里给出的函数。还在拿一个黑色的立方体,你看到他的了吗?也许用他的资料作为参考,看看你能做些什么。谢谢,我刚查过。我正试图尽可能密切地关注它,比如电话的顺序。我添加了他的输出,让我知道我的图像加载了正确的属性。我们的代码之间最大的区别在于我使用了a)可编程着色器(参见我的原始帖子)和b)GLUT。他没有。
#version 150

in  vec4 vPosition;

in  vec2 vTexCoord;

out vec4 color;
out vec2 texCoord;

uniform vec3 theta;

void main() 
{
    const float  DegreesToRadians = 3.14159265 / 180.0;

    vec3 c = cos( DegreesToRadians * theta );
    vec3 s = sin( DegreesToRadians * theta );

    mat4 rx = mat4( 1.0, 0.0,  0.0, 0.0,
            0.0, c.x, -s.x, 0.0,
            0.0, s.x,  c.x, 0.0,
            0.0, 0.0,  0.0, 1.0);

    mat4 ry = mat4(   c.y, 0.0, s.y, 0.0,
              0.0, 1.0, 0.0, 0.0,
             -s.y, 0.0, c.y, 0.0,
              0.0, 0.0, 0.0, 1.0 );

    // Workaround for bug in ATI driver
    ry[1][0] = 0.0;
    ry[1][1] = 1.0;

    mat4 rz = mat4( c.z, -s.z, 0.0, 0.0,
            s.z,  c.z, 0.0, 0.0,
            0.0,  0.0, 1.0, 0.0,
            0.0,  0.0, 0.0, 1.0 );

    // Workaround for bug in ATI driver
    rz[2][2] = 1.0;

    texCoord    = vTexCoord;
    gl_Position = rz * ry * rx * vPosition;
} 
#version 150


in  vec2 texCoord;

out vec4 fColor;

uniform sampler2D texture;

void main() 
{ 
    fColor = texture2D( texture, texCoord );
}