随笔分类 -  Game Programming

摘要:1.光照的组成在Direct3D的光照模型中,光源发出的光由以下3种分量或者3种类型的光组成:(1)环境光(AmbientLight):光经其他表面反射到达物体表面,并照亮整个场景。个人理解:白天阴天的时候为什么还能看见物体?环境光!(2)漫射光(DiffuseLight):光沿着特定的方向传播。当它到达某一表面时,将沿着各个方向均匀反射。无论从那个方向来看,表面亮度均相同,所以采用该模型时,无须考虑观察者的位置。(3)镜面光(SpecularLight):光沿特定方向传播。当此类光到达一个表面时,将严格地沿着另一个方向反射,从而形成只能在一定角度范围内才能观察到的高亮度照射。相对前两种光照类 阅读全文
posted @ 2011-11-23 23:42 独酌逸醉 阅读(741) 评论(0) 推荐(0) 编辑
摘要:1.颜色表示在Direct3D中。颜色用RGB三元组表示。RGB数据可用两种不同的结构来保存。第一种是D3DCOLOR,它实际上与DWORD类型完全相同(由typedef定义),共有32位。D3DCOLOR类型中各位被分成8位项(section),每项存储了一种颜色分量的亮度值(Alpha,,R,G,B)。每项均占一个字节,所以每个分量的亮度值范围都在[0,255]区间内,接近0值表示最小值,接近255的值表示高度值。Direct3D提供了宏D3DCOLOR_ARGB帮助我们完成将颜色分量值,安插到D3DCOLOR类型的合适位置上。也可以使用D3DCOLOR_XRGB宏来代替D3DCOLOR_ 阅读全文
posted @ 2011-11-21 21:58 独酌逸醉 阅读(1380) 评论(0) 推荐(0) 编辑
摘要:1.顶点缓存和索引缓存(vertex/indexbuffer)一个顶点缓存是一个包含顶点数据的连续内存空间;一个索引缓存是包含索引数据的连续内存空间。顶点缓存和索引缓存可以被放置到显存(videomemory)中。进行绘制时,使用显存中的数据将获得比使用系统内存中的数据(Array)快得多的速度。1.1创建顶点缓存用接口IDirect3DVertexBuffer9表示,用CreateVertexBuffer创建;索引缓存用IDirect3DIndexBuffer9表示,用CreateIndexBuffer创建。*静态缓存与动态缓存创建缓存时,如果未使用标记D3DUSAGE_DYNAMIC,则称 阅读全文
posted @ 2011-11-20 18:21 独酌逸醉 阅读(1088) 评论(0) 推荐(1) 编辑
摘要:绘制流水线(renderingpipeline):从3D场景到2D场景,必须实施的一系列运算。局部坐标系->世界坐标系->观察坐标系->背面消隐->光照->裁剪->投影->视口坐标系->光栅化1.局部坐标系(localspace)局部坐标系(localspace)或者建模坐标系(modelingspace),是用于建立构成物体的三角形单元列表的坐标系。采用局部坐标系的优势体现在它可以简化建模过程。个人理解:局部坐标系即以物体本身建模,假如你要为一个茶壶建模,那么局部坐标系的原点可以为茶壶中心;再如你要为一个球体建模,那么局部坐标系的原点可以为球的 阅读全文
posted @ 2011-11-15 22:46 独酌逸醉 阅读(1510) 评论(0) 推荐(0) 编辑
摘要:《DirectX9.03D游戏开发编程基础》一书中在第II部分第一章初始化Direct3D中提供了一个DirectX框架(所谓框架,只是一个支撑,在这个支撑下,可以添加代码实现相应的操作),但是整体感觉比较乱(不知道您是否有这种感觉?)。我将Direct3D初始化、资源设置与清除、显示等操作全部封装到一个类中,希望可以让代码不再杂乱,便于理解。Direct3D的初始化过程可分解为如下步骤:(1)获取接口IDirect3D9的指针。该接口用于获取系统中物理硬件设备的信息并创建接口IDirect3DDevce9,该接口是一个C++对象,代表了我们用来显示3D图形的物理硬件设备。(2)检查设备性能( 阅读全文
posted @ 2011-10-28 00:22 独酌逸醉 阅读(1643) 评论(0) 推荐(0) 编辑
摘要:1. 齐次坐标 齐次坐标的理解——BigCoder2. 为什么Direct3D要采用四维坐标?矩阵运算------四维齐次空间 —— Guymon3. 向量的数量积与向量积 数量积 向量积未完待续……/*******************************************************/* 本文由 独酌逸醉 整理,部分内容来源于互联网* 转载请注明博客链接,谢谢! * 时间:2011.10.10/*******************************************************/ 阅读全文
posted @ 2011-10-11 21:31 独酌逸醉 阅读(445) 评论(0) 推荐(0) 编辑
摘要:做游戏开发需要具备那些知识或技能?这是我之前在csdn上发的一个贴的名字,今天忽然想起来进行了整理。希望看到关心这方面的人有所启示。下面是csdner的回复:freezezdj:游戏分客户端和服务器端。hoya5121(老李):与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的 阅读全文
posted @ 2010-08-19 09:50 独酌逸醉 阅读(6822) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示