Questions tagged «rasterizer»

1
在Metal中如何计算Mipmap级别?
我的问题特别针对Metal,因为我不知道答案是否会针对另一个API改变。 我相信到目前为止我了解的是: 贴图纹理预先计算了“细节级别”,其中通过以某种有意义的方式对原始纹理进行下采样来创建较低级别的细节。 Mipmap级别以递减的细节级别来指代,其中级别0是原始纹理,而更高级别是其二阶幂的减少。 大多数GPU实现三线性过滤,即为每个样本选择两个相邻的mipmap级别,使用双线性过滤从每个级别中采样,然后线性混合这些样本。 我不太了解的是如何选择这些mipmap级别。在Metal标准库的文档中,我看到可以在指定或不指定lod_options类型实例的情况下进行采样。我假设此参数会更改mipmap级别的选择方式,并且显然存在3D lod_optionsfor 2D纹理: bias(float value) level(float lod) gradient2d(float2 dPdx, float2 dPdy) 不幸的是,文档没有费心地解释这些选项的作用。我可以猜测会bias()偏向某些自动选择的细节级别,但是偏见value是什么意思呢?它的运作规模是多少?同样的,又是怎样lod的level()转换成离散的纹理贴图的水平?并且,在gradient2d()使用纹理坐标的渐变的假设下进行操作时,如何使用该渐变选择mipmap级别? 更重要的是,如果我省略lod_options,那么如何选择mipmap级别?这取决于执行的函数类型吗? 并且,如果该sample()函数的默认no-lod-options指定操作是要执行类似的操作gradient2D()(至少在片段着色器中),它是利用简单的屏幕空间派生类,还是直接与光栅化器和插值纹理坐标一起使用?计算精确的梯度? 最后,设备之间的这种行为有多一致?我读过一篇老文章(在DirectX 9中是古老的文章),其中提到了复杂的设备特定的mipmap选择,但是我不知道在新的体系结构上是否可以更好地定义mipmap选择。

1
为什么GPU仍具有光栅器?
尽管有进步,现代GPU仍具有固定的光栅化器。高度可定制的,带有可编程的着色器,但是仍然不是完全可编程的。 这是为什么? 为什么GPU不能简单地是具有通用计算单元的大规模并行设备,而光栅化器只是用户提供的用于该设备的软件? 具有固定功能的硬件是否在性能上如此有益,以致于这种方法不可行?
14 gpu  rasterizer 

1
为什么相邻的三角形在栅格化时永远不会重叠?
对于以下菜鸟问题表示歉意,只是我在任何地方都找不到令人满意的答案... 当我绘制一个由两个三角形组成的简单的与轴对齐的四边形时,我不明白为什么在这些三角形相交的对角线边缘上从来没有可见的伪像。其中一些像素必须同时位于两个三角形中,对吗?因此,如果我的碎片着色器总是发出部分透明的颜色(比如说50%黑色),那么在生成的四边形中是否应该没有可见的深色对角线? 显然,这不是必须解决的实际问题,这很好,我只是不明白为什么不是这样。是什么使它始终有效?
11 opengl  gpu  rasterizer 

1
扫描转换期间的样品间隙是多少?
在本教程中, 通常情况下,渲染共享边的三角形。OpenGL提供了保证,只要共享的边顶点位置相同,在扫描转换期间就不会有样本间隙。 1扫描转换期间的样品间隙到底是什么? 2在什么情况下会发生? 3当线穿过片段的中心时会发生吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.