疑难杂症备忘:GForce 440MX之顶点格式

来源:互联网 发布:比较好的网络推广平台 编辑:程序博客网 时间:2024/04/29 11:05

    引擎中的一些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文档】