[OGRE]基础教程来三发:来谈一谈摄像机吧

本文详细介绍了OGRE引擎中的摄像机和视口操作,包括创建摄像机、设置初始位置和朝向、调整裁剪距离,以及视口的创建和管理。通过示例代码展示了如何在场景中添加和配置摄像机,设置视口背景颜色,并探讨了不同类型的阴影效果,如调制纹理阴影、模板阴影和加成模板阴影。同时,文章还讲解了光源的创建和类型,包括点光源、聚光灯和有向光,以及如何设置光源的位置和颜色。
摘要由CSDN通过智能技术生成

今天我们来谈谈OGRE中的摄像机吧,像机吧,机吧,吧。

首先先来给大家介绍两个函数:createViewportcreateCamera,这两个方法已经在基类ExampleApplication中定义了

我们把这两个函数加到TutorialApplication 类中

#include "ExampleApplication.h"
class TutorialApplication : public ExampleApplication
{
public:
	TutorialApplication()
	{
	}
	~TutorialApplication() 
	{
	}
protected:
	virtual void createCamera(void)
	{
	}
	
	virtual void createViewports(void)
	{
	}

	void createScene(void)
	{
		//设置背景灯光
		mSceneMgr->setAmbientLight( ColourValue( 1, 1, 1 ) );

		//第一个机器人
		Entity *ent1 = mSceneMgr->createEntity( "Robot", "robot.mesh" );
		SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "RobotNode" ,Vector3( -100, 0, 0 ) );
		node1->attachObject( ent1 );
		node1->yaw( Degree( -90 ) );
	}
};

cpp文件不做任何修改:

#include "TutorialApplication.h"
#include "windows.h"

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
{
	TutorialApplication app; 
	try 
	{
		app.go();
	}
	catch( Exception& e )
	{
		MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
	}
}


我们用这两个方法,演示摄像机和视口具体建立和使用

首先,先来创建个摄像机。场景管理器里有自带的摄像机,以此来创建我们的摄像机。

添加下面的代码到创建摄像机方法里:

          // 创建摄像机

       mCamera = mSceneMgr->createCamera("PlayerCam");

这将创建一个叫"PlayerCam"的摄像机。如果你不打算保留它的指针,那么你可以调用场景管理器的方法 getCamera通过传递它的名字来获取它。


接下来,继续设置摄像机的初始位置和朝向。

我们将设置摄像机朝向坐标原点,所以我们需要设置一个恰当的Z轴距离。也就是说,摄像机身在Z轴,朝向原点。

添加下面的代码到刚才的后面:


       mCamera->setPosition(Vector3(0,10,500));

       mCamera->lookAt(Vector3(0,0,0));

lookAt方法和OpenGL中的是一样的,能够设置它面向任何你想要的角度。

接下来需要设置一个近距离裁剪,该距离内的事物是你看不到的。我们可以将值设为5单位距离。

设置近距离裁剪后,你能够在离实体很近的时候,很容易的透

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OGRE(O-O Graphics Rendering Engine) 使用指南________________________________________________________________1 作者_________________________________________________________________________ 6 序____________________________________________________________________________7 教程的目的_________________________________________________________________ 7 读者要求___________________________________________________________________ 7 教程的由来_________________________________________________________________ 7 OGRE简介___________________________________________________________________ 8 OGRE特点_________________________________________________________________ 8 效率特性__________________________________________________________________8 平台和3D API 支持________________________________________________________ 8 网格Meshes_______________________________________________________________ 8 场景特性__________________________________________________________________9 特效______________________________________________________________________9 其它特性__________________________________________________________________9 OGRE中的模块_____________________________________________________________ 9 OgreMain 模块____________________________________________________________ 10 SDL 平台管理模块________________________________________________________ 11 Win32 平台管理模块_______________________________________________________11 BSP 场景管理_____________________________________________________________11 文件系统插件_____________________________________________________________11 GuiElement 插件__________________________________________________________ 11 OctreeSceneManager 插件___________________________________________________ 11 ParticleFX 插件___________________________________________________________ 12 Direct3D7 渲染系统插件____________________________________________________12 Direct3D8 渲染系统插件____________________________________________________12 SDL 渲染系统插件________________________________________________________ 12 3ds2oof 工具______________________________________________________________12 3Dstudio Max 导出器_______________________________________________________12 位图字体创建工具_________________________________________________________12 Milkshape3D 导出器_______________________________________________________ 12 Python 接口______________________________________________________________ 13 XML 转换器______________________________________________________________13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值