OGRE Homepage:http://www.ogre3d.org/
        OGRE的WIKI中有一系列的基本教程,这篇笔记就是读完这些教程后的一个总结。教程首页:http://www.ogre3d.org/wiki/index.php/Ogre_Tutorials
        Basic Tutorial 1主要讲了几个OGRE中的基本概念:
1.  SceneManager:所有屏幕上可见的东西都由SceneManager来管理;有多种类型的SceneManager,分别用来渲染Terrain、BSP等等。
2.  Entity:初步的理解一个Entity代表一个Mesh(可以含有动画),Light,Camera,Particle,Billboard不用Entity表示。Entity不能直接加到场景中,必须先attach到一个SceneNode上,SceneNode管理位置和方向。
3.  SceneNode:SceneNode管理位置和方向;需要注意子节点的是在父节点的空间中;一个SceneNode可以管理多个对象。
4.  OGRE中的Entity和SceneNode都必须指定全局唯一的名称。
 
Basic Tutorial 2 主要是讲OGRE中的Light和Shadow的设置
1.  要开启阴影:首先要调用SceneManager:: setShadowTechnique(),然后对于需要开启的Entity调用Entity:: setCastShadows()。
2.  灯光和摄像机都需要由SceneManager来创建,分别是SceneManager::createLight()和SceneManager::createCamera()。
 
Basic Tutorial 3 主要讲Terrain场景,Sky和Fog
1.  为了处理Terrain场景,首先要选择相应类型的SceneManager,这里选择了“ST_EXTERIOR_CLOSE”类型。这个操作是通过Root::createSceneManager()完成的。此操作创建并返回了一个TerrainSceneManager指针,同时创建了一个HeightmapTerrainPageSource对象。
2.  加载地形是通过:mSceneMgr->setWorldGeometry( "terrain.cfg" );语句来完成的。
3.  天空是通过SceneManager::setSkyBox()等函数完成的;
4.  Fog是通过SceneManager::setFog()完成。
 
Basic Tutorial 4 引入了FrameListener的概念
对于FrameListener的初步理解:OGRE在初始化完成之后,调用Root::startRendering()就启动了渲染循环。FrameListener是为了给应用程序处理各种事件的机会,最典型的就是frameStarted()和frameEnded()。
此教程的TutorialFrameListener从ExampleFrameListener派生,后者又从FrameListener和KeyListener派生,所以它可以处理按键事件。
 
Basic Tutorial 5,6没有仔细阅读。
 
以上几个教程都使用“ogrenew/Samples/Common”目录下的ExampleApplication的简单框架,有必要对它做一下了解。

Ogre学习笔记Basic Tutorial 前四课总结的更多相关文章

  1. 红帽学习笔记[RHCSA] 第八课[Nice值、时间同步、RPM与Yum软件安装]

    第八课 nice值 什么是nice值 给进程设置的优先级就是nice.nice的范围是-20~20.nice值越小占用的系统资源就越多,就是这个进程不nice. 如何查看nice值 # 使用top命令 ...

  2. 【Android开发学习笔记】【第九课】重力感应

    概念 使用重力感应技术的Android游戏已经屡见不鲜,不知道自己以后会不会用到,所以先研究了一下. 在网上学习了一下,貌似没有api,所以得自己去分析手机处在怎样状态下.注意: 下面提供的demo程 ...

  3. 【Android开发学习笔记】【第一课】初识New Project,工程文件介绍

    初学者新建一个Andriod工程后,往往不知道Pakage Explorer区域的每个文件是什么作用,今天学习了一下,自我总结一下. 1.先新建一个工程 2.输入名称,以及支持的SDK版本等(这些可以 ...

  4. Deep Learning.ai学习笔记_第四门课_卷积神经网络

    目录 第一周 卷积神经网络基础 第二周 深度卷积网络:实例探究 第三周 目标检测 第四周 特殊应用:人脸识别和神经风格转换 第一周 卷积神经网络基础 垂直边缘检测器,通过卷积计算,可以把多维矩阵进行降 ...

  5. Deep Learning.ai学习笔记_第三门课_结构化机器学习项目

    目录 第一周 机器学习策略(1) 第二周 机器学习策略(2) 目标:学习一些机器学习优化改进策略,使得搭建的学习模型能够朝着最有希望的方向前进. 第一周 机器学习策略(1) 搭建机器学习系统的挑战:尝 ...

  6. Deep Learning.ai学习笔记_第二门课_改善深层神经网络:超参数调试、正则化以及优化

    目录 第一周(深度学习的实践层面) 第二周(优化算法) 第三周(超参数调试.Batch正则化和程序框架) 目标: 如何有效运作神经网络,内容涉及超参数调优,如何构建数据,以及如何确保优化算法快速运行, ...

  7. Deep Learning.ai学习笔记_第一门课_神经网络和深度学习

    目录 前言 第一周(深度学习引言) 第二周(神经网络的编程基础) 第三周(浅层神经网络) 第四周(深层神经网络) 前言 目标: 掌握神经网络的基本概念, 学习如何建立神经网络(包含一个深度神经网络), ...

  8. 郝健: Linux内存管理学习笔记-第1节课【转】

    本文转载自:https://blog.csdn.net/juS3Ve/article/details/80035751 摘要 MMU与分页机制 内存区域(内存分ZONE) LinuxBuddy分配算法 ...

  9. 【深度学习笔记】第 2 课:Logistic 多项式回归法

    """Softmax.""" scores = [3.0, 1.0, 0.2] import numpy as np def softmax ...

随机推荐

  1. nodeschool.io 8

    ~~ HTTP COLLECT ~~ Write a program that performs an HTTP GET request to a URL provided toyou as the ...

  2. uva----(100)The 3n + 1 problem

     The 3n + 1 problem  Background Problems in Computer Science are often classified as belonging to a ...

  3. 张艾迪Eidyzhang:解码天才Eidyzhang的诞生

    AOA解码:天才Eidyzhang的诞生AOA深度解读:世界第一天才Eidyzhang: (TheWorldNo.1Girl+TheWorldNo.1InterentGirl+世界第一女孩+世界第一互 ...

  4. iOS开发几年了,你清楚OC中的这些东西么!!!?

    iOS开发几年了,你清楚OC中的这些东西么!!!? 前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1 ...

  5. JS模块式开发

    问题:js文件须严格保证加载顺序(比如上例的1.js要在2.js的前面),依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难! C语言中模块开发-include ...

  6. C#常用的加密算法

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 方法一:     //须添加对System.Web的引用    ...

  7. cl.exe

    http://blog.csdn.net/happyanger6/article/details/7589016

  8. tomcat 创建虚拟主机

    1. tomcat8 2. TOMCATROOT/conf/server.xml 增加<Host name="HOSTNAME" appBase="ROOTDir& ...

  9. sql2008 附加数据库出错解决方法

    当遇到 无法为此请求检索数据,(Microsoft.SqlServer.SmoEnum)其他信息执行Transact-Sql语句或批处理时发生了异常, Microsoft.SqlServer.Conn ...

  10. sp转dp dp转px

    (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, mTextSize, context.getResources().getDis ...