开源3D游戏引擎irrlicht(鬼火)Example讲解——CustomSceneNode.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《开源3D游戏引擎irrlicht(鬼火)Example讲解——CustomSceneNode.doc》由会员分享,可在线阅读,更多相关《开源3D游戏引擎irrlicht(鬼火)Example讲解——CustomSceneNode.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流开源3D游戏引擎irrlicht(鬼火)Example讲解CustomSceneNode【精品文档】第 6 页开源3D游戏引擎Irrlicht(鬼火)Example讲解CustomSceneNode赵刚Irrlicht引擎自带的第3个Example叫做CustomSceneNode,她演示了用户如何自己创建新的场景节点,如果用户对irrlicht里面已有的SceneNode都不满意,希望自己创建一个有特定功能的SceneNode可以参照这个例子做,这个例子创建的SceneNode很简单,只不过是一个四棱锥,但方法是可以参考的,用户理解后完全可以创建出复杂
2、的SceneNode。程序运行起来如下图:运行03.CustomSceneNode.exe的时候会先出来一个控制台窗口,按a,再按回车即可,表示选择OpenGL作为渲染API。进入bin目录下的examples目录可以看到03.CustomSceneNode目录,双击CustomSceneNode_vc9.vcproj文件打开工程文件,工程文件中只有一个main.cpp文件。内容如下(去除了英文注释):#include #include driverChoice.husing namespace irr;#ifdef _MSC_VER#pragma comment(lib, Irrlicht.
3、lib)#endifclass CSampleSceneNode : public scene:ISceneNodecore:aabbox3d Box;video:S3DVertex Vertices4;video:SMaterial Material;public:CSampleSceneNode(scene:ISceneNode* parent, scene:ISceneManager* mgr, s32 id): scene:ISceneNode(parent, mgr, id)Material.Wireframe = false;Material.Lighting = false;Ve
4、rtices0 = video:S3DVertex(0,0,10, 1,1,0,video:SColor(255,0,255,255), 0, 1);Vertices1 = video:S3DVertex(10,0,-10, 1,0,0,video:SColor(255,255,0,255), 1, 1);Vertices2 = video:S3DVertex(0,20,0, 0,1,1,video:SColor(255,255,255,0), 1, 0);Vertices3 = video:S3DVertex(-10,0,-10, 0,0,1,video:SColor(255,0,255,0
5、), 0, 0);Box.reset(Vertices0.Pos);for (s32 i=1; iregisterNodeForRendering(this);ISceneNode:OnRegisterSceneNode();virtual void render()u16 indices = 0,2,3, 2,1,3, 1,0,3, 2,0,1;video:IVideoDriver* driver = SceneManager-getVideoDriver();driver-setMaterial(Material);driver-setTransform(video:ETS_WORLD,
6、AbsoluteTransformation);driver-drawVertexPrimitiveList(&Vertices0, 4, &indices0, 4, video:EVT_STANDARD, scene:EPT_TRIANGLES, video:EIT_16BIT);virtual const core:aabbox3d& getBoundingBox() constreturn Box;virtual u32 getMaterialCount() constreturn 1;virtual video:SMaterial& getMaterial(u32 i)return M
7、aterial;int main()video:E_DRIVER_TYPE driverType=driverChoiceConsole();if (driverType=video:EDT_COUNT)return 1;IrrlichtDevice *device = createDevice(driverType,core:dimension2d(640, 480), 16, false);if (device = 0)return 1; / could not create selected driver.device-setWindowCaption(LCustom Scene Nod
8、e - Irrlicht Engine Demo);video:IVideoDriver* driver = device-getVideoDriver();scene:ISceneManager* smgr = device-getSceneManager();smgr-addCameraSceneNode(0, core:vector3df(0,-40,0), core:vector3df(0,0,0);CSampleSceneNode *myNode =new CSampleSceneNode(smgr-getRootSceneNode(), smgr, 666);scene:IScen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开源 游戏 引擎 irrlicht 鬼火 Example 讲解 CustomSceneNode
![提示](https://www.taowenge.com/images/bang_tan.gif)
链接地址:https://www.taowenge.com/p-34460951.html
限制150内