1
4
我也处在同样的位置,在疯狂地搜索了使用D3DX11CreateEffectFromMemory的最简单的示例之后,我也得出了这样的结论:支持.fx文件并不是他们的最高优先级。尽管奇怪的是他们添加了EffectGroup概念,这是11的新概念,如果他们不想让我们使用它的话。 我已经对新的反射API做了一点介绍,所以看起来很容易把你自己的函数拼凑在一起设置变量等,本质上是创建你自己的效果类,下一步就是看看它们对通过API创建渲染状态块的支持。能够直接在.fx文件中编辑这些内容非常好,所以希望类似的内容仍然存在(或者,最坏的情况下,我可以从Effect11代码中删除这部分内容)。 |
2
5
许多专业游戏和图形开发人员不使用Direct3D中的效果界面,许多主流游戏引擎也不使用它们。相反,自定义材质/效果子系统构建在较低级别的着色器和图形状态管理设施之上。这使得开发人员可以通过一个公共的资产管理管道来实现Direct3D和OpenGL的目标。 |
3
4
主要问题是,HLSL编译器团队不赞成使用fx_5_0概要文件来编译带有所需元数据的Effects 11着色器。运行时是 shared-source ,但编译器不是。在最新的D3DCompiler(#47)中,它会发出一个警告。在DirectX 11.1和11.2中,fx_5_0从未针对某些较新的语言特性进行过更新,但在Direct3D 11中“按原样”工作。 从技术上讲 由于D3DCompile#47是操作系统的一部分,并且包含对fx#5#0的“已弃用/原样”编译器支持,因此现在可以将Effects 11与Windows应用商店应用程序(适用于Windows 8.1和Windows phone 8.1)一起使用,但不鼓励使用此功能。 大部分DirectX SDK示例和所有Windows应用商店示例都避免使用Effects 11 GitHub 所以简而言之,是的,你被劝阻使用它,但你仍然可以在目前,如果你可以接受免责声明。 |
4
1
DirectX SDK中提供了一个effect运行时作为示例,它应该能够帮助您使用.fx文件。 检查目录:%DXSDK\u DIR%\Samples\C++\Effects11 |