posts - 25,  comments - 21,  trackbacks - 0

写个最简单的shader,显示solid color的物体,只需要坐标和颜色,在app层用0xaarrggbb 32位格式,在CreateVertexDeclaration里没有使用D3DDECLTYPE_D3DCOLOR 而是用了D3DDECLTYPE_UBYTE4N ,结果是r跟b调了个位置,实在不解,后来仔细查看sdk,发现

D3DDECLTYPE_D3DCOLOR
Four-component, packed, unsigned bytes mapped to 0 to 1 range. Input is a D3DCOLOR and is expanded to RGBA order.

原来对于D3DDECLTYPE_D3DCOLOR,驱动自动帮忙转换成rgba,从低到高排列,也就是shader得到的参数float4(r,g,b,a),完全正确,而对于D3DDECLTYPE_UBYTE4N ,直接将我的32bit的0xaarrggbb理解为,x86平台little endian格式,从低到高位理解为float(b,g,r,a),结果就是,b跟r调了个位置。哈哈。。。

posted on 2007-11-07 09:11 Sherk 阅读(1189) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。
<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(3)

随笔档案

相册

好友

搜索

  •  

最新评论

阅读排行榜

评论排行榜