Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Directx *.hlsl文件的作用是什么?此文件与*.fx文件之间的关系是什么?_Directx_Directx 11 - Fatal编程技术网

Directx *.hlsl文件的作用是什么?此文件与*.fx文件之间的关系是什么?

Directx *.hlsl文件的作用是什么?此文件与*.fx文件之间的关系是什么?,directx,directx-11,Directx,Directx 11,我正在阅读DirectX项目的一个示例,我看到了*.fx和*.hlsl文件 我知道fx是DirectX读取的效果文件,但hlsl文件的用途是什么?这些文件有用吗?.hlsl文件包含着色器及其包含项。fx效果系统已弃用,不再包含在DirectX SDK中。从历史上看,fx包含使用效果系统语法的着色器(技术,传递等),而hlsl包含没有效果系统语法的纯hlsl着色器 然而,这纯粹是一种惯例,实际上并没有得到特别一致的遵守。最后,重要的是使用什么配置文件来编译文件。VS 2012+将把fx或hlsl文

我正在阅读DirectX项目的一个示例,我看到了
*.fx
*.hlsl
文件


我知道
fx
是DirectX读取的效果文件,但
hlsl
文件的用途是什么?这些文件有用吗?

.hlsl文件包含着色器及其包含项。fx效果系统已弃用,不再包含在DirectX SDK中。

从历史上看,fx包含使用效果系统语法的着色器(
技术
传递
等),而
hlsl
包含没有效果系统语法的纯hlsl着色器

然而,这纯粹是一种惯例,实际上并没有得到特别一致的遵守。最后,重要的是使用什么配置文件来编译文件。VS 2012+将把
fx
hlsl
文件视为相同的文件(即,与使用FXC构建的文件相同)

Direct3D 11的最新效果在和上提供,但编译器对
fx_5_0
配置文件的支持已被正式弃用。它仍然有效,但它有许多已知的问题,可能会在将来的某个时候被删除


请参阅Effects 11 projects网站上的讨论主题:

DirectX SDK本身已被弃用。看看这个。