随笔分类 -  游戏引擎

物理引擎chipmunk
摘要:Chipmunk是一个支持iPhone平台游戏开发的2D物理引擎,提供2D physic和rigid body特性。Chipmunk特性是灵活和易用。下面是关于Chipmunk的简介和一个简单的教程IntroductionSetupBasic ConceptsInitializing ChipmunkDefining the ball's body and shapesTracking the ball's movementsDefining the floor's body and shapesEvaluating the results & Conclusi 阅读全文

posted @ 2012-05-27 15:47 Hibernate4 阅读(523) 评论(0) 推荐(0)

iOS游戏引擎剖析
摘要:译自<<iPhone Game Development>> O’Reilly 第2章为了解决“如何在IPHONE上创建一个游戏”这个大问题,我们需要首先解决诸如“如何显示图像”与“如何播放声音”等一系列小问题。这些问题关系到创建部分游戏引擎。就像人类的身体一样,游戏引擎的每个部分虽然不同,但是却都不可或缺。因此,首先从游戏引擎剖析开始本章。我们将会讨论一个游戏引擎的所有主要部分,包括应用程序框架、状态机、图像引擎、物理引擎、声音引擎、玩家输入和游戏逻辑。 写一个好玩的游戏是一项牵扯到很多代码的大任务。非常有必要从一开始就对项目进行良好的,有组织的设计,而不是随着进度的进 阅读全文

posted @ 2012-04-30 10:58 Hibernate4 阅读(3591) 评论(0) 推荐(0)

3D实时渲染中的BSP树和多边形剔除
摘要:原文<BinarySpace Partioning Trees and PolygonRemoval in Real Time 3D Rendering>第一章 介绍背景二叉空间分割(BSP)树在1969年由Shumacher首次提出,当时并未想到能成为开发娱乐产品的算法,但从90年代初BSP树就已经被用于游戏行业来改善性能,并使利用地图中更多细节成为可能。第一个使用该技术的游戏是Doom,由游戏行业中的两位传奇人物JohnCarmack和John Romero创立。从那时起几乎所有的FPS游戏都使用了该技术。问题陈述由于游戏行业的激烈竞争,人们为了改善该算法的原始设计做了大量工作 阅读全文

posted @ 2012-01-18 15:09 Hibernate4 阅读(5058) 评论(0) 推荐(1)

一种3D游戏碰撞检测解决方案
摘要:碰撞检测在3D游戏中至关重要,好的碰撞检测要求人物在场景中可以平滑移动,遇到一定高度内的台阶可以自动上去,而过高的台阶则把人挡住,遇到斜率较小的斜坡可以上去,斜率过大则把人挡住,在各种前进方向被挡住的情况下都要尽可能地让人物沿合理的方向滑动而不是被迫停下。在满足这些要求的同时还要做到足够精确和稳定,防止人物在特殊情况下穿墙而掉出场景。碰撞检测做得好了是应该的,不易被人注意到,因为这符合我们日常生活中的常识。做得差了却很容易让人发现,人物经常被卡住不能前进或者人物穿越了障碍。所以大部分人都觉得写碰撞检测代码是件吃力不讨好的事情,算法复杂、容易出bug、不容易出彩。下面还是回到正题,看看我们该如. 阅读全文

posted @ 2012-01-16 23:43 Hibernate4 阅读(666) 评论(0) 推荐(0)

在C++中使用Lua
摘要:1. 下载Lua源码Lua源码下载地址http://www.lua.org/download.html2. 创建Lua静态库在vs2008中创建一个静态库项目(我创建的叫LuaLib),注意:一定要取消“预编译头”选项;(否则会报一大堆有关stdafx.h的错误,也可以稍后自行更改设置)建成后将Lua源码的.h和.c加入该项目进入项目属性,修改编译输出,方便其他项目使用lib库配置属性->常规->输出目录,设置为“$(SolutionDir)\lib\”配置属性->管理员->常规->输出文件,设置为“$(OutDir)\$(ProjectName)_d.lib”编 阅读全文

posted @ 2012-01-16 10:51 Hibernate4 阅读(1049) 评论(0) 推荐(0)

两个简单的声音引擎
摘要:绝对轻量级的声音引擎,Audiere,支持跨平台,可以去http://sourceforge.net/projects/audiere/下载,再给个小例子,^_^用VC6或者其他配置好工程,建个控制台程序即可#include <iostream>using namespace std;#include "audiere.h"audiere::AudioDevicePtr device(audiere::OpenDevice());audiere::OutputStreamPtr stream(audiere::OpenSound(device, "mu 阅读全文

posted @ 2012-01-07 20:06 Hibernate4 阅读(274) 评论(0) 推荐(0)

