Ogre6中级教材

Ogre6中级教材

ID:37711988

大小:26.82 KB

页数:8页

时间:2019-05-29

Ogre6中级教材_第1页
Ogre6中级教材_第2页
Ogre6中级教材_第3页
Ogre6中级教材_第4页
Ogre6中级教材_第5页
资源描述:

《Ogre6中级教材》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、文档:教程:中级教程:中级教程六出自Ogre3D开放资源地带跳转到:导航,搜索目录[隐藏]·1介绍·2准备开始·3起始代码·4投影贴图o4.1平截头体(Frustums)o4.2修改材质o4.3调用函数·5消除反向投影o5.1介绍o5.2修改投影器o5.3修改材质·6炫耀一下投影o6.1简单的旋转o6.2修改视线范围·7最后要注意的[编辑]介绍在这一课里,我们将介绍如何为场景中的一个物体添加投影贴图。投影纹理是非常有用的,比如你想要一个类似地面上的选择指示器,或者你正在瞄准的瞄准镜,或者投射在某个物体上的其它贴图。下面的截图是一个大家都喜爱的ogre头像,它被投影了一个瞄准器:[[

2、1]]你能在这里找到本课的代码。当你学习本课时,你应该逐个地往你的工程里添加代码,编译并观察结果。[编辑]准备开始开始之前,我们需要两张新图。右击这两个链接,并保存到Ogre可以找到的地方:[decal.png][decal_filter.png]最好放在media/materials/textures目录下(对于大多数人,是在OgreSDK目录里)。[编辑]起始代码用你喜爱的IDE创建一个cpp文件,并添加如下代码:#include"ExampleApplication.h"//AFrameListenerthatgetspassedourprojectornodeanddeca

3、lfrustumsotheycanbeanimatedclassProjectiveDecalListener :publicExampleFrameListener{public:ProjectiveDecalListener(RenderWindow*win,Camera*cam,SceneNode*proj,Frustum*decal) :ExampleFrameListener(win,cam),mProjectorNode(proj),mDecalFrustum(decal),mAnim(0){}boolframeStarted(constFrameEvent&evt){

4、returnExampleFrameListener::frameStarted(evt);}protected:SceneNode*mProjectorNode;Frustum*mDecalFrustum;floatmAnim;};classProjectiveDecalApplication :publicExampleApplication{protected:SceneNode*mProjectorNode;Frustum*mDecalFrustum;Frustum*mFilterFrustum;voidcreateScene(){//SetambientlightmSce

5、neMgr->setAmbientLight(ColourValue(0.2,0.2,0.2));//CreatealightLight*l=mSceneMgr->createLight("MainLight");l->setPosition(20,80,50);//PositionthecameramCamera->setPosition(60,200,70);mCamera->lookAt(0,0,0);//Make6ogreheads(namedhead0,head1,etc.)arrangedinacircleEntity*ent;for(inti=0;i<6;i++){S

6、ceneNode*headNode=mSceneMgr->getRootSceneNode()->createChildSceneNode();ent=mSceneMgr->createEntity("head"+StringConverter::toString(i),"ogrehead.mesh");headNode->attachObject(ent);Radianangle(i*Math::TWO_PI/6);headNode->setPosition(75*Math::Cos(angle),0,75*Math::Sin(angle));}}//Thefunctiontoc

7、reateourdecalprojectorvoidcreateProjector(){}//AfunctiontotakeanexistingmaterialandmakeitreceivetheprojecteddecalvoidmakeMaterialReceiveDecal(constString&matName){}//CreatenewframelistenervoidcreateFrameListener(void){mFrameListener=new

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。