Direct3D9和DirectDshow的RGB位图

今天遇到位图格式问题,经过亲自验证,得到以下结论:


  对于Direct3D9的D3DFMT_A8R8G8B8纹理:

    按照字节顺序,每个像素的组成是:B1,G1,R1,A1,B2,G2,R2,A2 。。。

    对应PShader的float4的话,R对应X,G对应Y,B对应Z,A对应W


  对于Direct3D9的D3DFMT_X8R8G8B8纹理:

    按照字节顺序,每个像素的组成是:B1,G1,R1,?1,B2,G2,R2,?2 。。。

    对应PShader的float4的话,R对应X,G对应Y,B对应Z,?对应W


  对于DirectShow的MediaSubType_ARGB32帧:

    按照字节顺序,每个像素的组成是:B1,G1,R1,A1,B2,G2,R2,A2 。。。

    (和D3DFMT_A8R8G8B8一样)


  对于DirectShow的MediaSubType_RGB32帧:

    按照字节顺序,每个像素的组成是:B1,G1,R1,?1,B2,G2,R2,?2 。。。 

    (和D3DFMT_X8R8G8B8一样)


  对于DirectShow的MediaSubType_YUYV帧:

    按照字节顺序,两个像素的组成是:Y1,U12,Y2,V12,Y3,U34,Y4,V34 。。。

    (注意了,ARGB格式是BGRA字节次序,YUYV格式是YUYV字节次序)


总结以上的各项,凡是RGB色系的位图,都是按照从高位到低位的次序来描述,

    凡是YUV色系的位图,都是按照字节从开始到结束的次序来描述,正好相反,

    到了Shader里面,像素的字节次序从BGRA变成RGBA了(至少AMD显卡是这样);


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值