【问题标题】:Using Pixel Shader 3.0 in directx在 directx 中使用 Pixel Shader 3.0
【发布时间】:2011-11-11 03:38:46
【问题描述】:

我正在使用使用 directX 的 WPF 应用程序。我需要使用 Pixel Shader 3.0 实现一些效果。由于 Pixle Shader 2.0 的指令集数量限制,我无法使用 Pixel Shader 2.0。谁能告诉我如何将 Pixel Shader 3.0 与 directX 一起使用。任何帮助都会很有价值。

提前致谢。

【问题讨论】:

  • 你试过什么?你在哪里卡住?你在谷歌上搜索过答案吗?
  • 嗨尼克,我正在尝试使用像素着色器实现复杂的效果。我的问题是 PS 2.0 版指令集的限制。由于我的效果需要更多说明,所以我不得不使用 PS 3.0。现在的问题是我无法使用指定 ps_3_0 的 .fx 文件。 directX 绘图似乎不适用于该 .fx 文件。我需要一些关于如何将 .fx 文件与 PS 3.0 和 directX 一起使用的帮助。

标签: wpf .net-4.0 directx pixel-shader


【解决方案1】:

通常,您会将像素着色器指定为 .fx 文件的一部分。在这种情况下,您只需使用正确的模型标记着色器,即类似

technique main
{
    pass
    {
        PixelShader = compile ps_3_0 myShader();
    }
}

注意到那里的ps_3_0了吗?这就是您指定着色器模型的方式。

如果这不是您指定着色器的方式,请扩展您的问题,详细说明您在做什么,什么是有效的,什么无效。

[编辑] 有关 ps_3_0 着色器的示例,请参阅 DirectX SDK 中的 Parrallax Occlusion Mapping 示例。 “RenderSceneWithPOM”技术就是一个很好的例子。

【讨论】:

  • 嗨,保罗。谢谢回答我的问题。我知道我们可以像您建议的那样指定像素着色器版本 3.0,但问题在于将此 .fx 文件与 directX 一起使用。当我尝试使用指定 ps_3_0 的 .fx 文件应用效果时,绘图似乎不起作用。我想有一些不同的方式使用带有directX的像素着色器3.0版。为了让自己清楚,我用 ps_3_0 编写了一个 .fx 文件,问题是用 directX 实现效果。如果您能提供一些可以帮助我的样本,那将非常有帮助。
  • 使用 ps_3_0 着色器不需要什么特别的东西,它可以用 fxc 正确编译吗?你的硬件是什么样的,可能是你正在运行英特尔 GMA 卡或其他无法处理 ps2.0 之上的任何东西的内置东西吗?
  • 是的,我可以使用 Shazzam 编译我的文件。我的硬件也支持 PS 3.0。
猜你喜欢
  • 2015-06-17
  • 1970-01-01
  • 1970-01-01
  • 2015-09-15
  • 1970-01-01
  • 2010-12-18
  • 1970-01-01
  • 2015-05-12
  • 1970-01-01
相关资源
最近更新 更多