gpt4 book ai didi

opengl - 为什么片段不一定与像素一一对应?

转载 作者:行者123 更新时间:2023-12-01 11:37:57 25 4
gpt4 key购买 nike

这里很好地解释了什么是片段:

https://gamedev.stackexchange.com/questions/8977/what-is-a-fragment/8981#8981

但是here (不仅在这里)我读到“我想强调一个事实,一个像素不一定是一个片段,多个片段可以组合成一个像素......”。但是我不太清楚什么是碎片,为什么它们不一定与像素一一对应?

编辑:当多个片段形成一个像素时,只有在投影后它们重叠的情况下,或者是因为像素大于片段,因此您需要将多个相同的片段并排放在一起颜色形成一个像素?

最佳答案

片段有一个位置,可以通过其内置的 gl_FragCoord 变量查询,其中 xy 组件直接对应于像素在你的屏幕上。所以你可以说一个片段确实对应于一个像素。

但是,片段会输出一种颜色并将该颜色存储在其坐标处的颜色缓冲区中。这并不意味着这种颜色是显示给观众的实际像素颜色。

因为为每个对象运行一个片段着色器,所以可能会在您的第一个对象之后绘制其他对象,该对象也在同一屏幕坐标处输出片段。在考虑深度测试、模板测试和混合时,颜色缓冲区中生成的颜色值可能会被新颜色覆盖和/或合并。

可以这样想:

Object 1 gets drawn and draws the color purple at screen coordinate (200, 300);
Object 2 gets drawn and draws the color red at same coordinate, overwriting it.
Object 3 (is blue) has transparency of 50% at same coordinate, and merges colors.
Final fragment color output is then combination of red and blue (50%).

最终生成的像素可能是来自单个片段着色器运行的颜色、被许多其他片段着色器运行覆盖的颜色,或者通过混合的颜色组合。

关于opengl - 为什么片段不一定与像素一一对应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25463536/

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