【发布时间】:2010-01-04 22:38:52
【问题描述】:
当我使用以下代码时:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 6);
然后我启用多重采样,我注意到我的程序不再关心最大 mip 级别。
编辑:它也会渲染最后的 miplevel,这就是问题所在,我不希望它们被渲染。
编辑3: 我测试并确认它根本不会忘记 mip 限制,所以它确实遵循我的 GL_TEXTURE_MAX_LEVEL 设置。 ...所以问题与 mipmap 无关,我猜...
Edit2:截图,这是世界地图被放大了很多,使用低角度使效果显示最差的方式,地图下方还有渲染的水平面,所以没有从地图纹理以外的任何地方获取黑色像素的可能性:
alt text http://img511.imageshack.us/img511/6635/multisamplingtexturelim.png
Edit4:所有这些图片都应该看起来像右上角的图片(只是边缘更平滑,具体取决于多重采样)。但显然我的代码中有一些可怕的错误。我必须使用 mipmap,mipmap 不是问题,它们工作得很好。
我做错了什么,或者我该如何解决?
【问题讨论】:
-
究竟如何启用多重采样?
-
通过nvidia控制面板,强制启用每个应用程序
-
需要更多信息。它如何“不在乎”?纹理在该级别之上消失(如果未提供)?你启用了 GL_GENERATE_MIPMAP 吗?如果可以,请包含更多代码或完整的测试用例。
-
它还渲染了更多的纹理miplevels,换句话说:它对MAX_LEVEL一点也不关心
-
不,我没有启用 GL_GENERATE_MIPMAP,应该吗?我正在使用 gluBuild2DMipmaps()
标签: c++ opengl multisampling