上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 94 下一页
摘要: 游戏引擎开发之路这条路很长,因为必需懂得和用到的东西太多了。学习次序1、率先是语言方面,这个问题未曾太多的抉择的余地,大约上是用C和C++;VB的也有,然而很少;C#因为微软的力挺,在游戏开发中也逐渐多了示例。打听大约语义和语法就能够下一步了。万一想C++学通晓了在往下学,估计就未曾时机往下学了,因为你的殷勤可能在这都花费了。这个的学习是要不时重复的,想一遍学好是不可能的。2、数据构造的知识。这是大约的,而且对于算法的优化,速度的晋级,在游戏开发中也是极为考究的。教程许多,关键还是自己的思忖和掌握。3、Visual Studio 环境的利用。这个比拟容易然而却极其重要,万一连筷子都不会用,想吃 阅读全文
posted @ 2011-10-04 01:53 小 楼 一 夜 听 春 雨 阅读(737) 评论(0) 推荐(1)
摘要: 12.4 使用UMF文件为 www.UltimateGameProgramming.com 创建的最终模型格式(Ultimate Model Format,UMF),它的模型文件作为一种常用的文件格式,用于保存几何图形数据。该文件格式是一种简单的二进制格式,可以保存顶点位置、纹理坐标、法线值、顶点颜色和三角形索引。UMF文件格式旨在创建静态网格并将其显示在屏幕上。将来,还会有其他版本可以指定动画信息的格式。UMF格式在www.UltimateGameProgramming.com得到广泛使用。该文件格式使用简单,既包含了小的静态对象和角色,也包含了大的静态对象和角色。同样还提供了一种创建自己的 阅读全文
posted @ 2011-09-23 23:59 小 楼 一 夜 听 春 雨 阅读(1272) 评论(0) 推荐(0)
摘要: token.h#ifndef _UGP_TOKEN_H_#define _UGP_TOKEN_H_class CToken{public: CToken() : m_length(0), m_startIndex(0), m_endIndex(0), m_data(0) {} ~CToken() { Shutdown(); } void Reset(){ m_startIndex = m_endIndex = 0; } void SetTokenStream(char *data); bool GetNextToken(char *buffer); bool... 阅读全文
posted @ 2011-09-23 16:18 小 楼 一 夜 听 春 雨 阅读(2024) 评论(1) 推荐(0)
摘要: 接下来要介绍的模型文件格式是OBJ格式。该格式非常流行,而且可以使用大量3D建模软件导出。OBJ是一种简单的格式,它是可以用任何文本编辑器打开和保存的文本文件。准确的说,OBJ文件并不是设计用于处理与动画相关的信息,但如果有一个需要快速加载到场景中的静态对象,OBJ也许会有用。已经被导出OBJ格式的模型由顶点、法线、纹理坐标和三角形索引(外观)组成。因此,在OBJ格式中将不为除了简单静态网格之外的任何对象使用模型。【注意】 使用由不同类型软件导出的OBJ文件时一定要慎重。例如,用Lightwave7.5创建的OBJ文件就不同于3D Studio Max导出的OBJ文件。试着用为稍有不同类型文件 阅读全文
posted @ 2011-09-23 16:15 小 楼 一 夜 听 春 雨 阅读(3156) 评论(1) 推荐(1)
摘要: 在现代游戏中,人物和模型由针对每个对象的成千上万个多边形组成。对纹理映射而言这非常复杂,因为它需要为每个多边形的每个顶点设置一对TU和TV纹理坐标。假定有一个包含了5000个三角形的模型。假定不涉及加索引的几何图形(索引),而只使用三角形,那么在整个模型中将有15000个顶点。至此,除了内置的Direct3D以外,还得手动指定几何图形数据。如果一个模型包含5000个多边形,那么试着指定这些多边形中的每个几何图形数据,就会是一场噩梦。同时还要为顶点手动设置纹理坐标,从时间角度而言,这也是不可以接受的,并且绝对不现实。即使设法对所有模型都做了这一点,那么也会存在将这些信息硬编码到源代码中,以及其他 阅读全文
posted @ 2011-09-17 11:52 小 楼 一 夜 听 春 雨 阅读(2202) 评论(0) 推荐(1)
摘要: DirectSound和DirectMusic是DirectX中两个独立的声音API,它们都可以播放.wav声音(DirectMusic还可以播放.midi声音)。即便它们是独立的,这两种声音API也可以同时用于管理和操作声音数据、调整音廖、3D声音和效果。DirectSound能完成一些DirectMusic所不能完成的工作,反之亦然。所以在开发时需要同时使用两者。例如,DirectMusic需要使用DirectSound设置单个声音文件的音量、音调和摇摄,因为它自己不能完成这个工作。在介绍这两种API作为声音接口完成任务的函数、原型和结构之前,下面几个部分将详细介绍DirectSound和 阅读全文
posted @ 2011-09-17 00:49 小 楼 一 夜 听 春 雨 阅读(295) 评论(0) 推荐(0)
摘要: 游戏项目第9部分:增加输入系统该游戏项目将添加对引擎和主菜单的支持。引擎项目中出现的三个新文件分别是InputInterface.h、DirectInput.h和DirectInput.cpp。第一个文件InputInterface.h用于定义输入系统和输入设备基类的头文件。每个类都提供了派生类需要实现的默认函数。基类中的每个成员函数都是从DirectInput演示程序中提取出来的相同类。实际上,所有这些代码都很相似。在该输入系统和为演示程序创建的输入系统之间的唯一差别在于该输入系统将事情按照各自的类分开处理,而不是包含在一个巨大的类中一起处理。InputInterface.h#ifndef 阅读全文
posted @ 2011-09-17 00:39 小 楼 一 夜 听 春 雨 阅读(477) 评论(0) 推荐(0)
摘要: 初始化DirectInput系统,这仅需调用DirectInput8Create()函数即可.HRESULT WINAPI DirectInput8Create( HINSTANCE hinst, // 实例句柄 DWORD dwVersion, // 版本标识符 REFIID riidltf, // 输入系统的唯一标识符 LPVOID * ppvOut, // 指向正在创建的输入系统对象指针 LPUNKNOWN punkOuter // IUnKnown相关接口指针 ); 如果调用成功,D... 阅读全文
posted @ 2011-09-17 00:24 小 楼 一 夜 听 春 雨 阅读(1132) 评论(0) 推荐(0)
摘要: 第一个新文件是BoundingGeometry.h头文件。该头文件包含了3个类和两个函数。第一个类是边界几何图形基类,创建其他边界几何图形时可以从该类派生。第二个类是边界框类,第三个是边界球类。头文件中的两个函数分别是BoxToBoxIntersect()和SphereToSphereIntersect()。这两个函数分别用于检测两个方框和两个球体之间的碰撞。每个类中的成员函数分别是CreateFromPoints()、isPointInside()、两个Intersect()、GetPlanes()和isRayInside()。在创建涉及的边界几何图形时,会用到CreateFromPoint 阅读全文
posted @ 2011-09-14 23:00 小 楼 一 夜 听 春 雨 阅读(404) 评论(0) 推荐(0)
摘要: 在3D虚拟世界中检测碰撞?如果世界是由多个动态物体构成的,充满了成万或成千万的三角形,那么如何用一种快速有效的方式检测和避免可能发生的碰撞?要解决这个问题其实并不简单。使用数学运算检查两个三角形之间是否存在碰撞,非常消耗CPU,同样对于射线到三角形的测试也是如此。假想一下,如果一个三角形需要很大的CPU开支,那么几千个或几百万个三角形将会立刻摧毁所有现代处理器的性能。在游戏开发中实现某些事物的最快方法是采用捷径,并在必要时使用近似值。如果问题可以简化为一个更容易处理、计算更快的形式,那么有可能实现某一种技术而不会影响程序性能,而这是在长时间做某件事情时才会出现的情况。然而这样做会产生新问题:使 阅读全文
posted @ 2011-09-13 22:57 小 楼 一 夜 听 春 雨 阅读(1919) 评论(0) 推荐(0)
上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 94 下一页