【问题标题】:Which shader file format should I use in HLSL?我应该在 HLSL 中使用哪种着色器文件格式?
【发布时间】:2015-10-22 02:05:07
【问题描述】:

我在VS2015(http://www.rastertek.com/dx11s2tut04.html)上阅读了这个DirectX 11教程,发现作者分别使用.vs文件和.ps文件分别编译了顶点和像素着色器。

我还发现,在“使用 DirectX 11 进行 3D 游戏编程”一书中,作者使用 .fx 文件来组织整本书的着色器。

我不知道我应该使用哪种方法来使用最新版本的 Windows SDK 开发我的 direct3D 程序?因为我听说将来可能会弃用 Effects11 框架。

【问题讨论】:

  • 查看 this thread 了解有关 Effects 11 'status' 的讨论

标签: directx-11 hlsl


【解决方案1】:

您应该避免对新项目使用fx 目标,而是选择按阶段编译。请注意,这与您是否将着色器代码实际放在单独的文件中无关,尽管每个着色器有一个 .vs.ps 是一种常见的约定。对效果配置文件(即fx_5_0)的完整 D3D11 支持已在最新 (Windows 10) 编译器中弃用,并且根本没有 fx_5_1(某些 功能需要着色器模型 5.1)。

【讨论】:

  • “每阶段编译”是什么意思?不加载预编译的效果文件,运行时编译?
  • @StefanAgartsson 编译?s_5_[0/1]中的每阶段编译,其中?vertex、pixel、geometry、hull、@987654334之一@omain,或compute。这与fx 配置文件形成对比,fx 配置文件用于将多个着色器阶段的组合封装为技术。编译仍应在构建时离线完成。
  • 也就是说,总是在构建时编译.fx?我真的不知道,除了 .fx 包含所有着色器而 .vs 或 .ps 描述单个着色器之外,这两者之间还有什么区别?
  • 请参阅this thread 以获取有关fxhlsl 文件的详细说明。
猜你喜欢
  • 1970-01-01
  • 2012-01-11
  • 2010-10-09
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
相关资源
最近更新 更多