|
|
需要在VertexShader里用到DisplaceMap,先用RenderToTarget生成这个Texture,但是创建Texture的时候出了问题,说是D3DERR_INVALIDCALL,我是在笔记本上作的,显卡8600M GS,支持DX10的,系统,用的April 2007的 SDK,DX9,硬件是支持DisplacementMap的,我下了nvedia的demo看过,能运行,SDK里只说在创建DisplaceMap时一定要用D3DUSAGE_DMAP,我也用了啊,到底是哪里出了问题呢,以下是我的代码,帮我看下原因,万分感激!!弄了一整天了也没解决, google上能找的资料都看过了也。。。
if( FAILED( pD3D->CheckDeviceFormat( pCaps->AdapterOrdinal, pCaps->DeviceType,//检测对顶点纹理格式的支持
AdapterFormat, D3DUSAGE_QUERY_VERTEXTEXTURE,
D3DRTYPE_TEXTURE, D3DFMT_A32B32G32R32F ) ) )
这一步能通过,说明格式没问题
下面是创建代码,通不过。。。
V(pd3dDevice->CreateTexture(512,512,
1,D3DUSAGE_RENDERTARGET &brvbarD3DUSAGE_DMAP,
D3DFMT_A32B32G32R32F,D3DPOOL_DEFAULT,
&g_DisplacementMap,
NULL)); |
|