【发布时间】:2016-08-11 12:51:12
【问题描述】:
根据我自己的试错经验,DirectX 像素着色器似乎只针对 DirectX 渲染的某些几何图元范围内的像素/片段运行,而不针对简单的帧像素运行清晰的颜色。
像素着色器与顶点着色器协同工作;顶点着色器的输出为像素着色器提供输入。
这与 WPF 像素着色器形成对比,后者针对帧的每个像素运行,因为 WPF 不渲染 3D 图元,因此不知道也不关心几何图元像素意味着什么或清晰 -颜色像素。
所以对于下面的图像,DirectX 像素着色器将只针对白色区域运行,因为它对应于顶点着色器输出的几何图元,但不适用于黑色区域,因为那是清晰的颜色。另一方面,WPF 像素着色器将针对帧的每个像素运行,包括白色和黑色。
这种理解正确吗?
【问题讨论】:
-
如果我没记错我的大学课程(2 年前),你有一个顶点着色器和一个像素着色器。您传递到顶点着色器,然后传递到像素着色器,所以是的,在该部分中,您仅将效果应用于该几何体中的像素。如果您希望像素着色器影响整个场景,那么您可以在纹理上传递整个场景。所以如果你考虑一下,在这种情况下你确实传递了一个方形几何体