【问题标题】:apply color saturation on the entire renderer在整个渲染器上应用颜色饱和度
【发布时间】:2012-10-04 01:51:49
【问题描述】:

我想在整个最终渲染器上应用颜色饱和度。

有没有不使用着色器的简单方法? 我对 DirectX 一无所知:x

我在 spriteBatch.Begin() 中看到了一个“效果”参数,但我没有找到任何关于它的教程:s

希望你能指导我。

【问题讨论】:

  • Effect 是一个着色器。
  • @andrew Q1:着色器是指“DirectX 的影响”吗? Q2:那么,对于这个基本效果,我必须用 DirectX 编码吗? :( 害怕
  • 着色器代码是用 HLSL 编写的。这不是太难。你不需要搞乱 DirectX。查看此示例:xbox.create.msdn.com/en-US/education/catalog/sample/…

标签: xna xna-4.0 effect spritebatch


【解决方案1】:

你需要一个着色器。着色器是Effect

您可以通过右键单击内容项目、单击“添加新项目”并选择“效果”文件来创建新效果。生成的 .fx 文件采用 HLSL 语言。它将由内容管道编译,然后加载:

Effect myEffect = Content.Load<Effect>("myEffect");

有一个official example of how to use effects with SpriteBatch here(如果你想要de饱和度,里面有一个例子)。 this blog post 也可能有用。

我不会在这里重现饱和效果的代码,但您可以通过 Google 找到几个示例。 Here is one example on the GameDev site.

【讨论】:

  • 我修改了着色器示例以遵循我的代码逻辑。 (确实,正如您所说,这并不难)它有效。像往常一样,非常感谢安德鲁。
猜你喜欢
  • 2022-12-30
  • 2016-09-25
  • 2011-05-17
  • 2011-01-23
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2017-12-26
  • 2020-10-29
相关资源
最近更新 更多