首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

HLSL的有关问题

2012-03-16 
HLSL的问题有个BasicHLSL的例子(网上到处都是),编译没有任何问题,但是执行exe时总是出错。最后偶然将D3DXCo

HLSL的问题
有个BasicHLSL的例子(网上到处都是),编译没有任何问题,但是执行exe时总是出错。
最后偶然将
D3DXCompileShaderFromFile("BasicHLSL.txt",0,0,"SetColor","vs_3_0",D3DXSHADER_DEBUG,&shaderBuffer,&errorBuffer,&BasicConstTable)
参数改为D3DXSHADER_USE_LEGACY_D3DX9_31_DLL,就没有问题了,请问这是为什么?

另,创建D3D设备时用D3DCREATE_SOFTWARE_VERTEXPROCESSING,shader才能正常工作,一旦设置成D3DCREATE_HARDWARE_VERTEXPROCESSING,shader貌似就不能工作了,屏幕上空空如也,这又是为什么(我的电脑肯定是支持硬件顶点处理的)?

[解决办法]
2009年有几个版本的D3D SDK,里面带的HLSL编译器是基于DX10/11的,在编译DX9的HLSL的时候会有一些兼容性问题,加上D3DXSHADER_USE_LEGACY_D3DX9_31_DLL标志以后,系统会使用d3dx9_31.dll中的编译器去编译DX9 HLSL,就没有兼容性问题了。

第二个问题,可能你的显卡不是硬件支持DX9.0C,你可以试着把VS_3_0改成VS_2_0试试。

热点排行