And*_* Li 6 flash silverlight hlsl pixel-bender
有人可以解释Flash中的Pixel Bender和Silverlight中的Pixel Shader(HLSL)在编程灵活性和运行时性能方面的差异吗?
我不太了解 Silverlight 着色器,但我可以谈谈 PixelBender。
Pixelbender 着色器获取位图数据并一次评估每个 32 位像素(实际上是 4 个浮点数的每个块)并对其执行计算。着色器的输入是一个或多个图像和可选参数,输出始终是单个图像。该计算在图像中的所有像素上并行进行,并且在像素之间是“无状态”的,这意味着您无法在评估一个像素时存储值并在另一个像素中使用它们。事实上,就像素评估而言,该函数被设计为在无限大的图像上运行,因此不知道图像的大小和形状。
Flash Player 可用于着色器的功能是整个 Pixelbender 语言的子集。它排除了诸如可重用库函数和区域函数之类的语言功能。
像素弯曲器着色器可以在 GPU 上以独立于 Flash Player 的线程运行,本质上允许 Flash 中的线程处理。在实践中,考虑到 Pixelbender 的无状态性和有限的功能,这仅对大批量数字处理有用。数字的字节数组可以传递给伪装成位图数据的着色器,并使用 ShaderJob 异步(或同步)运行。
在语法方面,HLSL 和 PBJ 都类似于 C,并且基于 GLSL。我的猜测是,鉴于 Microsoft 在图形硬件方面的经验,HLSL 可能具有更好的性能和更多功能。然而,Flash 和 Silverlight 之间的差异远远超出了它们的着色器,我认为 Flash 几乎在每个领域都优于 Silverlight,因此这取决于哪个平台更能满足需求。
| 归档时间: |
|
| 查看次数: |
1250 次 |
| 最近记录: |