gpt4 book ai didi

c++ - OpenGL:在处理纹理时至少绑定(bind)一个纹理?

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:32 24 4
gpt4 key购买 nike

我开始在 openGl 中使用纹理,我注意到一些奇怪的行为。请参见以下伪代码示例:

int main()...
bindTexture1();
bindTexture2();
bindTexture3();

// None of these textures are actually used!

while(true) {
begin();
// draw stuff
end();
}

我加载并绑定(bind)了 3 个纹理,但现在我只是在绘制图元。但是那些图元是不可见的。它们在以下情况下可见:

int main()...
bindTexture1(); // <- So the first bind() remains the only one
//bindTexture2();
//bindTexture3();

// None of these textures are actually used!

while(true) {
begin();
// draw again just primitve stuff but now it's visible
end();
}

或者

int main()...
bindTexture1();
bindTexture2();
bindTexture3();

// None of these textures are actually used!

while(true) {
begin();
bindTexture1(); // Binding texture 1 again
// draw again just primitve stuff but now it's visible
end();
}

所以我想我的问题与这个 glBindTexture 函数有关?

最佳答案

在固定管道(opengl 1 和 2)中渲染 2D 纹理的过程是这样的:

glEnable( GL_TEXTURE_2D );

glBindTexture( GL_TEXTURE_2D, textureId );

// render
glBegin( GL_QUADS );

glTexCoord2f( 0.0, 0.0 );
glVertex2f( 0.0, 0.0 );
glTexCoord2f( 1.0, 0.0 );
glVertex2f( 1.0, 0.0 );
glTexCoord2f( 1.0, 1.0 );
glVertex2f( 1.0, 1.0 );
glTexCoord2f( 0.0, 1.0 );
glVertex2f( 0.0, 1.0 );

glEnd();

glDisable( GL_TEXTURE_2D );

关于c++ - OpenGL:在处理纹理时至少绑定(bind)一个纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15114155/

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