绘制图元

使用Direct3D在屏幕上绘图的图元

计算机图形学中的图元是可以渲染到屏幕上的基本形状。

多边形被认为是图形,它是由直线构成的封闭区域。

Direct3D中在屏幕上绘制图元的方法:
第一种是使用指针将几何图形数据数组发送给某个Direct3D函数。流水线负责绘制每个对象的每一帧

第二种方法是在绘制几何图形时使用一种名为顶点缓存的结构。
顶点缓存是一个Direct3D对象,它可以按照Direct3D格式存储几何图形数据。

用Direct3D顶点缓存来存储和渲染几何图形数据

顶点缓存是LPDIRECT3DVERTEXBUFFER9类型的结构。
该结构是LDirect3DVertexBuffer9的指针。在创建顶点指针时,要将其和正确渲染对象所需的全部信息一起加载。顶点缓存并不包含顶点数据。它同样可以保存顶点颜色、方向以及显示对象所需的其他属性。

调用Direct3D对象设备的CreateVertexBuffer()函数可以创建顶点缓存。
//Direct3D对象和设备。
LPDIRECT3D9 g_D3D = NULL;
LPDIRECT3DDEVICE9 g_D3DDevice = NULL;

顶点缓冲区保存几何图形。
LPDIRECT3DVERTEXBUFFER9 g_VertexBuffer = NULL;

//我们自定义的FVF,它描述了我们自定义的顶点结构。
灵活顶点格式(FvF)Direct3D通过该标识符可以知道顶点(或点)结构格式。该结构指定了顶点的位置和颜色。

define D3DFVF_VERTEX (D3DFVF_XYZ| D3DFVF_DIFFUSE)

D3DFVF_XYZ是坐标
D3DFVF_DIFFUSE是颜色
还必须指定要处理包含坐标(D3DFVF_XYZ)和颜色(D3DFVF_DIFFUSE)的点的顶点格式。

InitializeObjects()函数用于创建演示程序中要绘制在屏幕上的物体。
也就是创建和设置全部要渲染的演示对象

顶点缓存用于保存要在屏幕上显示的几何图形数据。

由于该对象使用动态内存存储数据,所以在程序退出前必须在程序的某个地方释放它。这些内存中未释放的四处浮动的对象会产生很严重的内存泄漏问题。

创建顶点缓存保存数据。调用CreateVertexBuffer()函数可以创建顶点缓存。

一旦创建完顶点缓存,就可以将其渲染到屏幕上。调用演示程序中的RenderScene()函数可以完成渲染工作。

在消息循环过程中,WinMain()将调用RenderScene()函数。如果在消息循环过程中没有处理任何消息,WinMain()就会调用RenderScene()函数用要显示的新内容来更新屏幕。

posted @   MegaDataFlowers  阅读(115)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示