从2D到3D:Android游戏开发的新征程
1. 2D游戏的回顾与3D的展望
在之前的2D游戏开发中,我们成功打造了像Super Jumper这样的游戏。在渲染方面,我们有背景、物体和UI元素三个批次的渲染,虽然理论上可以合并UI和物体批次,但会使代码变得复杂。借助纹理图集和SpriteBatcher,游戏性能表现良好。同时,合理设计游戏机制以及明确世界单位和像素单位的关系,让开发变得更加轻松。
现在,是时候迈向3D领域了。其实在之前定义视锥体和精灵顶点时,我们已经在3D空间中工作,只是顶点的z坐标默认设为0。3D渲染与2D渲染的区别主要体现在以下几点:
- 顶点不仅有x和y坐标,还有z坐标。
- 使用透视投影而非正交投影,离相机远的物体看起来更小。
- 变换(如旋转、平移和缩放)在3D中有更多自由度,可以在三个轴上自由移动顶点。
- 可以在3D空间中定义任意位置和方向的相机。
- 物体三角形的渲染顺序变得重要,离相机远的物体必须被离相机近的物体覆盖。
2. 3D开发的准备工作
在开始3D开发之前,我们会编写一些示例。和之前一样,会有一个启动活动展示示例列表,并且复用之前三章创建的框架,包括GLGame、GLScreen、Texture和Vertices类。
本章的启动活动名为GL3DBasicsStarter,我们可以复用之前的GLBasicsStarter活动代码,只需将示例类的包名改为com.badlogic.androidgames.gl3d,并在清单文件中以 元素的形式添加每个测试。所有测试将以固定的横向模式运行。
每个测试都是GLGame抽象类的实例,实
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



