【发布时间】:2015-05-01 23:57:26
【问题描述】:
我正在阅读 DirectX 项目的示例,我看到了 *.fx 和 *.hlsl 文件。
我知道fx 是DirectX 读取的效果文件,但hlsl 文件的用途是什么?这些文件有用吗?
【问题讨论】:
标签: directx directx-11
我正在阅读 DirectX 项目的示例,我看到了 *.fx 和 *.hlsl 文件。
我知道fx 是DirectX 读取的效果文件,但hlsl 文件的用途是什么?这些文件有用吗?
【问题讨论】:
标签: directx directx-11
过去,fx 包含使用效果系统语法(technique、pass 等)的着色器,而 hlsl 包含没有效果系统语法的纯 HLSL 着色器。
然而,这纯粹是一种约定,实际上并没有特别一致地遵循。最后,重要的是您使用什么配置文件来编译文件。 VS 2012+ 将处理 fx 或 hlsl 文件相同(即作为您使用 FXC 构建的文件)。
最新的 Direct3D 11 效果在 CodePlex 和 GitHub 上可用,但对 fx_5_0 配置文件的编译器支持已正式弃用。它仍然有效,但存在许多已知问题,并且可能会在未来某个时候被删除。
在 Effects 11 项目网站上查看此讨论主题:What's the difference between an .fx and .hlsl file anyhow?
【讨论】: