D3D11游戏编程
文章平均质量分 82
记录、分享基于Direct3D11的3D游戏编程学习经验。
Brother灬Nam
这个作者很懒,什么都没留下…
展开
-
【D3D11游戏编程】学习笔记二十五:法线映射(Normal Mapping)
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 1. 为什么使用法线映射? 在开始正式讨论法线映射之前,先来看下以下两张图片: 这两张依然是之前一篇文章中用到的仙剑五前传中两张截图,两图中显示的为同一地点原创 2013-03-12 08:13:55 · 22206 阅读 · 27 评论 -
【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 切换空间,同局部空间、世界空间等一样,是3D图形学中众多的坐标系之一。切换空间最重要的用途之一,即法线映射(Normal Mapping)。关于法线映射的细节,将在下一篇文章中详细介绍。但在学习法线映射之前,深原创 2013-02-28 00:29:33 · 44558 阅读 · 14 评论 -
【D3D11游戏编程】学习笔记二十三:Cube Mapping进阶之动态环境图
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在前面两篇介绍Cube Mapping的文章中,我们所使用到的Cube Map都是事先制作好的,这样的一个好处就是运行时效率很高,适合于大多数情形。但如果对于即时动态变化的场景来说,依靠静态图来实现反射效果就不再原创 2013-02-24 07:53:45 · 18281 阅读 · 6 评论 -
【D3D11游戏编程】学习笔记二十二:Cube Mapping应用之二:反射的实现
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) Cube Mapping应用非常广泛,除了上节中介绍的用来实现天空盒之外,另一个很常见的用途就是实现不规则物体表面的反射效果。 在前面的一篇文章中介绍过平面镜反射的基本原理及d3d11的实现。对于原创 2013-02-16 07:59:47 · 11777 阅读 · 6 评论 -
【D3D11游戏编程】学习笔记二十一:Cube Mapping及其应用之一:天空盒的实现
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 这一节讨论有关纹理映射的进阶内容:Cube Mapping。 1. 简介 单从名字上,就大概可以看出点端倪了,翻译成中文为立方体映射,因此肯定跟立方体有关系。确实,Cube Mappi原创 2013-02-13 08:17:28 · 14392 阅读 · 6 评论 -
【D3D11游戏编程】学习笔记二十:第一人称摄像机的实现
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在这篇文章中,我们来实现一个简单的第一个称摄像机。在之前所有的程序中,为了方便从各个角度观察场景,我们可以通过鼠标来旋转视角和镜头远近。尽管相对单一地从固定的角度观察方便多了,但观察点依然仅仅限制在一个球面上,观察目标点原创 2013-01-20 05:50:32 · 20272 阅读 · 12 评论 -
【D3D11游戏编程】学习笔记十九:平面阴影的渲染
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在这一篇文章中,我们讨论的话题依然是模板缓冲区,这次通过另一个十分常见的例子:阴影,继续来感受一下模板缓冲区灵活的用法。 阴影的渲染是个很高级的话题,当然,我们这次仅仅讨论平面阴影,即光源照射物体在平原创 2013-01-16 06:58:43 · 9919 阅读 · 2 评论 -
【D3D11游戏编程】学习笔记十八:模板缓冲区的使用、镜子的实现
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 模板缓冲区(Stencil Buffer)是一个与后缓冲区(Back Buffer)尺寸一样的离屏缓冲区(Off-Screen Buffer),主要用于实现一些特效。模板缓冲区中的每一个像素Pi,j,与后缓冲区中的像素原创 2013-01-14 02:40:34 · 21209 阅读 · 12 评论 -
【D3D11游戏编程】学习笔记十七:雾效的实现
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 雾效是3D渲染中用来模拟现实中大气现象的一种常见手段。最直接的用途就是实现带雾天气的场景。此外,雾效还有其他很多重要的作用: 1. 用来防止场景中远处物体的突然消失/出现(popping)。这种现象的主原创 2013-01-10 04:19:59 · 9097 阅读 · 7 评论 -
【D3D11游戏编程】学习笔记十六:Alpha通道(Alpha Channel)
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在使用纹理时,我们有时需要指定该纹理图哪些部分是我们想要的,哪些部分我们不需要,即透明的。这时候,我们需要为纹理的每个texel指定alpha值,令我们不需要的那些部分的alpha为0,其他部分为1。纹理中对原创 2013-01-02 07:23:27 · 10417 阅读 · 9 评论 -
【D3D11游戏编程】学习笔记十五:混合(Blending)
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在D3D11中,“混合”发生在像素着色器阶段的下一阶段,即Output Merger Stage。整个场景在全部经历过像素着色器阶段后,对应于屏幕上每一点像素,可能有多个片段(Fragment)。如下原创 2012-12-31 06:28:52 · 13118 阅读 · 6 评论 -
【D3D11游戏编程】学习笔记十四:纹理基础
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 光照和材质的加入使得场景的真实感大大增加,但仅仅这些依然不足以表现出真实世界中物体表面的各种细节。毕竟,材质所能够提供的细节等级仅仅停留在顶点级别上。纹理的引入,使得在像素级别上提供细节成为可能,因而可以进一步大大提高原创 2012-12-29 03:17:45 · 15085 阅读 · 22 评论 -
【D3D11游戏编程】学习笔记十三:内存对齐的一点思考
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 不知你是否还有印象,在上一篇中提到三种光源的结构体时,无论是C++中的定义还是HLSL中的定义,都存在着名为"unused"的成员(平行光和点光源)。如下为C++程序中对平行光的定义: //平行光 struct原创 2012-12-27 23:02:09 · 9056 阅读 · 3 评论 -
【D3D11游戏编程】学习笔记十二:光照模型
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 从这一篇开始,我们逐渐进入D3D11中有意思的部分。之前的场景绘制,要么为每个顶点指定单一的颜色,要么在线框模式下渲染。从现在起我们开始学习光照,这样场景就更加具有真实感了。 1. 法线的引入原创 2012-12-25 06:05:48 · 18087 阅读 · 12 评论 -
【D3D11游戏编程】学习笔记十一:基本几何体绘制
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 这次我们来学习几种常见的基本几何体的绘制方法,包含网格、球、圆柱等。很多复杂的几何图形都是由众多这些基本几何体组成的。而且,在水面渲染、地形渲染当中,都要使用到网格,因此掌握网格的基本生成方法很有必要。此外,有了这么多原创 2012-12-23 22:40:21 · 13520 阅读 · 13 评论 -
【D3D11游戏编程】学习笔记十:程序框架
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 从上次绘制一个简单立方体的例子中,我们可以发现,即使是一个十分简单的程序,其代码长度也是相当的长。但实际上,大多数代码只是用于了Win32、D3D11的初始化,剩下的才是我们真正关心的绘制代码。一方面,这些代码妨碍我们原创 2012-12-22 23:21:54 · 9544 阅读 · 5 评论 -
【D3D11游戏编程】学习笔记九:编译Effect的方法
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在D3D11应用程序中,对于写好的Effect程序进行编译有如下几种常见方法: 1. 在运行期编译 用这种方法,我们只管写好Effect代码即可,不用关心其编译问题,而是在C++程序中,通原创 2012-12-18 02:46:05 · 13259 阅读 · 4 评论 -
【D3D11游戏编程】学习笔记八:绘图基础-旋转的彩色立方体
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 历代的D3D教程中,介绍基本绘图时都会拿立方体作为例子,这次也不例外~ 立方体虽然简单,但正所谓麻雀虽小,五脏俱全。绘制立方体的过程其实已经包含了所有D3D渲染程序中最基本的、必不可少的步骤。因此,从绘制立方体开始学习原创 2012-12-16 09:34:38 · 15616 阅读 · 21 评论 -
【D3D11游戏编程】学习笔记七:3D渲染管线
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 3D图形学研究的基本内容,即给定场景的描述,包括各个物体的材质、纹理、坐标等,照相机的位置及朝向,光源等信息,计算其最终在二维的光栅化显示器上对应的显示结果。从最初的场景描述到最终的显示结果,这整个过程就是在3D渲染原创 2012-12-15 07:32:58 · 14711 阅读 · 2 评论 -
【D3D11游戏编程】学习笔记六:定时器的实现
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 无论在游戏还是简单的动画程序当中,定时器是一个必不可少的元素,用来正确地控制游戏帧数、动画的播放。最简单的实现定时器的方法通过在主循环中定义两个静态计时用的变量即可实现。但在学习过程中,定时器的使用相当频繁,因此设计原创 2012-12-13 22:42:34 · 8307 阅读 · 3 评论 -
【D3D11游戏编程】学习笔记一:最新版D3D11龙书
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 前一段时间破费从美国Amazon上买到了一直梦寐以求的游戏编程方面的书,其中包括介绍Direct3D方面最经典的“龙书”:《Introduction to 3D Game Programming with Direc原创 2012-12-10 22:39:56 · 21188 阅读 · 16 评论 -
【D3D11游戏编程】学习笔记五:D3D11初始化
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 初次使用D3D11,先从它的初始化开始。不过在使用D3D之前,需要了解几个重要的概念: 1. 硬件能力:Hardware Capacity 熟悉D3D9的会很清楚,在初始化d3d9的一原创 2012-12-13 18:06:15 · 22780 阅读 · 19 评论 -
【D3D11游戏编程】学习笔记四:准备工作
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 现在可以开始接触D3D了,但是在开始前,还有一小部分准备工作要做,即配置开发环境。 配置环境相当简单,属于一劳永逸那种。接触过游戏编程的同学绝大多数应该很熟悉这个步骤了,但为了保证一致,防止后面学习过原创 2012-12-12 05:37:07 · 11834 阅读 · 9 评论 -
【D3D11游戏编程】学习笔记三:XNAMath之XMMATRIX
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在熟悉了XMVECTOR的风格及规则之后,再来了XNA数学库中的矩阵就容易得多了。基本上可以跟向量相类比。 一、 矩阵类型 XNA数学库中针对矩阵的类型为XMMATRIX。这是一个4x原创 2012-12-11 05:35:14 · 11757 阅读 · 0 评论 -
【D3D11游戏编程】学习笔记二:XNAMath之XMVECTOR
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 一、XNA Math简介 在D3D10及之前的版本中,3D数学库是伴随在D3DX库中的。在D3D11版中,3D数学库被单独隔离出来,为XNA Math库,功能和之前基本一样,但是建立在SIMD指令上,原创 2012-12-11 02:55:01 · 14714 阅读 · 11 评论