今天开始学着色器编程

今天开始学着色器编程,计划在2017年7月到9月,初步掌握GLSL。 学习教材: 书名:图形着色器——理论与实践(第2版) 原名:Graphics Shaders: Theory and Practice 作者:Mike Bailey, Steve Cunnungham 翻译: ...

第十七章:户外场景

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

第十六章:物理引擎

牛顿的苹果 长久以来,哲学领域有一个争论不休的话题,就是这个世界有没有独立意志? 现在,你是游戏的开发者, 你正在创造一个世界。 这个世界有意志吗?游戏本身是没有意志的,但开发游戏的你有意志,将来玩这个游戏的人也有意志。你是这个游戏的主宰,可以让这个世界表现出更加接近现实世界的规律,或者只符合你定下的规则。无论如何,你需要一个规则来运转这个世界。我们用类和对象来抽象自己对世界的理解,并用代码逻辑来描述世界的规律,越是接近现实规律,程序就越是复杂。 ...

第十五章:碰撞检测

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

第十四章:特效

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