游戏夜读 | 改写图形 API 的意义
游戏编程,一般指的是视频游戏的制作,也就免不了当一把“画家”:在屏幕上弄点线面,形状色彩,喷洒溅射之类的。图形、色彩,似乎是人类的一个本能爱好,有视力的人,就不会对出色的视觉效果视而不见。但有一句话说的好,“几乎没有开发游戏的人去重写一套图形API,一般就是使用DX或OpenGL等现成的”。这一次聊一聊几乎以外的事情。
首先,API是什么?另一个相关的概念SDK又是什么?API,应用程序编程接口,全称Application Programming Interface;SDK,软件开发工具包,全称Software Development Kit。API是通道性质,SDK是一条龙服务性质。打个比方:池塘边有一个小朋友,想摸鱼。那怎么才能摸到鱼呢?想到了用“小网兜”。小网兜就是API,通过小网兜能获得鱼。然后池塘边不远处有一家小店,里面有卖或者送摸鱼的整套装备,包括:防水衣裤、遮阳帽子、大网兜、电动马达、探照灯、备用小网兜……相对齐全的别人备好的装备就是SDK,小朋友可以去买或者拿这套装备,既省事又高效。
其次,DX是什么?OpenGL又是什么?为什么是现成的?DX,是DirectX的简称,全名Direct eXtension,是微软公司创建的多媒体编程接口。OpenGL,开放式图形库,全名Open Graphics Library,实际上并不是API,是由科纳斯组织(Khronos Group)建立并维护的一套标准,也经常被看做是一个图形编程接口。
很多开发相关的论坛上,早些年都有讨论选DX还是OpenGL,特别早的都已经古老到消失或无法回复了。图形API不是只有这两个。比如类似于微软的DX,适用于 Mac 系统(OS X 和 iOS)的Metal,还有许多引擎类。再比如:Vulkan。最早是由科纳斯组织(Khronos Group)发表在2015年游戏开发者大会(GDC)上,Vulkan的定义和用途跟OpenGL差不多,还被称为下一代的OpenGL,只是因为都是Khronos家维护的。实际上两者并不兼容,Vulkan在硬件适配上性能更优越些,因为开发者可以实现显存的管理了。
改写太难,还是从使用开始。没有改写图形API的捷径,但有封装的好手。
图形API已经不停壮大,以至于自身的发展也成为了一个十分复杂的领域,但接口还是接口,实际应用的时候应该只会越来越高效、便捷、丰富,只是事情往往没有那么简单。视频游戏是图片API使用的“重灾区”,影视作品中的动画、特效也跑不掉,图形API作为泊来品,土生土长的中国人就难免吃不消。这时候先富带动后富的模式就突显了,无法从语言或者工具的本身下手,只好滋润在前辈的经验分享里。比如:毕业后即前往日本索尼敲代码的陈文礼在正式步入游戏行业后,陆续推出了围绕“从零开始手敲次世代游戏引擎”的文章,从图形渲染说开去。
文/良宵听雨。授权“游戏夜读”发表。
版权声明: 本文为 InfoQ 作者【game1night】的原创文章。
原文链接:【http://xie.infoq.cn/article/0e6e85f02c3faf8def51b6fc5】。未经作者许可,禁止转载。
评论