jME3初级教程

关于重构jME3教程

今年夏季,我写了一套"jME3初学者教程",本意是想让学习jMonkeyEngine的初学者能够有一套比较容易入门的参考资料。写作的过程中,我尽自己所能,希望把我所了解的jMonkeyEngine介绍清楚。不过,目前来看,并没有达到我的预期目标。所以我想在明年抽空把它重构。 **重构的主要原因,是这套教程没有区分知识的难度。**虽然名为“初学者”教程,但是从读者反馈来看,文章中夹杂了大量不适合初学者的内容。其实我在刚开始规划这套教程的时候,并不打算写这么多。由于我的心理负担比较重,编写时总觉得必须先介绍某些原理,否则说不清楚。再者, ...

第十七章:户外场景

本章我们将会学习如何在3D游戏中制作户外场景,包括天空、海洋、地形等。 天空 3D游戏中的天空有很多实现方法,总的来说,皆是障眼法。最简单的手法不过是改变画面的背景色,让玩家“感觉”到天色的变化。 如果在玩家头顶上放置一个平面,再把云朵、太阳、星星、月亮等图片“贴”上去,就可以混合成类似下面的效果。 这种技术称为**“天空面(SkyPlane)”**。 显然,这种方法是很容易露馅的。当玩家的视野足够远时, ...

第十六章:物理引擎

牛顿的苹果 长久以来,哲学领域有一个争论不休的话题,就是这个世界有没有独立意志? 现在,你是游戏的开发者, 你正在创造一个世界。 这个世界有意志吗?游戏本身是没有意志的,但开发游戏的你有意志,将来玩这个游戏的人也有意志。你是这个游戏的主宰,可以让这个世界表现出更加接近现实世界的规律,或者只符合你定下的规则。无论如何,你需要一个规则来运转这个世界。我们用类和对象来抽象自己对世界的理解,并用代码逻辑来描述世界的规律,越是接近现实规律,程序就越是复杂。并不是每个人都能用代码实现苹果落地的过程,物理引擎将是你最好的帮手。 物理引擎概述 物理引擎是一种用于模拟真实物理现象的中间件,可以用来创建虚拟的物理环境,并在其中运行来自物理世界的规则。 ...

第十五章:碰撞检测

碰撞与相交 碰撞检测这个词通常有两种含义,一种是物理意义上的碰撞检测,另一种是数学意义上的碰撞检测。本章讨论的是纯数学的碰撞检测,即判断物体之间是否相交(或包含、重合)、计算交点、预测相交时刻等。“物理引擎”则是在碰撞检测的基础上又增加了“物理”因素,模拟力与力之间的相互作用,这个内容将在下一章讨论。 显而易见,数学碰撞检测比物理碰撞检测的速度要快,而且消耗的内存也更少,因为压根就不用考虑质量、能量、动量、速度、加速度等物理因素。类似于鼠标拾取、视线范围等功能, ...

第十四章:特效

在jMonkeyEngine中,我们有3种实现特殊视觉效果的工具。 后期滤镜 FilterPostProcessor & Filter 场景处理器 SceneProcessor 粒子发射器 PraticleEmitter 后期滤镜 在游戏场景渲染完成后,我们可以使用滤镜(Filter)对画面进一步加工。在3D游戏中,下列效果通常都是用滤镜来实现的: 雾化(Fog) 马赛克(Mosaic) 玻璃(Glass) 雨雪(Rain / Snow) ...