通过 FBO 使用“渲染到目标”时是否需要重新生成 MipMap?
假设需要 mipmap:
我调用 glGenerateMipmapEXT(GL_TEXTURE_2D);当我第一次为我的 FBO 分配渲染目标时。当我完成渲染以正确填充所有 mipmap 级别时,是否必须再次调用此函数,或者后续渲染调用是否同时渲染到所有级别?
我有一个例子,其中我的一个对象逐渐淡入 <0,0,0,0> 。当最小过滤器 (GL_LINEAR_MIPMAP_LINEAR) 启动时,我假设渲染后未重新进行 mipmapping 会导致此情况。
我查看了一些示例,发现有几个示例进行了后续的 glGenerateMipmap 调用,但更多的示例则没有进行调用。
意见?
Assuming mipmapping is desirable:
I call glGenerateMipmapEXT(GL_TEXTURE_2D); when I first allocate the render target for my FBO. Do I have to call this again when I've completed rendering to it to correctly populate all the mipmapping levels, or do subsequent render calls render to all levels simultaneously?
I have an example where one of my object is fading to <0,0,0,0> when the min filter (GL_LINEAR_MIPMAP_LINEAR) kicks in, and I'm assuming that not re-mipmapping after rendering is causing this.
I've looked through a few examples, and have found a couple where subsequent glGenerateMipmap calls are made, but more where they aren't.
Opinions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
glGenerateMipmap
将根据级别 [0] 填充级别 [1,..,n]。所以是的,只要你的 level[0] 发生变化,你就应该调用它。glGenerateMipmap
will fill levels [1,..,n] based on the level[0]. So yes, you should call it whenever your level[0] changes.