﻿<?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++博客-The Programming world of Alex-随笔分类-Ogre</title><link>http://www.cppblog.com/qudeqing0204lyf/category/10131.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 06 Apr 2009 08:01:26 GMT</lastBuildDate><pubDate>Mon, 06 Apr 2009 08:01:26 GMT</pubDate><ttl>60</ttl><item><title>使用烘培简化Ogre中的阴影实现</title><link>http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/03/75448.html</link><dc:creator>Alex@VCC</dc:creator><author>Alex@VCC</author><pubDate>Tue, 03 Mar 2009 11:57:00 GMT</pubDate><guid>http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/03/75448.html</guid><wfw:comment>http://www.cppblog.com/qudeqing0204lyf/comments/75448.html</wfw:comment><comments>http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/03/75448.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/qudeqing0204lyf/comments/commentRss/75448.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qudeqing0204lyf/services/trackbacks/75448.html</trackback:ping><description><![CDATA[项目里的阴影实现一直没有做，考虑到毕竟是室内的漫游项目，对阴影要求效果并不是很高，就准备用烘培试试看。况且烘培不用改代码，模型改好后一劳永逸。<br><br>有图有真相，看图说话<br><img src="http://www.cppblog.com/images/cppblog_com/qudeqing0204lyf/BakingTex.jpg" border=0><br><span style="FONT-FAMILY: Verdana">Max里随便加了两盏灯，模型用的是我最喜欢的1Box+4Cylinder，可以看出地板效果还是挺好的。光线有些暗，把material文件的emissive改大些就行，懒得弄了。<br>接下来就把项目的文件全部baking出来吧，好大的工作量-_-|</span><br>
<img src ="http://www.cppblog.com/qudeqing0204lyf/aggbug/75448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qudeqing0204lyf/" target="_blank">Alex@VCC</a> 2009-03-03 19:57 <a href="http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/03/75448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ogre多窗口显示在MFC下实现</title><link>http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/02/75338.html</link><dc:creator>Alex@VCC</dc:creator><author>Alex@VCC</author><pubDate>Mon, 02 Mar 2009 10:19:00 GMT</pubDate><guid>http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/02/75338.html</guid><wfw:comment>http://www.cppblog.com/qudeqing0204lyf/comments/75338.html</wfw:comment><comments>http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/02/75338.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/qudeqing0204lyf/comments/commentRss/75338.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qudeqing0204lyf/services/trackbacks/75338.html</trackback:ping><description><![CDATA[<span style="FONT-FAMILY: Verdana">项目中需要小地图效果自然想到了Ogre教程中的画中画显示，但是小地图把主窗口遮盖的比较严重。索性就再开个窗口单独作为小地图的显示吧<br>主要的思路就是在高度200处架设一个位置不变的Camera，用这个Camera显示出的效果作为小地图的输出<br>有图有真相，看图再继续<br><img height=417 alt="" src="http://www.cppblog.com/images/cppblog_com/qudeqing0204lyf/Minimap.jpg" width=600 border=0><br><br>在说明实现方法之前，需要理清楚Ogre中的一些关系：Root,RenderWindow,SceneManager,Camera,ViewPort<br>第一，Root在程序中是唯一的，是万物之源<br>第二，RenderWindow和Root是一对多的关系，而RenderWindow和MFC中的View（或者是Win32中的窗口）是一对一的关系，这也是Ogre能多窗口显示的基础<br>第三，SceneManager和Root是一对多关系，但本例中关系不大，我只用了一个SM<br>第四，RenderWindow和ViewPort是一对多关系，但一个RenderWindow必须有一个主ViewPort。<br>第五，Viewport和Camera是一对一关系，<br>第六，SceneManager和Camera是一对多关系，但通常一个程序中只显示一个Camera的内容，除非你在一个RenderWindow中设置了多个ViewPort，每个ViewPort对应不同的Camera（教程中的画中画就是这么来的）<br>画个图把关系理清楚些吧<br><img height=271 src="http://www.cppblog.com/images/cppblog_com/qudeqing0204lyf/OgreRelationship.jpg" width=402 border=0></span>&nbsp;<br><span style="FONT-FAMILY: Verdana">这个例子中我的设计思路是这样的：<br>创建两个RenderWindow，分别对应主窗口和小地图窗口，他们对应不同的ViewPort，而不同的ViewPort对应不同的Camera（主窗口就是原来的Camera，小地图窗口用的是新创建高度200的Camera）。<br>步骤大致如下：<br>1。用之前生成Curve窗口一样的方法创建一个可用的View类窗口<br>2。用与生成主窗口相同的方法来显示Ogre中的内容（SetupOgre。。。若干等等）<br>关键的是产生RenderWindow（用MinimapView窗口的句柄），SM采用getSceneManager获得主窗口的SM，再对Camera，ViewPort一一设置就行，总之就是对MFCView类照葫芦画瓢。<br><br>大功告成！<br><br>最后温习下Invalidate的知识：<br>Invalidate(TRUE);//擦除背景<br>Invalidate(FALSE);//不擦除背景<br>程序View类里的OnEraseBkgnd直接返回TRUE，并且定时器中用Invalidate(TRUE);就能避免窗口闪烁啦</span> 
<img src ="http://www.cppblog.com/qudeqing0204lyf/aggbug/75338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qudeqing0204lyf/" target="_blank">Alex@VCC</a> 2009-03-02 18:19 <a href="http://www.cppblog.com/qudeqing0204lyf/archive/2009/03/02/75338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ogre+MFC+Xtreme框架完成</title><link>http://www.cppblog.com/qudeqing0204lyf/archive/2009/01/06/71378.html</link><dc:creator>Alex@VCC</dc:creator><author>Alex@VCC</author><pubDate>Tue, 06 Jan 2009 13:08:00 GMT</pubDate><guid>http://www.cppblog.com/qudeqing0204lyf/archive/2009/01/06/71378.html</guid><wfw:comment>http://www.cppblog.com/qudeqing0204lyf/comments/71378.html</wfw:comment><comments>http://www.cppblog.com/qudeqing0204lyf/archive/2009/01/06/71378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/qudeqing0204lyf/comments/commentRss/71378.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qudeqing0204lyf/services/trackbacks/71378.html</trackback:ping><description><![CDATA[<p>之前已经做好了OgreMFC和XtremeMFC两个框架，今天花了点时间融合到一起，效果还不错，比较满意<br>虽然肯定有Bug，不过留着以后再改吧，呵呵<br>截图留念吧<img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emwink.gif" align=absMiddle border=0><br><img height=603 src="http://www.cppblog.com/images/cppblog_com/qudeqing0204lyf/OgreMFC_Extreme.jpg" width=862 border=0></p>
<img src ="http://www.cppblog.com/qudeqing0204lyf/aggbug/71378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qudeqing0204lyf/" target="_blank">Alex@VCC</a> 2009-01-06 21:08 <a href="http://www.cppblog.com/qudeqing0204lyf/archive/2009/01/06/71378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>