这几天在用Ogre读取Ogitor的场景,遇到了不少问题,在网上也找不到详细的说明,虽然读取Ogitor的场景对很多人来说太简单了,但对一些新手来说就有点难了,我刚开始就觉得是无从下手,因此简单的描述下读取过程和一些常见问题,希望对一些新手有所帮助,高手就可以跳过了O(∩_∩)O~

我简单的分为2大步:

1.     学会简单的使用Ogitor,新建自己的场景,然后导出为scene场景文件

Ogitor的简单操作我就不再详述了,直接引用网上的:

一、基本控制
1.场景中的坐标:x轴z轴表示左右,Y表示上下
2.QWEASD:摄像机方向、行走控制(在“Fly”与“Walk”模式下,作用略有不同)
3.鼠标中键+移动:晃动摄像机镜头
4.鼠标右键+移动:旋转摄像机镜头
5.Alt+Mouse Wheel:靠近或远离选中对象
6.Alt+鼠标右键+移动:摄像机围绕选中物体旋转
7.将摄像机放置到Scene Tree中选中的对象前:双击Scene Tree中的对象名字或按“F”键(只有场景在“Fly”模式下才有效)
8.增加摄像机移动速度:场景工具条中的“Speed+”(图标为带加号的摄像机)
9.减慢摄像机移动速度:场景工具条中的“Speed-”(图标为带减号的摄像机)

10.鼠标左键+移动:选中多个模型
11.选中多个模型:按住Shift键,依次点击需要选中的模型
12.从多个选择中去掉某个模型:按住Ctrl,依次点击不需要的模型——与Shift多选功能相反
13.复制模型:Shift+移动某个模型
14.移动模型使其贴到其他模型或地表上方:Ctrl+移动模型(不怎么灵敏,比手动好一点)
15.End键:高亮操作模型(移动,旋转,放缩)控件的一个轴

2.新建一个场景

1.打开新建一个场景的对话框(Project Settings),如下图:选择Project的存放位置,输入Project的名字。在Assets选项页中,单击鼠标右键,选择模型的Mesh及Material、贴图的存放位置(自己的模型等资源在这里添加,也可以项目建好后再重新设置)

2.新建好之后,可以在编辑器中看到一个空的场景,这时我们可以向场景中添加基本的对象——地形,天空,水体等等,编辑器都有提供,在Objects面板中,直接将所需对象拖入到场景中即可。

Terrain Group:地形组,拖动场景中(此时场景中并没生成地形,只是提供了地形的一个组,Ogitor中地形的最好单位是Page,Terrain Group由许多的Page构成)

Caelum:天空盒

Hydrax:水体

将对象拖入到场景中后,可以在Scene tree中看到各对象的名字,点击对象,可以在属性面板编辑他们的属性。

3.添加地形Page
在Scene面板树中,右击Terrain Group,选中Add Page。弹出对话框,选中page的位置和基本的地表纹理设定,确定之后就可以在Scene面板树中看到刚才添加的page,在场景中也可以看到基本的地形了


Page位置:Page的名字坐标与在场景中的位置如下图

每增加一个Page,在工程文件夹下的terrain文件夹下会增加两个文件,一个.ogt文件,一个.tga文件。一个Page对应这两个文件。Page的坐标名与这两个名的对应关系如下:
Page_0000ffff.ogt是由Page0x-1生成的。一个.ogt文件的前4个字符(这里是0000)对应page名字的第一个坐标(这里是0);ogt文件的后四个字符(这里是ffff)对应page名字的第二个坐标(这里是-1).
0  0000
1  0001
正数如上,依次类推
-1  ffff
-2  fffe
其他负数,收集中

3.编辑地形
Shift+地形升高:降低地形
地形编辑工具可以调整笔刷的样式,大小,强度等

Splat:地表贴图
Shift+地表贴图:擦掉这种地表贴图

一个Page最多支持6种不同的地表贴图,当发现地表贴图不能刷到地形上时,有两种情况:
1.这个Page的地形贴图也达到6种(可以在这个Page的属性property中看到Layers是否已达到6)
2.笔刷纹理已在当前刷的地方,只是上面覆盖了另一层不同的纹理(如一个page的同一个地方上有Layer0纹理A,Layer1纹理B,如果此时笔刷上的纹理为A,用A来刷这个地方,则没反应,此时正确的做法是:将笔刷上的纹理调整为B,按住Shift键,擦除纹理B,使纹理A露出来)

