首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OpenGL中渲染时,边缘附近的三角形外像素会出现在哪里?

在OpenGL中渲染时,边缘附近的三角形外像素会出现在哪里?
EN

Stack Overflow用户
提问于 2014-08-28 15:07:54
回答 1查看 189关注 0票数 2

我使用的是一个相当简单的OpenGL呈现管道--只需获取一些纹理并使用GL_TRIANGLES将它们呈现到RGB8呈现缓冲区中。呈现缓冲区的某些部分未被覆盖,并保持为glClearColor(0.0f, 0.0f, 0.0f, 1.0f);。没有alpha,没有深度等等。代码本身在这里复制起来有点长,但是它是gl-图像处理机的一个细微的变化。

奇怪的是,我希望渲染缓冲区中未被渲染缓冲区覆盖的部分保持纯黑。但事实上,在三角形边缘附近有一些像素不是黑色的,而是值(0,1,0)或该值的排列(最大为255 )。它在视觉上是看不见的,但是黑色在我的渲染缓冲区中有一个特殊的含义。看起来是这样的:

(用白色代替真正的黑色)。同样的情况发生在主背景是白色或紫色(255,255)-一些像素将是(255,1,255)或(255,254)等等。

我试图修改片段着色器以输出固定的颜色,效果非常有趣,杂散像素仅在坐标跳过附近聚集:

这些伪影甚至出现在GL_LINES而不是GL_TRIANGLES上,有各种倾斜的边缘,抖动和反混叠被禁用。

我想知道这是否是我所做的事情,一些我应该关闭的OpenGL优化,甚至是一个驱动程序错误?(这是在Linux上的fglrx驱动程序14.4.2,这张卡是Radeon 7800家庭的。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-09 20:42:47

对不起,我忘了回答这个问题,但我应该回答。

因此,这是一个非常愚蠢的错误--在有点复杂的管道中,的输出变成了文件(尽管这不是我最终在GIMP中打开的格式,希望这会给我留下深刻的印象)。而这混乱的边缘是一个明显的JPEG压缩伪影。

JPEG文件压缩级别设置为"100“。但这仍然是有损压缩,虽然只有+-1的像素值.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25552200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档