SceneKit(0): 开篇随笔
SceneKit是苹果提供的三维图形框架,使用起来比较简单,适合做简单的项目。比起更成熟的游戏引擎,资料比较少,而且根据作者一年多的相关开发经验,坑比较多…
想要学习游戏开发的朋友,可以拿来学着玩玩,没有过三维图形开发经验的也可以很快上手。但不建议用在真正的游戏开发项目中,因为它只能跑在ios或者osx上,不具备移植性。而正经的商业化的游戏引擎都能做到多平台移植性,无论是windows还是android还是ios都可以做到游戏主体部分代码基本不用修改,只需适配平台相关部分即可。
SceneKit 仍是一个不错的入门三维图形编程的框架,可以对三维图形有个高层次的了解,可以熟悉三维图形学的一些基本概念,比如摄像机、光线、纹理、模型、动画、物理引擎等等。有了一些基本概念再学习其它的游戏引擎就轻车熟路了,甚至对学习opengl等底层技术也是有帮助的。
每年苹果都会有新的功能随着新的系统版本加入到 SceneKit 中,到今天它已经有了很多高级功能。苹果的开发工具最大的特点就是好用,因为接口尽可能简单,但你不自由,因为是整个系统是封闭的,一些需要特殊定制化的功能可能根本就无能为力。SceneKit 更是高度抽象的三维图形 API,你可以对底层一无所知就能开发出一个看起来还不错的 demo。若是想要实现没有提供接口的功能,就没那么简单了。
苹果新推出的 ARKit 给 SceneKit 带来了新的生命力。增强现实天生就与三维图形技术密不可分,ARKit内部就维护了一个三维的“世界地图”,只不过不是直接显示出来给用户看的。配合三维图形技术,可以创造出现实与虚拟内容融合的体验。至于为什么使用SceneKit,官方代码和演示也不能用别的吧(ㅍ_ㅍ)。实际上在WWDC上苹果就宣布了ARKit支持unity与unreal,并且有写好的插件可直接使用。
作者计划写一系列关于 SceneKit 与 ARKit 结合的文章,也是作者过去一年多的开发经验总结,实际工程实践会多一些,基础知识介绍会比较有限,官方文档能查到的一看就懂的就不写了。基础教程很多人写得很好我就不重复了,我也是看这些网上教程学会的基础。当然最权威的还是官方文档、代码、视频,苹果开发者论坛也有点用,Stackoverflow也是个好地方…
你要问为啥用 SceneKit 不用别的…电脑太差跑不起来重型开发工具ಠ‿ಠ ,Pro真贵…