IDirect3DDevice9::CreateIndexBuffer

本文深入解析DirectX顶点缓冲区参数配置,包括长度、使用方式、FVF格式、内存池选择及输出指针等关键概念,帮助开发者优化3D图形与动画程序设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电子书《精通DirectX.3D图形与动画程序设计.王德才.pdf》p53

HRESULT CreateVertexBuffer(
  UINT Length,
  DWORD Usage,
  DWORD FVF,
  D3DPOOL Pool,
  IDirect3DVertexBuffer9** ppVertexBuffer,
  HANDLE* pSharedHandle
);

Length:
    指定缓冲区的大小,以字节为单位。

Usage:
    指定顶点缓冲区的属性,可以设置成0:
    D3DUSAGE_DONOTCLIP 禁用裁剪,表示顶点缓冲区的顶点不进行裁剪,当设置改属性时,渲染状态D3DRS_CLIPPING必须设置为FALSE
    D3DUSAGE_DYNMIC    顶点缓冲区使用动态内存(AGP memory)
    D3DUSAGE_NPATCHES 使用顶点缓冲区绘制N-patches曲线
    D3DUSAGE_POINTS    使用顶点缓冲区绘制点
    D3DUSAGE_RTPATCHES 使用顶点缓冲区绘制曲线
    D3DUSAGE_SOFTWAREPROCESSING    当设置该属性时,表示使用软件进行顶点计算,否则使用硬件进行顶点计算
    D3DUSAGE_WRITEONLY    只写属性,不能进行读操作,设置该属性可以提高系统性能
    
FVF:
    顶点缓冲区的顶点可以包含顶点坐标、颜色、法线方向、纹理坐标等,可以使用灵活顶点格式FVF(Flexible Vertex Format)进行描述
    D3DFVF_DIFFUSE    顶点数据中包含漫反射颜色值
    D3DFVF_NORMAL    顶点数据中包含法线向量,不能和D3DFVF_XYZRHW同时使用、
    D3DFVF_PSIZE    顶点信息执行绘制点的大小
    D3DFVF_SPECULAR    顶点数据中包含镜面反射颜色值
    D3DFVF_XYZ        顶点数据中包含未经坐标变换的顶点坐标,不能和D3DFVF_XYZRHW同时使用
    D3DFVF_XYZRHW    顶点数据中包含经过坐标变换的顶点坐标,不能和D3DFVF_NORMAL或D3DFVF_XYZ同时使用
    D3DFVF_XYZB1...
    D3DFVF_XYZB5    顶点数据中包含用于骨骼动画的顶点和顶点对骨骼的权重信息
    D3DFVF_XYZW        顶点数据中包含经过坐标变换的裁剪的顶点坐标,只可用于可编程顶点流水线
    D3DFVF_TEX0...
    D3DFVF_TEX1        顶点数据中包含0~8个纹理坐标,用于纹理绘制

Pool:
    指定顶点缓冲区的内存类型。我们采用的是D3DPOOL_DEFAULT,意思是顶点缓冲区尽可能存在显存中。其他参数详细请参见SDK文档。
    D3DPOOL_DEFAULT 顶点缓冲区尽可能存在于显存中
    D3DPOOL_MANAGED    由Direct3D系统自动调度顶点缓冲区内存类型(位于显存或计算机系统内存中)
    D3DPOOL_SYSTEMMEM    位于计算机系统内存中
    D3DPOOL_SCRATCH    位于计算机临时内存中,这种类型的顶点缓冲区不能直接用于渲染操作,只能进行内存加锁、复制操作
    
ppVertexBuffer:
    自己定义的IDirect3DVertexBuffer9的指针
    
pSharedHandle:
    它是一个保留的参数可以设置为NULL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值