gpt4 book ai didi

opengl - 切换 FBO 时是否保留了 glEnable?

转载 作者:行者123 更新时间:2023-12-04 17:22:44 28 4
gpt4 key购买 nike

当我使用 glEnable 设置东西,或指定 func 到我启用的东西,然后切换帧缓冲区对象时,我的设置是否为每个帧缓冲区对象保留,或者我是否必须为每个帧缓冲区对象设置它们?在实践中,这行得通吗?

glEnable(GL_CULL_FACE);
glCullFace(GL_FRONT);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
for int i=0; i<N; i++{
glBindFramebuffer(GL_FRAMEBUFFER, fbos[i]);
rendering something to the fbos here
}

或者我必须写
for int i=0; i<N; i++{
glBindFramebuffer(GL_FRAMEBUFFER, fbos[i]);
glEnable(GL_CULL_FACE);
glCullFace(GL_FRONT);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
rendering something to the fbos here
}

编辑:glUseProgram 呢?那个留着?

最佳答案

不,GL_CULL_FACE 和其他光栅化状态不是按帧缓冲对象存储的。实际上,您只需要设置一次状态。

要检查这一事实,您可以阅读 OpenGL specification 的第 23 章(状态表)中的状态规范。 .该表定义了每个帧缓冲对象的状态。

关于opengl - 切换 FBO 时是否保留了 glEnable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17760937/

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