基于Irrlicht1.41的3D漫游开发浅谈
不久前开始研究这个引擎,功能前大就不用多说了,显而易见,开始的时候比较迷茫,使用的结构性东西很不明朗,现在搞懂了,分享给大家。
Irrlicht下共有Irrlicht Irrlicht.Core Irrlicht.GUI Irrlicht.IO Irrlicht.Scence Irrlicht.Vedio,其中Irrlicht下的IrrlichtDevice是正个开发的核心。Sence以及Vedio的创建都必须与一个IrrlichtDevice实例相联系,例如:
ISceneManager smgr = device.SceneManager;
IVideoDriver driver = device.VideoDriver;
另外在Irrlicht开发中的另一个不可忽视的就是Node ,不同类型的Node通过ISceneMangger的实例来添加,具体node的作用可以参看帮助文档 。(本例中的就是通过smgr来添见node)
例如:
node = smgr.AddCubeSceneNode(10, null, 0, new Vector3D(0, 0, 30), new Vector3D(), new Vector3D(1, 1, 1));
ISceneNode n = smgr.AddTestSceneNode(10, null, 0, new Vector3D(), new Vector3D(), new Vector3D(1, 1, 1));
道理很简单,这样我们我们才能将我们的3维坐标和场景联系,同样每一个Mesh的导入也必须通过smgr(ISceneMangger的实例)。然后node与Mesh通过smgr相联系。例如:
IAnimatedMeshSceneNode anms = smgr.AddAnimatedMeshSceneNode(
smgr.GetMesh(path + "sydney.md2"), null, 0);
当所有的我们需要的模型导入后就剩下绘制了。
device.VideoDriver.BeginScene(true, true, new Color(0, 200, 200, 200));
device.SceneManager.DrawAll();
device.VideoDriver.EndScene();
其实不是很难得,只要明白了他们之间的联系,开发起来还是很容易的,别忘了添加Camera,不同的Camera,使用起来是不一样的,有的时候还是比较给人惊喜的。