fxc的使用及shader调试技巧

本文详细介绍了如何使用fxc工具编译和调试DirectX shader,包括/D和/LD选项的使用,以及在VS2005中集成fxc的编译步骤。此外,还讲解了在编译时设置D3DXSHADER_DEBUG标志以进行有效的shader调试,以及使用PIX工具进行像素和顶点shader的调试方法。
摘要由CSDN通过智能技术生成

如果当前使用的版本是dx10的fxc,则当前fxc不支持ps_1_x的shader,在编译该类shader时需加上/Gec,fxc会自动的把ps_1_x版本的shader编译成ps_2_x的版本。当然该shader只能在支持shader2的机器上运行。

如果要使用传统版本的fxc即dx9下的fxc,这时要使用/LD,此时就支持ps_1_x到ps_3_x的所有的shader版本。

查看所有的编译选项请参考syntax。

 

下面的介绍简单的分析了如何在VS2005中加入fxc编译支持:

CompiledEffect分析

 

这个例子必须使用VisualStudio中编译后才能执行,直接运行Bin下的CompiledEffect.exe会提示找不到CompiledEffect.fxo文件。CompiledEffect.fxo文件CompiledEffect.fx编译后的文件。在VisualStudio中,右键选择CompiledEffect.fx,弹出菜单中选择属性,“自定义生成步骤”的命令行中,显示的是CompiledEffect.fxo的生成命令:
fxc /Od /Zi /Tfx_2_0 /Fo"$(ProjectDir)$(InputName).fxo" "$(InputPath)"
输出项中显示的是生成的文件名:
$(ProjectDir)$(inputName).fxo

fxc是effect文件的离线编译工具,是一命令行程序。位于“(SDK root)/Utilities/Bin/x86/”中,使用方法和相关编译选项参见SDK文档:DirectX Graphics/Tools/Effect-Compiler Tool。

使用已编译的文件创建ID3DXEffect对象时,是不能设置编译选项的。编译选项必须在使用fxc.exe编译CompiledEffect.fxo文件时,在fxc.exe的参数中设置。对于此程序,有三个生成配置:Debug,Debug Shader,Release,使用的参数是不相同的。
Debug:
fxc /Tfx_2_0 /Fo"$(ProjectDir)$(InputName).fxo" "$(InputPath)"
Release:
fxc /Tfx_2_0 /Fo"$(ProjectDir)$(InputName).fxo" "$(InputPath)"
Debug Shader:
fxc /Od /Zi /Tfx_2_0 /Fo"$(ProjectDir)$(InputName).fxo" "$(InputPath)"

其中选项:
/Od-不使用优化(Disable optimizations)
/Zi-允许调试信息(Enable debugging information)
/Tfx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值