疑難雜症備忘: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文檔】

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章