相关疑难解决方法(0)

无法将简单的无符号字节rgb纹理映射到quad:

我有一个非常简单的程序,将虚拟红色纹理映射到四边形.

这是C++中的纹理定义:

struct DummyRGB8Texture2d
{
    uint8_t data[3*4];
    int width;
    int height;

};

DummyRGB8Texture2d myTexture
{
    { 
        255,0,0,
        255,0,0,
        255,0,0,
        255,0,0
    },
    2u,
    2u
};
Run Code Online (Sandbox Code Playgroud)

这就是我设置纹理的方法:

void SetupTexture()
{
    // allocate a texture on the default texture unit (GL_TEXTURE0): 

    GL_CHECK(glCreateTextures(GL_TEXTURE_2D, 1, &m_texture));

    // allocate texture:
    GL_CHECK(glTextureStorage2D(m_texture, 1, GL_RGB8, myTexture.width, myTexture.height));

    GL_CHECK(glTextureParameteri(m_texture, GL_TEXTURE_WRAP_S, GL_REPEAT));
    GL_CHECK(glTextureParameteri(m_texture, GL_TEXTURE_WRAP_T, GL_REPEAT));
    GL_CHECK(glTextureParameteri(m_texture, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
    GL_CHECK(glTextureParameteri(m_texture, GL_TEXTURE_MIN_FILTER, GL_NEAREST));

    // tell the shader that the sampler2d uniform uses the default texture unit (GL_TEXTURE0) 
    GL_CHECK(glProgramUniform1i(m_program->Id(), /* location in shader …
Run Code Online (Sandbox Code Playgroud)

opengl textures glsl texture-mapping opengl-4

4
推荐指数
1
解决办法
512
查看次数

标签 统计

glsl ×1

opengl ×1

opengl-4 ×1

texture-mapping ×1

textures ×1