DX9三种缓冲区

 DX9中有三种缓冲区,分别是颜色缓冲区,深度缓冲区,模板缓冲区。

 

1 三种缓冲区简介

颜色缓冲区:设置后备缓冲区的颜色,即背景的颜色。

深度缓冲区:即所说的Z缓冲,每一个待绘制的三角形都有一个Z值(0-1),DX会比较当前位置的两个图元的Z值,决定绘制那个图元,即是否用当前图元的颜色代替已有位置图元的颜色。

模板缓冲区:是一个记录每个像素信息的附加的缓冲区,很象一个 z 缓冲区。 实际上,该缓冲区就驻在 z 缓冲区的某些位中。常见的模板/z 缓冲区格式为 15 位的 z 和 1 位的模板,或 24 位的 z 和 8 位的模板。在描绘多边形时,可以针对每个像素,对模板的内容进行简单的算术操作。例如,可以增加或减少模板缓冲区,或在模板值没能通过一项简单的比较测试时,拒绝像素。可以将帧缓冲区的一个区域标出,然后只对标出(或未标出)的区域进行描绘,上述操作对于此类效果十分有用。各种体积效果就是很好的例子,比如阴影量。

 

 

2 深度缓冲区的使用

 d3dpp.EnableAutoDepthStencil = true;//打开深度缓冲区
 d3dpp.AutoDepthStencilFormat = D3DFMT_D16;//设置深度缓冲区的格式,具体参数设置可以查看文档

 

3 清空

g_pD3DDev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 255),1.0f, 0);

D3DCLEAR_TARGET:清空颜色缓冲区,并设置默认颜色为D3DCOLOR_XRGB(0, 0, 255)

D3DCLEAR_ZBUFFER:清空Z缓冲,并设置初值为1,即为最远

当然,还可以用D3DCLEAR_STENCIL清空模板缓冲区

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值