疑難雜症備忘:GForce 440MX之頂點格式
引擎中的一些dynamic mesh在GForce 440MX上顯示不正常,draw call全都返回成功,DX沒有任何debug信息。經過仔細觀察,發現主要是貼圖座標不對。在確認了uv transform,uv index等都沒問題之後,開始懷疑頂點格式的問題。這些mesh都使用了下面這種頂點格式:
struct vert_ptd
{
vector3 pos;
vector2 uv;
DWORD diffuse;
};
把此頂點格式改爲:
struct vert_pdt
{
vector3 pos;
DWORD diffuse;
vector2 uv;
};
並相應的修改了vertex declaration之後顯示正常了——,@_@|||
初看上去有些詭異,仔細一想應該是由於GeForce MX440只支持fixed function pipeline的原因,因爲老的FVF對頂點元素是有順序要求的!看來如果想兼容老顯卡,在頂點格式方面必須小心啦!
【下圖來自dx8.1sdk文檔】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.