Graphics 在DirectX 9中,像素着色器能否在每次绘制调用中每像素运行一次以上?

Graphics 在DirectX 9中,像素着色器能否在每次绘制调用中每像素运行一次以上?,graphics,direct3d,directx-9,pixel-shader,Graphics,Direct3d,Directx 9,Pixel Shader,如果在同一个绘制调用中有多个重叠三角形,是否为每个覆盖它的基本体的每个像素输入一次像素着色器?或者是首先执行深度测试,并且无论基本体的数量如何,每个像素只准确输入一次着色器 我在DirectX 9中工作,并使用shader model 4.0 level 9_1 谢谢 深度测试发生在像素着色器之后。看 此外,很明显,像素着色器每像素运行一次以上。考虑alpha混合:首先必须渲染不透明像素,然后将透明像素与已经呈现的不透明像素混合。如果每个像素只输入一次像素着色器,则永远不会发生这种情况 “每个原

如果在同一个绘制调用中有多个重叠三角形,是否为每个覆盖它的基本体的每个像素输入一次像素着色器?或者是首先执行深度测试,并且无论基本体的数量如何,每个像素只准确输入一次着色器

我在DirectX 9中工作,并使用shader model 4.0 level 9_1


谢谢

深度测试发生在像素着色器之后。看

此外,很明显,像素着色器每像素运行一次以上。考虑alpha混合:首先必须渲染不透明像素,然后将透明像素与已经呈现的不透明像素混合。如果每个像素只输入一次像素着色器,则永远不会发生这种情况

“每个原语一次”不是正确的术语。单个基本体最有可能覆盖多个像素,因此单个基本体将导致为基本体覆盖的每个像素运行像素着色器


要防止像素着色器在被其他对象遮挡的基本体上运行,必须实现某种形式的。或者,某些驾驶员可能会在一定程度上为您这样做。请参阅下面的内容和注释。

如果像素着色器未修改像素的深度值,大多数驱动程序将执行早期深度测试,以便着色器不会对遮挡像素执行(也称为“早期Z拒绝”)。