DirectX9.0 着色

 一.颜色表示:
RGB,这三个分量的加性混合additive mixing 决定了最终的颜色
RGB数据可用两种不同的结构来保存,第一种是D3DCOLOR,它实际上与DWORD类型完全相同(由关键字typedf 定义),共有32位.
D3DCOLOR_ARGB宏帮助我们完成D3DCOLOR类型的位运算.
D3DCOLOR_XRGB是表示没有alpha参数的D3DCOLOR_ARGB
D3DCOLOR包含了一系列的重载运算
    const D3DXCOLOR     WHITE( D3DCOLOR_XRGB(255, 255, 255) );
    const D3DXCOLOR     BLACK( D3DCOLOR_XRGB( 0, 0, 0) );


二.顶点颜色
图元的颜色由构成该图元的顶点的颜色所决定,
struct ColorVertex {
    float x, y, z;
    D3DCOLOR color;
    static const DWORD FVF;
}

const DWORD ColorVertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;
以上为灵活顶点格式

 

 

三.着色:
着色规定了如何利用顶点的颜色来计算构成图元的像素的颜色.
平面着色flat shading  : 只使用图元第一个顶点所指定的颜色     
平滑Gourand shading :图元中各像素的颜色值由各顶点的颜色经线性插值得到
设置着色的状态机:
device->SetRendState(D3DRS_SHADEMODE, D3DSHADE_FLAT)
device->SetRendState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD)


四.着色的几个要点:
 m_pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
 m_pDevice->SetRenderState(D3DRS_LIGHTING, false);

 

五.代码

http://download.csdn.net/source/1844097

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值