*.hlsl文件是干什么的,这个文件和*.fx文件有什么关系?
What does *.hlsl files do, what the relationship between this file and *.fx file?
我正在阅读 DirectX 项目的示例,我看到了 *.fx
和 *.hlsl
文件。
我知道fx
是DirectX读取的效果文件,但是hlsl
文件的作用是什么?这些文件有用吗?
.hlsl 文件包含着色器及其包含。 .fx 效果系统已弃用,不再包含在 DirectX SDK 中。
历史上 fx
包含使用 Effects 系统语法(technique
、pass
等)的着色器,而 hlsl
包含没有 Effects 系统语法的纯 HLSL 着色器。
然而,这纯粹是一种约定,实际上并没有得到特别一致的遵守。最后,重要的是您使用什么配置文件来编译文件。 VS 2012+ 将同样对待 fx
或 hlsl
文件(即,作为您使用 FXC 构建的文件)。
Direct3D 11 的最新效果在 CodePlex and GitHub 上可用,但对 fx_5_0
配置文件的编译器支持已正式弃用。它仍然有效,但它有一些已知问题,可能会在未来的某个时候被删除。
在 Effects 11 项目网站上查看此讨论帖:What's the difference between an .fx and .hlsl file anyhow?
我正在阅读 DirectX 项目的示例,我看到了 *.fx
和 *.hlsl
文件。
我知道fx
是DirectX读取的效果文件,但是hlsl
文件的作用是什么?这些文件有用吗?
.hlsl 文件包含着色器及其包含。 .fx 效果系统已弃用,不再包含在 DirectX SDK 中。
历史上 fx
包含使用 Effects 系统语法(technique
、pass
等)的着色器,而 hlsl
包含没有 Effects 系统语法的纯 HLSL 着色器。
然而,这纯粹是一种约定,实际上并没有得到特别一致的遵守。最后,重要的是您使用什么配置文件来编译文件。 VS 2012+ 将同样对待 fx
或 hlsl
文件(即,作为您使用 FXC 构建的文件)。
Direct3D 11 的最新效果在 CodePlex and GitHub 上可用,但对 fx_5_0
配置文件的编译器支持已正式弃用。它仍然有效,但它有一些已知问题,可能会在未来的某个时候被删除。
在 Effects 11 项目网站上查看此讨论帖:What's the difference between an .fx and .hlsl file anyhow?