首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Direct3D11着色器编译标志问题

Direct3D11着色器编译标志问题
EN

Stack Overflow用户
提问于 2021-02-21 23:46:27
回答 1查看 105关注 0票数 -1

我正在读一本书,作者是Frank Luna用DirectX 11进行3D游戏编程。

我用的是D3DX11CompileFromFileW()函数编译带有标志的着色器(D3D10_着色器_调试| D3D10_着色器_跳过_优化)

它在工作,但在新项目和一些更高级的程序中,尽管项目编译时没有错误,但它不显示对象。

在做了很多工作之后,我意识到如果我使用了flag

(D3D10_着色器_调试)或者只是

(D3D10_着色器_跳过_优化)

它可以正常工作,但当我或它们一起工作时,它就不能工作了

(即D3D10_着色器_调试| D3D10_着色器_跳过_优化)

我也尝试过fxc编译器,也遇到了同样的问题。有没有什么解决方案可以一起使用这两个标志,或者我可以只使用其中的一个(我在很多项目中都一起使用过,但最近没有。这本书也同时使用它们)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-26 02:34:04

您应该尝试的第一件事是使用D3DCompiler API而不是使用过时的D3DX11“包装器”。目前您使用的是HLSL编译器2010年6月发布的"#43“版本,自那以来已经修复了许多错误。Windows10SDK提供了"#47“版本的HLSL编译器。

请注意,在VS2012或更高版本中,您需要使用一些特殊的设置来确保您的include/lib路径是正确的,以便将传统的Windows与具有许多更新的、重叠的头文件的现代Windows10SDK混合在一起。请参见

微软[Microsoft Docs](https://docs.microsoft.com/en-us/windows/win32/directx-sdk--august-2009-) ..。

请参见博客[此博客post](https://walbourn.github.io/hlsl-fxc-and-d3dcompile/) 有关D3DCompile应用编程接口的更多信息。

弗兰克的书很棒,但它已经出版了之前DirectX SDK已弃用。请参见

博客[此博客post](https://walbourn.github.io/book-recommendations/) 获取相关注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66304084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档