【Visual C++】游戏开发笔记三十六 浅墨DirectX提高班之四 顶点缓存的逆袭

 

 

本系列文章由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,而这两个三角形的顶点数据,会依次保存在顶点缓存中。

  • 53
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 72
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值