高级碰撞检测技术
摘要:自从计算机游戏出现以来,程序员就不断地想办法来更精确地模拟现实世界。就拿乒乓游戏为例子(译者:Pong—被誉为电子游戏的祖先,有幸见过一次:),能见到祖先做的游戏感觉真是爽啊,想看的可以到FTP上下载“地球故事”就可以看到了:),游戏中有一个象征性的小方块(球)和两支拍子,游戏者需要在恰当的时间将拍子移动到恰当的地点,将小球反弹回去。这个基本操作的背后(以现在的标准来看)就是最原初的碰撞检测了。今天的游戏比“乒乓”要高级得多,并且基本上是基于3D的。3D游戏中的碰撞检测比“乒乓”游戏里的要更加难实现。玩一些早期模拟飞行游戏的体验向我们展现出糟糕的碰撞检测是如何毁灭一个游戏的。当穿过一座大山的尖 阅读全文

posted @ 2011-12-27 16:00 Hibernate4 阅读(225) 评论(0) 推荐(0)

游戏里实现碰撞检测方法
摘要:几乎所有的3D游戏都离不开碰撞检测——无论是各物体之间的碰撞检测,还是物体与场景之间的碰撞检测。在真实世界中,你是很自然地不能穿墙而过的,所以很多人在玩各种3D游戏的时候自然而然的忽视了碰撞检测这一过程的存在。然而,碰撞检测的过程是重要的。如果没有它,你在CS中就会毫无遮拦的飞来飞去——如果考虑重力的话,则会一直不停地往下掉,直到符点数溢出(或你受不了这一漫长的过程而离开游戏)为止。碰撞检测是在编程时实现的。不要以为碰撞检测是在显示3D图像的同时由显卡完成的——这是幼稚的看法——现在没有什么硬件能支持碰撞检测。 看了这些后你可能对碰撞检测产生了兴趣,或者你作为一个3D编程爱好者正在寻找碰撞检. 阅读全文

posted @ 2011-12-27 15:53 Hibernate4 阅读(328) 评论(0) 推荐(0)

骨骼动画反向动力学(IK)的实现
摘要:反向动力学,Inverse Kinematics,简称IK。简单地说,由父骨骼的方位和子骨骼的相对变换得到子骨骼的方位,称为正向动力学(Forward Kinematics,FK);而IK则是先确定子骨骼的方位,反向推导出其继承链上n级父骨骼方位的方法。IK在游戏里最常见的应用是foot placement,就是当角色站在一个不平的表面上(台阶,斜坡)时,自动调整两脚的高低(当然,同时会影响小腿和大腿的姿态)以便看上去脚是真正“踩”在地面上的,而不是浮在空气中或者陷入地面以下。如果不用IK的话,要解决这个问题就只能为所有可能的地形起伏情况制作不同的角色动作,其工作量是不可想象的。另外的应用就是 阅读全文

posted @ 2011-12-27 14:27 Hibernate4 阅读(834) 评论(0) 推荐(0)

PBRT 阅读 : 第一章
摘要:参见http://www.opengpu.org/forum.php?mod=forumdisplay&fid=8【题外话:这里只是记录我学习该书的体会,既不是直译,也不是意译,而是顺着作者的思路,把自己理解的东西再讲述出来,对于可能出现的误解会用原文说明。】第一章介绍关于渲染,有很多方式。大致有三类:基于物理学的渲染(Physically based):着力于模拟现实。就是说,用物理学的原理搭建关于光和物质交互的模型,追求真实感是该类方法的首要任务。交互式渲染(Interactive):为了高性能和低延迟而牺牲真实感的渲染。 非真实感的渲染(Nonphotorealistc)。这是为 阅读全文

posted @ 2011-12-27 13:29 Hibernate4 阅读(2482) 评论(0) 推荐(0)

引擎雏形
摘要:就像修房子一样,别管你用多贵的砖头,它只是一块砖头而已,并不是你想要的房子。砖头可以在开发的时候随时换,但是结构一旦定下来,就不好修改了。那么一个基本,却又efficient的结构究竟是什么样的呢?很简单。所有你所需要的就是引擎,有限状态机和内存池。这三个东西一点都不复杂,你可以从头开始写:首先是你的引擎类,需要些什么呢?class CEngine{public: CEngine(); ~CEngine(); int Initialize(); int Start(); int Restart(); int Pause(); int Shutdown(); int AddModule(CMod 阅读全文

posted @ 2011-11-28 10:37 Hibernate4 阅读(277) 评论(1) 推荐(1)

一种2D游戏引擎的设计与实现
摘要:摘 要对现有游戏引擎开发技术进行改进,提出了一种有效的2D游戏引擎设计与实现方法,该方法以引擎架构为基础,以累积渲染技术作为主要渲染加速手段;结合精灵与动画技术进行具体实现,达到游戏引擎设计的目的。最后通过该方法实现了一个2D游戏引擎,并用实验验证了该方法的有效性。 1、引言 2D游戏开发是游戏开发领域中一个不可或缺的重要分支,绝大多数休闲游戏与动漫游戏都是使用2D游戏技术开发实现的。2D游戏技术已经成为了手机及一系列小型设备游戏开发的主导技术。游戏引擎是游戏开发的最基础部分,为此我们提出了一种有效的2D游戏引擎的设计与实现方法。通过该方法,我们设计并实现了一款2D游戏引擎。 2、2D游... 阅读全文

posted @ 2011-11-28 10:36 Hibernate4 阅读(612) 评论(0) 推荐(0)

导航