3D游戏引擎Irrlicht浅谈(二)

3D游戏引擎Irrlicht浅谈(二)

Irrlicht如何做到跨平台?

从平台上说来说,
Irrlicht支持WindowsLinux、甚至于iPhoneAndroid

3D  API来说,Irrlicht支持D3DOpenGLSDL以及软件渲染,即将还会出现OpenGL ES的支持。

这些支持理论上使得你可以任意组合平台与3D API,比如在Windows平台下你可以使用上述的四种3D API来完成绘制。由于在Linux下没有D3D,那么你仍然可以使用OpenGLSDL和软件渲染。而在IphoneAndroid上则只能使用OpenGL ES了。

由此观之,Irrlicht的跨平台特性相当不错。

Irrlicht是怎么做到的?我们所有的绘图总是要有一个载体,这个载体对于现今所有操作系统都一样,那就是窗口,我们称之为设备。有了设备那就需要有3D的渲染驱动,这些渲染驱动就是3D API。这两个都有了,那么就可以进行3D绘图操作了。所以当务之急就是把这两部分给抽象出来,不同的平台的窗口从设备派生出来,不同的3D API从渲染驱动派生出来,Irrlicht就是这么做的。

更具体一点的就是在Irrlicht中的两个抽象接口,IrrlichtDeviceIVideoDriver分别将设备与驱动抽象出来。对于不同的设备(比如Android手机或iPhone手机)只需要实现这两个接口,那么Irrlicht就基本可以被你所用了,因为引擎的其他部分大部分都是平台无关的,涉及到的平台相关的部分根据需要做调整就可以了。

至此,如果新出现一个平台,或者新出现一个3D API,怎样把Irrlicht应用到其中,我想思路应该很清楚了。

你可能感兴趣的:(3D游戏引擎Irrlicht浅谈(二))