【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术 Direct3D渲染五步曲

               

 

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。  

文章链接: http://blog.youkuaiyun.com/zhmxy555/article/details/8223965

作者:毛星云(浅墨)    邮箱: happylifemxy@163.com    

 

 

------------------------------------------------------------------------------------------------------------------------------

浅墨历时一年为游戏编程爱好者锻造的著作:《逐梦旅程:Windows游戏编程之从零开始》

如果你喜欢浅墨写的【Visual C++】游戏开发系列博客文章,那么你一定会爱上这本书。

这是浅墨专门为热爱游戏编程的朋友们写的入门级游戏编程宝典。



------------------------------------------------------------------------------------------------------------------------------

这篇文章里,我们将迈出精通Direct3D的坚实步伐,先透彻理解Direct3D中动画显示方面的交换链技术的原理,然后看看GDI与Direct3D编程习惯的一些思想上的关联,接着简单学习Direct3D中二维文本的绘制方法,然后按照“五步曲”的思路,系统地学习Direct3D绘制的套路,且文章最后进行了相关源代码的赏析以及源代码的下载。看完这篇文章,也许你会豁然开朗,哦,原来Direct3D交换链技术可以这样来理解,原来Direct3D和GDI的编程套路其实差不多,原来Direct3D的绘制渲染过程是这样的按部就班,容易掌握。 需要说明的是,渲染过程暂时不考虑光照,矩阵变换等等,因为这是后面专门来展开细讲的内容。

 

 

由于文章比较长,浅墨依然在这里给大家配一个目录。这篇文章大体分为以下六个部分:

 

 

一、深入理解Direct3D动画显示技术——交换链:六道轮回

二、Direct3D中的“绘制金钥匙”——Direct3D设备接口

三、Direct3D中二维文本的绘制

四、起承转合的艺术——Direct3D渲染五步曲

Ⅰ.Direct3D渲染五步曲概述

Ⅱ. Direct3D渲染五步曲之一:清屏操作

Ⅲ.Direct3D渲染五步曲之二:开始绘制

Ⅳ. Direct3D渲染五步曲之三:正式绘制

Ⅴ. Direct3D渲染五步曲之四:结束绘制 

Ⅵ. Direct3D渲染五步曲之五:翻转显示

Ⅶ.Direct3D渲染五步曲代码整体赏析

五、获取每秒帧数(FPS)函数的写法

六、详细注释的源代码欣赏

 

 

 

 

 

 

一、深入理解Direct3D动画显示技术——交换链:六道轮回

 

 

Direct3D的工作模式与电影的播放原理类似。当播放电影图像时,影片图像以每秒24帧的速度连续地闪动,由于这些图像之间的差别很小,以及人眼的滞留作用,所以实际看到的就好像是连续的动作画面。

Direct3D中,使用了一种称作交换链(Pape Flipping)的技术,来让画面能够平滑的过渡。交换链由两个或者两个以上的表面组成,而每个表面都是存储着2D图形的一个线性数组,其中每个元素都表示着屏幕上的一个像素。

刚刚我们讲到的只是2D图形,而对于三维物体呢,我们还需要一个称作深度的信息,Direct3D则使用深度缓冲区为最终绘制的图像的每个像素都存储一个深度信息,深度缓冲区只单单包含了特定像素的深度信息而不含图像数据的表面信息(表面信息上面讲过,由表面信息来存储,就是一个存储着2D图形的线性数组)。

前台缓冲区和后台缓冲区是位于系统内存或显存里的内存块,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值