directx函数大全.docx
- 文档编号:18217794
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:91
- 大小:39.09KB
directx函数大全.docx
《directx函数大全.docx》由会员分享,可在线阅读,更多相关《directx函数大全.docx(91页珍藏版)》请在冰点文库上搜索。
directx函数大全
1
网络游戏开发—DirectX
函数归纳总结
23003
李翔李
森
2
DirectX
目录
1.D3D基本框架....................................1
创建D3D对象....................................................2
获取显卡显示模式.................................................2
创建D3D设备接口.................................................2
开始渲染和结束渲染................................................2
清空图形绘制区...................................................2
屏幕反转........................................................2
2.绘制基本图形....................................1
绘制基本图形.......................................4
灵活定点格式(FVF)...............................................2
基本图元的绘制....................................................2
创建顶点缓冲区....................................................2
基本图元的绘制....................................................2
保存顶点.........................................................2
设置渲染状态......................................................2
图形绘制.........................................................2
索引缓冲..........................................4
顶点设置..........................................2
创建索引缓冲区......................................2
保存顶点索引值......................................2
索引图形绘制........................................2
D3D中的图形学......................................4
D3D中的向量........................................2
D3D中的矩阵........................................2
D3D中的平面........................................2
3
D3D中的射线........................................2
D3D中的图形变换......................................2
3.纹理.........................................4
从磁盘文件获取纹理.................................................2
设置当前要渲染的纹理...............................................2
设置纹理的渲染状态....................................2
设置纹理采样属性.....................................2
从一张纹理图形中生成多级纹理..............................2
包装纹理寻址......................................................2
镜像纹理寻址......................................................2
夹取纹理寻址......................................................2
边框颜色纹理寻址..................................................2
一次镜像纹理寻址..................................................2
纹理包装.........................................................2
4.光照..........................................4
D3D光照的基本实现....................................4
顶点格式..........................................2
设置物体材质........................................2
添加光源..........................................2
激活光照运算........................................2
5.摄像机........................................4
生成视图变换矩阵..................................................2
生成投影变换矩阵..................................................2
6.模型基础......................................4
ID3DXMesh接口基础................................................2
ID3DXMesh接口相关................................................2
应用.X文件.......................................................2
7.游戏中的基本特效...............................4
4
检查硬件支持的深度缓冲区格式..............................2
激活深度测试........................................2
设置深度缓冲区更新....................................2
设置深度测试函数.....................................2
激活Alpha混合......................................2
设置Alpha混合计算方式.................................2
设置Alpha混合系数...................................2
激活Alpha测试......................................2
设置Alpha测试参考值..................................2
设置Alpha测试函数...................................2
多边形填充模式......................................2
查询设备是否支持多重采样................................2
启用多重采样的全景图形反锯齿..............................2
设置多纹理混合方式....................................2
激活雾化..........................................2
设置雾化计算方式.....................................2
设置雾的颜色........................................2
设置雾的起始范围.....................................2
指数雾化浓度........................................2
基于发散的雾化......................................2
创建2D字体........................................2
绘制字体..........................................2
5
创建3D文字网格......................................2
8.
游戏控制.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
DirectInput实现键盘控制
................................................................2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
DirectInput实现鼠标控制
................................................................2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
鼠标键选
................................................................2
9.游戏音乐音效....................................4
6
D3D
基本框架
创建D3D
对象:
Direct3DCreate9(D3D_SDK_VERSION)
=================================================================
==============
DirectX
=================================================================
==============
获取显卡显示模式:
HRESULTGetAdapterDisplayMode(
UINTAdapter,//指定显示卡序列号
D3DDISPLAYMODE*pMode//存储显示模式的指针
);
=================================================================
==============
DirectX
=================================================================
==============
创建D3D
设备接口:
HRESULTCreateDevice(
UINTAdapter,//显卡序列号
D3DDEVTYPEDeviceType,//D3D设备类型
HWNDhFocusWindow,//所属窗口句柄
DWORDBehaviorFlags,//设备进行3D运算
方式
D3DPRESENT_PARAMETERS*pPresentationParameters,//用于存储D3D设
备相关信息的指针
IDirect3DDevice9**ppReturnedDeviceInterface//返回
D3D设备接口指针的地址
);
第二个参数DeviceType取值:
D3DDEVTYPE_HAL//硬件抽象层,通过显示硬件来完成图形渲染工作
D3DDEVTYPE_REF//参考光栅器,一般用于测试显卡不支持的
D3D功能
D3DDEVTYPE_SW//用于支持第三方软件
第四个参数BehaviorFlags取值:
D3DCREATE_SOFTWARE_VERTEXPROCESSING//由D3D软件进行顶点运算(常用)
D3DCREATE_FPU_PRESERVE//激活双精度浮点运算或浮点运算异常
检测,设置该项会降低系统性能
D3DCREATE_MULTITHREADED//保___________d+_证D3D是多线程安全的,设置该项
会降低系统性能
7
D3DCREATE_MIXED_VERTEXPROCESSING//由混合方式进行顶点运算
D3DCREATE_HARDWARE_VERTEXPROCESSING//由D3D硬件进行顶点运算
D3DCREATE_PUREDEVICE//禁用D3D的Get*()函数,禁止D3D
使用虚拟设备模拟顶点运算
=================================================================
==============
DirectX
=================================================================
==============
开始渲染和结束渲染:
BeginScene();//开始渲染
……
实际的渲染工作
……
EndScene();//结束渲染
注意:
这两个函数必须成对出现,不允许交错和嵌套的发生,实际的渲染工作在这两个函数的
中间进行。
=================================================================
==============
DirectX
=================================================================
==============
清空图形绘制区:
HRESULTClear(
DWORDCount,//清除的矩形区域数量
constD3DRECT*pRects,//清除的矩形区域数组指针
DWORDFlags,//清除的缓冲区标志,指定清除哪一个缓
冲区
D3DCOLORColor,//清除后重置的颜色
floatZ,//清除后重置的深度值,从0-1.0
DWORDStencil//重置的模板值
);
第三个参数Flags取值(可任意组合):
D3DCLEAR_STENCIL//模板缓冲区
D3DCLEAR_TARGET//颜色缓冲区
D3DCLEAR_ZBUFFER//深度缓冲区
=================================================================
==============
DirectX
=================================================================
==============
屏幕反转:
8
HRESULTPresent(
CONSTRECT*pSourceRect,//复制源的矩形区域指针
CONSTRECT*pDestRect,//复制目的地的矩形区域指针
HWNDhDestWindowOverride,//D3D设备窗口句柄
CONSTRGNDATA*pDirtyRegion//最小更新区域指针
);
注意:
除非D3D的交换链是用D3DSWAPEFFECT_COPY的标志创建,在大多数的情况下,此
函数的各个参数都设置为NULL。
=================================================================
==============
DirectX
=================================================================
==============
绘制基本图形
灵活定点格式(FVF
)
D3D定义的FVF格式:
D3DFVF_XYZ//包含未经变换的顶点坐标
D3DFVF_XYZRHW//包含经过变换的顶点坐标
D3DFVF_XYZW//包含经过变换和裁剪的顶点坐标
D3DFVF_NORMAL//包含法线信息
D3DFVF_PSIZE//点精灵的大小
D3DFVF_DIFFUSE//包含漫反射的颜色信息
D3DFVF_SPECULAR//包含镜面反射的颜色信息
D3DFVF_TEX0……D3DFVF_TEX8//包含0-8个纹理坐标信息
D3DFVF_XYZB1……D3DFVF_XYZB5//包含顶点位置信息和影响顶点变换的权重信
息,用于骨骼动画模型中
根据D3D提供的灵活顶点格式,就可以定义自己的顶点结构体,例如,定义一个包含
经过变换的坐标信息和漫反射颜色信息的顶点结构如下:
//创建顶点对象
LPDIRECT3DVERTEXBUFFER9g_pVB=NULL;//顶点缓冲区对象
//自定义顶点格式
structCUSTOMVERTEX
{
FLOATx,y,z,rhw;//经过变换的三维坐标
DWORDcolor;//顶点漫反射颜色
};
#defineD3DFVF_CUSTOMVERTEX(D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
//以下函数设置顶点数据
CUSTOMVERTEXvertices[]=
{
9
{100.0f,400.0f,0.5f,1.0f,0xffff0000,},
{300.0f,50.0f,0.5f,1.0f,0xff00ff00,},
{500.0f,400.0f,0.5f,1.0f,0xff0000ff,},
};
=================================================================
==============
DirectX
=================================================================
==============
基本图元的绘制
HRESULT
(
D3DPRIMITIVETYPEPrimitiveType,//基本图元类型
UINTStartVertex,//起始顶点
UINTPrimitiveCount//绘制图元的数量
);
第一个参数PrimitiveType取值:
D3DPT_POINTLIST//点列集合(一组点的集合)
D3DPT_LINELIST//线列集合(一组线段的集合)
D3DPT_LINESTRIP//线带集合(首尾相连的线段的集合)
D3DPT_TRIANGLELIST//三角形列(一组三角形的集合)
D3DPT_TRIANGLESTRIP//三角形带(首尾相连的三角形,有两个顶点重
合)
D3DPT_TRIANGLEFAN//三角形扇(组成扇形的一组三角形)
=================================================================
==============
DirectX
=================================================================
==============
创建顶点缓冲区
HRESULTCreateVertexBuffer(
UINTLength,//顶点缓冲区的大小,按字节数算
DWORDUsage,//顶点缓冲区属性
DWORDFVF,//灵活顶点格式
D3DPOOLPool,//顶点缓冲区的内存类型
IDirect3DVertexBuffer9**ppVertexBuffer,//顶点缓冲区指针地址
HANDLE*pSharedHandle//保留参数,置为0
);
*Usage:
参数Usage用于指定顶点缓冲区的属性,其取值可以设为0,或下面任意值的组合。
D3DUSAGE_WRITEONLY//只写属性,不能进行读操作,设置该属性可以提高系统性能
D3DUSAGE_DYNAMIC//指定顶点缓冲区要求使用动态内存
D3DUSAGE_NPATCHES//使用顶点缓冲区绘制N-patches曲线
D3DUSAGE_POINTS//指定顶点缓冲区存储原始点
D3DUSAGE_RTPATCHES//使用顶点缓冲区绘制高阶图元(high-orderprimitive)
10
D3DUSAGE_SOFTWAREPROCESSING//使用软件进行顶点运算,否则使用硬件计算
*Pool:
参数Pool属于枚举类型D3DPOOL,指定顶点缓冲区资源的内存位置,如下:
typedefenum_D3DPOOL{
D3DPOOL_DEFAULT
=
0,
//
默认值,顶点缓冲区尽可能存在于显存中
D3DPOOL_MANAGED
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- directx 函数 大全