Paint:(ColorMap)
使用颜色纹理,此功能默认不启用,如要启用可以在Terrain Group的属性中勾选Colour Map

Splat Grass:在地表添加草(暂时不要在场景中使用此功能)

2.     Ogre读取导出的scene场景文件

导出的场景文件:

2.1把Ogitor自带的例子代码拷到自己的工程里

目录关系自己定(附加包含目录里添加例子文件的头文件,也可以不加,只要例子cpp文件能找到相应的头文件就行了,附加依赖项加上OgreTerrain_d.lib(根据实际情况来),然后就开始编译代码,编译过程中可能会找不到XX头文件,自己相应的添加就可以了,res文件夹也要拷的。

BaseApplication.cpp文件的bool BaseApplication::setup(void)方法下有个读取插件配置的改成这样mRoot = new Ogre::Root("plugins.cfg")  (如果直接把bin下那个文件改成和他一样也可以,那就不用改这里了)

2.2把导出的相应文件放到自己的资源路径下,并在resources.cfg添加相应的路径(注意:要加到[General]下,不然读出的地形看不到)

2.3Ogitor的bin目录下有个SampleAppConfig.xml,拷到你的exe生成目录下,<SampleApp projectDir="Media/scene/prj1" scene="mscene.scene"/>改成你自己相应的

(到这里就应该可以编译出你的EXE了,点击运行就能看到场景了,如果有遗留的话我再补充!)

学会使用Ogitor的更多相关文章

  1. [C#] C# 知识回顾 - 学会处理异常

    学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...

  2. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  3. 让你从零开始学会写爬虫的5个教程(Python)

    写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚本是很简单的,但是对于新手来说却并不是那么容易. ...

  4. 简简单单学会C#位运算

    一.理解位运算 要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作 二.理解数字进制 上面 ...

  5. 中国计算机学会CCF推荐国际学术会议

    中国计算机学会推荐国际学术会议 (计算机系统与高性能计算) 一.A类 序号 会议简称 会议全称 出版社 网址 1 ASPLOS Architectural Support for Programmin ...

  6. 十五分钟学会用Hessian

    了解Hessian Hessian是远程调用的一种技术,和WebService类似,但不同的是较WebService而言,它更轻量级,更简单,更快速.关于Hessian更详细全面的介绍可以查看http ...

  7. 七天学会ASP.NET MVC(七)——创建单页应用

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  8. 七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

    本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 . 系列文章 七天学会ASP.NET MVC ...

  9. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

随机推荐

  1. ogre入门笔记

    ogre作为一款开源的非商业渲染引擎, 除去效率不谈, 其设计结构十分优雅, 值得游戏从业者拥有和学习.本篇笔记基于ogre v1.9. 1.代码模块 ogre的核心代码分布如下图: ogreMain ...

  2. J2EE相关总结

    Java Commons The Java™ Tutorials: http://docs.oracle.com/javase/tutorial/index.html Java Platform, E ...

  3. linux笔记:软件包管理-软件包简介

    软件包分类: 1.源码包: 2.二进制包(在centos里就是RPM包.和源码包的区别在于已经经过编译.) 源码包的优点和缺点: RPM包的优点和缺点:

  4. node下新建工程

    打开控制台 输入express --view ejs 成功后有 输入cnpm install 成功后有 查看下现在的json文件,如图 用数据库的话可以键入 cnpm install --save m ...

  5. 鼠标经过导航中li时,一个彩色模块跟着鼠标移动

    1.鼠标经过导航中li时,一个活动的li跟随鼠标移动,最终移动到鼠标的停留的位置.(如需鼠标离开后让活动的li回到初始位置,则用jq hover事件,当鼠标离开时,给活动的li设置left是0) 2. ...

  6. jdk 安装

    安装JDK 选择安装目录 安装过程中会出现两次 安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中.(不能都安装在java文件夹的根目录下 ...

  7. 创建交货单/外向交货BAPI_OUTB_DELIVERY_CREATE_SLS/STO

    FUNCTION Z_SD_CREATE_DN. *"-------------------------------------------------------------------- ...

  8. 高度30px,宽度自适应,点线在文字中间

    <style>  .div{ position: relative; width: 100%; height: 30px; background: #ffff00}        .div ...

  9. jsm使用

    参考:http://blog.csdn.net/robinjwong/article/details/38820259

  10. 小记:获取post和get请求。

    package com.lixu.httpget_post; import java.io.ByteArrayOutputStream; import java.io.IOException; imp ...