初学Direct X(10)—— D3D基础预备知识

Posted 李雷还是要学英语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学Direct X(10)—— D3D基础预备知识相关的知识,希望对你有一定的参考价值。

初学Direct X(10) —— D3D基础预备知识

1. 像素格式

D3DFMT_X8R8G8B8(F)
X:未加使用
8:8位用于显示
B:用于显示蓝色
F:浮点像素类型

以下三个较为常用,使用其他之前务必验证显卡是否支持

D3DFMT_R8G8B8
D3DFMT_X8R8G8B8
D3DFMT_A8R8G8B8

2. 内存池

定义资源缓存的存储位置
可默认宏为:D3DPOOL_DEFAULT

3. 深度缓存

是只含有特定像素的深度信息而不含图像数据的表面,可用于判断物体的前后显示

D3DFMT_D24S8
D:深度信息
24:利用24保存深度信息
S:供模版使用

4. 顶点运算

进行顶点运算有软硬两种,最好用硬,因为这样可以不占用CPU资源

5. 查找设备是否符合性能

利用D3DCAPS9可以判断主显卡是否支持某些特性,比如是否支持顶点运算

 D3DCAPS9 caps;//检测图形设备的支持的特性
d3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps);

int vp = 0;//是否支持硬件顶点运算
if(caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) {
    vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
}
else {
    vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
}

6. 多重采样

常用于全屏反走样,缺点是开启后会显著降低程序的运行速度,D3D中使用D3DMULTISAMPLE_NONE进制多重采样,D3DMULTISAMPLE_1_SAMPLESD3DMULTISAMPLE_16_SAMPLES指定了1~16级的多重采样

7. COM

COM接口前都有前缀I

8.中间层

中间层有HAL(Hardware Abstraction Layer)和REL(Reference Rasterizer Device)D3D有的技术,但是显卡不支持,会使用REL,支持则使用HAL。

以上是关于初学Direct X(10)—— D3D基础预备知识的主要内容,如果未能解决你的问题,请参考以下文章

03. Initializing Direct3D 11

使用 D3D,我是不是需要在退出流程之前调用 release?

Direct3d 显示视频的一个问题

Direct3D驱动类型(DRIVER_TYPE)介绍

Direct3D 9 入门样例程序 圆锥体

转载D3D中的Texture应用示例