3

有一个很棒的页面,其中包含一些用于 Photoshop 中混合模式的 c 代码。我想要的是在我的 XNA 应用程序中使用其中一些模式。特别是叠加、色调和饱和度。您认为仅使用 XNA 混合函数和混合枚举是否可行,或者我需要为这些效果创建一个着色器?

这是 Photoshop 混合模式数学的链接:http: //www.nathanm.com/photoshop-blending-math/

4

1 回答 1

2

首先,这是一个涵盖大部分相同领域的问题

问题是现代 GPU 中的混合阶段仍然非常有限且功能固定。您有以下函数可供选择:加法、减法、最大值、最小值,还有一些乘法器

我很确定您要使用的混合模式无法在此系统中实现。叠加需要一个可能无法解决的条件,而色相和饱和度需要一个根本无法完成的 HSV 转换。

所以答案是——正如你所说——创建一个以两个纹理作为输入的着色器,并使用您的自定义混合模式将它们组合起来。如果您想在整个场景上应用此效果,您将需要使用渲染目标将场景渲染为可用作着色器输入的纹理。

于 2010-12-31T03:08:11.633 回答