首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
ogre3D学习基础8 --- 资源管理器
】的更多相关文章
ogre3D学习基础8 --- 资源管理器
资源管理 可管理的资源有: 材质资源:在.material文件中包含的材质脚本定义(技术.通路.纹理单元等数据的定义). 模型资源:经过优化的二进制网格模型文件,扩展名为.mesh.包含几何信息和一些动画数据. 骨骼资源:经过优化的二进制骨骼文件,扩展名为.skeleton.包含骨骼动的数据以及相应帧动画的信息. 字体资源:字体的配置信息,扩展名为.fontdef的文件,其中包括TrueType字体的引用以及其他字体配置数据. GPU程序资源:在.program中对GPU程序的声明信息,与材质脚…
ogre3D学习基础1 -- 核心对象与脚本技术
一.核心对象介绍1.命名空间 Ogre3d使用了C++的特性--命名空间,可以防止命名混淆.使用方法也简单,using namespace Ogre;或者直接在使用时加上“Ogre::”的前缀,如Ogre::Vector3等.2.Root对象 ---根对象 根(Root)对象是OGRE系统的入口,该对象在程序一开始时创建,最后结束时销毁.可用来配置系统,还可以获得系统中其他对象的指针,比如场景管理器(SceneManager),绘制系统(RenderSystem),资源管理器(Resource…
ogre3D学习基础11 -- 交换两个场景管理器
这一节,练习一下前几次学习的内容,功能很简单,就是建立两个不同的场景管理器,当按下键盘上某个键时切换镜头. 基本框架不变,这个监听器继承了两个父类,一个是我们的老朋友ExampleFrameListener,另一个我们也刚学过KeyListener. 好吧,开始. 首先我们声明一个宏,#define CAMERA_NAME "SceneCamera" ,这是我们要使用的摄像机常量,下面要多次使用. 然后我们定义两个全局函数, void setupViewport(RenderWindo…
ogre3D学习基础6---场景管理器的使用
场景管理器的使用 最常使用的坐标系统空间(同时也是Ogre程序所能提供的)即是世界空间(World).父节点空间(Parent)以及本地空间(Local). 1.世界空间 就是物体所存在的地方,当我们把一个模型放进世界模型里面去,那么它就有了一个世界坐标,这个世界坐标是用来标记世界中不同的模型所处的位置的.在世界空间里,世界的中心就是远点(0,0,0).而在ogre中,这个也相当于场景根节点的位置,所以世界空间在ogre中也可以理解为“相对于场景根节点”.世界空间也意味着用全局的X,Y,Z坐标.…
ogre3D学习基础5 -- 阴影与动画
五.阴影 阴影是渲染一个真实场景的重要组成部分,它可以给场景中的物体提供更加真实的感觉,同时还可以帮助用户更好的了解对象间的空间关系. 启用阴影: 缺省情况下,阴影是关闭的,开启方式如下: 1.建立场景时就设置阴影技术有效 -- mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE); 2.创建一个或者多个光源 3.关闭那些不需要投射阴影的物体,可以用物体的aetCastShadows(false)来实现. 4.设置投影的最远距离,…
ogre3D学习基础9 -- 光源程序实例
这一章练习一下光源的使用,光源分为三种:点光源,聚光源,有向光.具体内容前面说过,这里就不解释了. 继续在上一章的程序的基础上实现. 1.创建摄像机(Camera) createCamera()函数是继承自ExampleApplication的虚函数,把它实现了. class Example1:public ExampleApplication { public: //..........其他代码 virtual void createCamera() { mCamera = mSceneMgr…
ogre3D学习基础19 --- 材质的继承,纹理的滚动与旋转
以上一节为基础,废话不多说. 首先新增一个节点,用于比较显示 //新增一个节点 ent = mSceneMgr->createEntity("Quad"); ent->setMaterialName("MyMaterial9"); node = mSceneMgr->getRootSceneNode()->createChildSceneNode(,,)); node->attachObject(ent); 我们改变下纹理坐标显示的比例…
ogre3D学习基础18 -- 材质的使用与脚本的简单书写
这一节以基础16为基础,练习材质的使用. 第一,看看框架 //material #include "ExampleApplication.h" class TutorialApplication : public ExampleApplication { protected: public: TutorialApplication() { } ~TutorialApplication() { } protected: void createScene(void) { } }; #inc…
ogre3D学习基础17 --- 如何手动创建ogre程序
建立自己的Ogre程序 一直以来都是使用ExampleApplication.h来写程序,现在来看看它到底有什么神奇的地方. 首先,我们新建一个win32空项目 然后配置环境 最后新建define.cpp.define.h.main.cpp 具体过程如下 第一,在define.h中包含头文件,这里需要Orge.h文件,然后添加如下代码 #include "Ogre.h" class MyApplication { public: MyApplication(); ~MyApplica…
ogre3D学习基础16 -- 手动创建实体(ManualObject)
这一节练习一下手动创建实体,用到了对象(ManualObject) 第一,依然是模板 #include "ExampleApplication.h" class Example1 : public ExampleApplication { public: void createScene() { } protected: private: }; #include <windows.h> INT WINAPI WinMain( HINSTANCE hInst, HINSTAN…