Directx中HLSL效果(Effect)的D3DXHANDLE
由于Directx的效果(ID3DXEffect)中已经封入了常量表,因此只要设置D3DXHANDLE就可以了。
不过偶然下看到不设置D3DXHANDLE,直接写变量名的做法居然也可以通过。
例:
标准做法:
mhWVP = mFX->GetParameterByName(0, "gWVP");
mFX->SetMatrix(mhWVP, &(mWorld*mView*mProj));
直接写HLSL侧全局变量做法:
g_pEffect->SetMatrix( "gWVP", &(mWorld*mView*mProj));
后来查了DXSDK文档,发现在工程里的预编译项如果没有D3DXFX_LARGEADDRESS_HANDLE
就可以使用传参数名/传HANDLE两种方法。
官方文档地址:
https://docs.microsoft.com/zh-cn/windows/desktop/direct3d9/d3dxfx
虽然初始化一堆D3DXHANDLE比较麻烦,不过官方也注明了不使用D3DXHANDLE会比较慢。
所以还是老老实实用D3DXHANDLE比较好。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
