本系列文章由zhmxy555(毛星云)编写,转载请注明出处。
文章链接: http://blog.csdn.net/zhmxy555/article/details/8276363
作者:毛星云(浅墨) 邮箱: happylifemxy@163.com
------------------------------------------------------------------------------------------------------------------------------
浅墨历时一年为游戏编程爱好者锻造的入门宝典:《逐梦旅程:Windows游戏编程之从零开始》
如果你喜欢浅墨写的【Visual C++】游戏开发系列博客文章,那么你一定会爱上这本书。
这是浅墨专门为热爱游戏编程的朋友们写的入门级游戏编程宝典。
------------------------------------------------------------------------------------------------------------------------------
顶点永远是3D图形学中不可或缺的元素。这篇文章里我们首先对3D世界里的一些概念和常识进行了阐述,然后详细剖析了顶点缓存相关的知识点,最后依旧是放出一个详细注释的顶点缓存绘制图形Demo的源代码将所学的知识融会贯通,并提供了源代码的下载。
一、引言
在计算机所描绘的3D世界中,所有的物体模型(如树木,人物,山峦)都是通过多边形网格来逼近表示的,这些多边形可以是三角形,也可以是四边形。所以我们这样说,多边形网格是构成物体模型的基本单元。
下面我们先来看一组图片 :
哈哈,是不是被第一幅图萌到了呢?
然后,是不是被第二幅图吓到了呢?
然而,这就是事物的真相,真相往往是残酷的。
通过两幅图的对比我们可以明显地看到,这个可爱的萝莉模型其实是就是无数的三角形和四边形网格构成的。首先我们用这些网格勾勒出了可爱萝莉的轮廓,然后在网格轮廓的表面“依附”上相应的图片。这样,栩栩如生的萝莉模型就完成了。
三角形作为最简单的多边形,在3D世界中的地位显然不可小觑。在Direct3D中,我们经常使用三角形来描述物体模型。
需要指出的是,任何物体都可以用三角形网格来逼近表示,三角形网格是构建物体模型的基本单元。
众所周知,一个三角形有三个顶点,为了能够通过大量的三角形组成三角形网格来描述物体,首先需要定义好三角形的顶点(Vertex),三个顶点确定一个三角形,而顶点除了定义每个顶点的坐标位置以外,还含有颜色等其他属性。
这样一说我们就可以发现,其实任何物体模型的最基本组成单元,其实是顶点。
这篇文章里,我们就来一起探究一下如何通过顶点的定义以及使用,玩转Direct3D,随心所欲地绘制出简单的几何体。
二、顶点缓存使用四步曲
Ⅰ.基础知识
在Direct3D中,顶点的具体表现形式是顶点缓存(Vertex Buffer),顶点缓存保存了顶点数据的内存空间。顶点缓存的存储位置比较随意,既可以在内存中,也可以在显卡的显存中。
我们前面已经给大家灌输了这样一个概念,所有物体都可以由三角形来表示。这就表明了,如果想在Direct3D之中手动创建物体的话,就需要创建构成物体的所有顶点结构。当Direct3D绘制图形时,将根据这些顶点结构创建一个三角形列表,来描述物体的形状和轮廓。
为了讲解清楚顶点缓存的使用方法,下面我们来看这样一个例子:
在图中,我们用四个顶点组成了一个正方形,这四个顶点分别是v0,v1,v2,v3为了正确描述这个正方形,我们需要根据这四个顶点创建两个三角形△v0v1v2 ,和 △ v0v2v3,而这两个三角形的顶点数据,会依次保存在顶点缓存中。
【Visual C++】游戏开发笔记三十六 浅墨DirectX提高班之四 顶点缓存的逆袭
最新推荐文章于 2022-02-09 13:09:13 发布
本文介绍了3D图形学中顶点的重要性和在Direct3D中如何使用顶点缓存来绘制图形。文章详细阐述了顶点缓存的概念,包括设计顶点缓存、创建顶点缓存、访问顶点缓存和绘制图形的四步曲。通过实例演示了如何定义灵活顶点格式、创建和操作顶点缓存,以及如何使用DrawPrimitive方法绘制图形。
摘要由CSDN通过智能技术生成