﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-to myself 的分类学习日志-随笔分类-ogre</title><link>http://www.cppblog.com/toMyself/category/9711.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 12 May 2011 03:16:49 GMT</lastBuildDate><pubDate>Thu, 12 May 2011 03:16:49 GMT</pubDate><ttl>60</ttl><item><title>ogre点滴</title><link>http://www.cppblog.com/toMyself/archive/2011/04/08/143743.html</link><dc:creator>iven</dc:creator><author>iven</author><pubDate>Fri, 08 Apr 2011 10:38:00 GMT</pubDate><guid>http://www.cppblog.com/toMyself/archive/2011/04/08/143743.html</guid><description><![CDATA[Ogre::ResourceGroupManager <br><br><br>class Ogre::QuadtreeSceneManager : public Ogre::SceneManager <br>Ogre::TerrainGlobalOptions<br>Ogre::TerrainGroup <br><br><br>Ogre场景管理器：<br>分块地形和四叉树场景管理<br><br>Ogre默认没有提供四叉树场景管理器？<br><br>提供了class _OgreOctreePluginExport OctreeSceneManager : public SceneManager <br><br>// Initializes the manager to the given box and depth.<br>init();&nbsp;<br><br>// Cascade down the graph updating transforms &amp; world bounds<br>// In this implementation, just update from the root<br>// Smarter SceneManager subclasses may choose to update only<br>//&nbsp;certain scene graph branches<br>updateSceneGraph();<br><br>/** Walks through the octree, adding any visible objects to the render queue.<br>@remarks<br>If any octant in the octree if completely within the view frustum,<br>all subchildren are automatically added with no visibility tests.<br>*/<br>walkOctree();<br><br><br><br>Node<br>APK<br>RPK<br>Bounding<br>Collision<br><br>Mesh<br>AnimeMesh，动画骨骼<br>CollisionFace，碰撞面<br><br><br>// 创建一个Entity，定义物体的形状（3D网格）、是否可见等<br>Entity *ent2 = mSceneMgr-&gt;createEntity( "Robot2", "robot.mesh" );&nbsp;<br><br>// 创建一个Node（这个Node挂在Root Node下，偏离了根SceneNode50个单位），定义物体的方向、坐标、变换、旋转等<br>SceneNode *node2 = mSceneMgr-&gt;getRootSceneNode()-&gt;createChildSceneNode( "RobotNode2", Vector3( 50, 0, 0 ) );<br><br>// 将Entity挂载到Node上<br>node2-&gt;attachObject( ent2 );&nbsp;<br><br><br><br><br>参考：<br>1，<a href="http://dev.gameres.com/Program/Visual/3D/ogre/Ogre1_SceneNode.htm">http://dev.gameres.com/Program/Visual/3D/ogre/Ogre1_SceneNode.htm</a><br><br><br>
<img src ="http://www.cppblog.com/toMyself/aggbug/143743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/toMyself/" target="_blank">iven</a> 2011-04-08 18:38 <a href="http://www.cppblog.com/toMyself/archive/2011/04/08/143743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ogre summary</title><link>http://www.cppblog.com/toMyself/archive/2009/03/04/75492.html</link><dc:creator>iven</dc:creator><author>iven</author><pubDate>Wed, 04 Mar 2009 03:18:00 GMT</pubDate><guid>http://www.cppblog.com/toMyself/archive/2009/03/04/75492.html</guid><wfw:comment>http://www.cppblog.com/toMyself/comments/75492.html</wfw:comment><comments>http://www.cppblog.com/toMyself/archive/2009/03/04/75492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/toMyself/comments/commentRss/75492.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/toMyself/services/trackbacks/75492.html</trackback:ping><description><![CDATA[OGRE是一款图象引擎，只是一款图象引擎。全称Object-Oriented Graphics Rendering Engine，面向对象图形渲染引擎。<br>Ogre使用观察者（Observer）模式将自己的每一个状态变化通知给应用程序，客户代码通过注册来监听Ogre中事件和状态的改变来得到相应通知（例如演示程序中使用的FrameListener对象，可以监听到应用程序每一帧渲染的开始和结束事件）。<br>迭代器模式（Iterator）用来历遍一个数据结构中的所有数据。<br>访问者模式（Visitor）可以让你在不改变对象（例如，场景中所有节点）的前提下，增加定义一个新的对象的操作。<br><br>当前版本的Ogre支持两种渲染系统：Direct3D 9和OpenGL。<br><br>渲染窗口的名称和渲染窗口的标题<br>Direct3D渲染系统， OpenGL渲染系统<br>高度场<br>指向，方向，和&#8220;着眼点&#8221;（Direction，Orientation，and&#8220;Look-At&#8221;）<br>Camera（摄像机）对象只不过是用来构建Viewport的一个参数。这就意味着，一个单独的Camera实例可以绑定任意数量的Viewport实例。<br>使用startRendering()和帧监听结构来处理主循环。<br>renderOneFrame()方法可以正确的处理注册在Root类实例中的帧监听。<br>OSI, Input System<br>所有的图形引擎都在使用场景图（Scene Graph）的概念来组织管理它里面可渲染的物体。<br>碰撞检测<br>将场景结构（场景图）和场景内容完全分离，把场景图的结构和它所使用的数据节点作为平等的继承体系来使用。<br>&#8220;入口（Portalling）&#8221;问题：可以简单的理解&#8220;入口&#8221;就是两个场景区间的分界线（比如当你从一个关卡的室内场景中看到了室外场景中的一部分，那么这个窗子就成为了所谓的&#8220;入口&#8221;）。<br><br>$(OGRE_HOME)\include<br>$(OGRE_HOME)\lib 
<img src ="http://www.cppblog.com/toMyself/aggbug/75492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/toMyself/" target="_blank">iven</a> 2009-03-04 11:18 <a href="http://www.cppblog.com/toMyself/archive/2009/03/04/75492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>