gpt4 book ai didi

c++ - OpenGL:启用多重采样会在高缩放级别绘制困惑的多边形边缘

转载 作者:行者123 更新时间:2023-11-30 04:39:45 34 4
gpt4 key购买 nike

当我使用以下代码时:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 6);

然后我启用多重采样,我注意到我的程序不再关心最大 mip 级别。

编辑:它也渲染了最后的 miplevel,这就是问题所在,我不希望它们被渲染。

编辑 3:我测试并确认它根本不会忘记 mip 限制,因此它确实遵循我的 GL_TEXTURE_MAX_LEVEL 设置。 ...所以问题与 mipmap 无关,我猜...

Edit2: 截图,这是世界地图缩小了很多,使用低角度使显示的效果最差, map 下方还有水面渲染,所以没有从 map 纹理以外的任何地方获取黑色像素的可能性:

alt text http://img511.imageshack.us/img511/6635/multisamplingtexturelim.png

Edit4:所有这些图片应该看起来像右上角的图片(只是更平滑的边缘取决于多重采样)。但显然我的代码中存在严重错误。我必须使用 mipmap,mipmap 不是问题,它们工作得很好。

我做错了什么,或者我该如何解决这个问题?

最佳答案

好的。所以问题毕竟不是 TEXTURE_MAX_LEVEL。有趣的是一个简单的测试如何帮助解决这个问题。

我有 2 个关于 LOD 被不同选择的理论,这两个理论似乎都被纯色测试覆盖了。

然后是第三种理论。如果我正确理解你的场景,你有一个使用纹理图集的模型,我们观察到的是一些应该从图集的特定项目中获取的多边形实际上是从另一个不同的项目中获取的。是这样吗?

这可以用多重采样片段通常在像素中间采样这一事实来解释。即使该中心不在生成样本的三角形内。见this page底部举例说明。

绕过它的常用方法称为 centroid sampling (此页面也有很好的问题说明)。它强制采样将采样点带回三角形内。

现在是个坏消息:我不知道有什么方法可以在可编程管道之外打开质心过滤,而且您没有使用它。您认为您想要切换以访问该功能吗?

编辑添加:

此外,不使用纹理图集是解决此问题的一种方法。它如此可见的原因是因为您开始使用“三角形外”采样模式从图集的另一部分获取数据。

关于c++ - OpenGL:启用多重采样会在高缩放级别绘制困惑的多边形边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002792/

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