02:顶点缓存和索引缓存 顶点缓存和索引缓存
一个顶点缓存是一个包含顶点数据的连续内存空间,.
在代码中,顶点缓存用接口IDirect3DVertexBuffer9表示,索引缓存用接口IDirect3DIndexBuufer9表示.
★创建顶点缓存
HRESULT IDirect3DDevice::CreateVertexBuffer(
UINT Length,
DWORD Usage,
DWORD FVF,
D3DPOOL Pool,
IDirect3DVertexBuffer9 ** ppVertexBuffer,
HANDLE *pSharedHandle
);
【参数说明】
■第一个参数,UINT类型的Length,表示顶点缓存的大小,以字节为单位
■第二个参数,DWORD类型的Usage,指定缓存的附加属性,该值可以为0,表示无需附加属性,或是以下标识的组合
缓存区属性
说明
D3DUSAGE_DYNAMIC
将缓存设为动态缓存
D3DUSAGE_POINTS
规定缓存将用于存储点图元
D3DUSAGE_SOFTWAREPROCESSING
指定软件顶点运算方式
D3DUSAGE_WRITEONLY
对缓存的操作模式为只写
■第三个参数,DWORD类型的FVF,指定存储在顶点缓存中顶点的灵活顶点格式
D3D中常见的FVF格式如下:
标识
说明
D3DFVF_XYZ
包含未经转换的顶点格坐标
D3DFVF_XYZRHW
包含经过转换的顶点坐标
D3DFVF_XYZW
包含经过转换和裁剪的顶点坐标
D3DFVF_XYZB1~5
包含用于骨骼动画的顶点和顶点对骨骼的权重信息
D3DFVF_DIFFUSE
包含漫反射信息
D3DFVF_NORMAL
包含法线信息
D3DFVF_PSIZE
指明绘制点的大小
D3DFVF_SPECULAR
包含镜面反射的信息
D3DFVF_TEX1~8
包含1~8个纹理坐标信息
■第四个参数,D3DPOOL枚举类型的Pool,用于指定存储顶点缓存或索引缓存的内存位置,在默认情况下位于显存
D3DPOOL枚举值如下:
枚举值
说明
D3DPOOL_DEFAULT
默认值,顶点缓存区尽可能存在显存中
D3DPOOL_MANAGED
由Direct3D自动调度顶点缓存区内存位置
D3DPOOL_SYSTEMMEN
顶点缓存位于系统内存中
D3DPOOL_SCRATCH
表示顶点缓冲区位于临时内存当中,这种类型的顶点缓存去不能直接进行渲染,只能进行内存加锁和复制的操作
D3DPOOL_FORCE_DWORD
强制编译为32位,不使用
■第五个参数,IDirect3DVertexBuffer**类型的ppVertexBuffer
■第六个参数,HANDLE*类型的pSharedHandle,保留参数,设为0
★创建索引缓存
HRESULT IDirect3DDevice9::CreateIndexBuffer(
UINT Length,
DWORD Usage,
D3DFORMAT Format,
D3DPOOL Pool,
IDire
02:顶点缓存和索引缓存 来自beplayapp体育下载www.apt-nc.com转载请标明出处.