第14章 绘制出质感的世界——光照与材质 1. 光照与光源 在Direct3D中的光源类型和光照类型是不同的两个概念,光照模型描述的是光线的反射特征,而光源类型主要强调的是能够产生这些光照模型的方式以及光线的位置,方向,强度等特征。 四大光照类型 环境光:基于整个自然界环境的整体亮度,称为环境光或者 ...
第13章 世界变换,取景变换,投影变换,视口变换 在Direct3D中,如果为进行任何空间坐标变换而直接绘图的话,图形将始终处于应用程序窗口的中心位置,默认这个位置就成为世界坐标系的原点(0,0,0)。而且我们也不能改变观察图形的视角方向。默认情况下的观察方向是世界坐标系的z轴正向方向。 世界变换运 ...
第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型。三角形网格是构建物体模型的基本单元,而一个三角形有3个顶点,为了能够使用大量三角形组成三角形网格来描述物体,需要首先定 ...
分类:
Windows程序 时间:
2017-07-15 23:53:46
阅读次数:
1096
第11章 Direct3D编程基础 2D游戏是贴图的艺术,3D游戏是渲染的艺术。这句话在我学过了之前的GDI编程之后,前一句算是有所体会,现在是来理解后一句的时候了。 安装DirectX SDK配置啥的就不说了,直接进入正题,先来个典型的Direct3D程序框架图: 主要分为5个部分: 创建一个Wi ...
在已学会C++语言的基础上游戏开发,参照的是“浅墨”博主的《游戏编程之从零开始》。 本篇用以记录所学的各种API函数。 HWND:窗口句柄类型 hWnd:消息框所属窗口的句柄。(为NULL表示从属于桌面) LPCTSTR:分别你是否使用Unicode的字符串类型 lpText:消息内容 lpCapt ...
分类:
其他好文 时间:
2017-07-12 16:14:35
阅读次数:
170
GDI: 图形设备接口 1. 取得设备环境的句柄(如屏幕) 使用BeginPaint和EndPaint这两个函数,或者使用GetDC和ReleaseDC这两个函数。关于函数的具体说明可以参考mdsn文档。 一个GDI程序通用框架: 2. GDI基本几何绘图 使用画笔HPEN,画刷HBRUSH。然后是 ...
不得不承认《Python游戏编程入门》这本书翻译、排版非常之烂,但是里面的demo还是很好的,之前做了些改编放到这里。 先是素材: 背景 精灵 所有素材均取自此书 接下来就是精灵类的创建了: 将精灵类“放置”到游戏屏幕上,并加上背景 这样的话精灵就在画布上了,我们得让它能左右移动: 然后实现跳跃及二 ...
分类:
其他好文 时间:
2017-07-10 01:17:14
阅读次数:
364
步骤: 窗口类的设计 窗口类的注册 窗口的正式创建 窗口的显示与更新 1. 设计:使用WNDCLASSEX结构体,这里注意的是C++中的结构体中的成员默认是共有的,所以可以直接通过 . 来调用。 关于这个结构体的具体说明见msdn文档:https://msdn.microsoft.com/zh-CN ...
A*简单介绍图搜索技术在游戏编程中无处不在,不管什么游戏类型,图搜索方法不可避免成为游戏AI的基础。比方以下梦幻西游自己主动找人的功能A*搜寻算法就是图搜索算法的一种。俗称A星算法。这是一种在图形平面上,有多个节点的路径。求出最低通过成本的算法。经常使用于游戏中的NPC的移动计算。或线上游戏的BOT ...
分类:
编程语言 时间:
2017-06-03 22:37:08
阅读次数:
230
最近看了《游戏编程模式》这本书,里面有一篇空间分区的文章,看了心里痒痒,决定去尝试实现一下。文章后面会给出整个学习参考的链接。 实现的效果如下,我们有一个很大的场景,场景有许许多多的敌人。红色的点代表是玩家,黑色的点代表是敌人。在这样的一个大量敌人的情景下,我们不可能在玩家或敌人寻找身边的攻击对象时 ...
分类:
编程语言 时间:
2017-05-19 23:42:34
阅读次数:
884