Ogre源码分析与学习笔记-1

本文从RenderSystem入手,探讨Ogre 3D引擎的渲染机制,包括渲染环境、窗口管理、模型渲染等。重点介绍了注册FrameListener进行帧监听、Texture的类工厂模式、RenderOperation的使用以及RenderTarget的概念。同时提到了Ogre提供的多个RenderSystem实现,并指出可以自定义新的RenderSystem。文章还提及了Ogre中的状态管理和Lower level methods的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

既然是3D引擎, 最感兴趣的当然是他的渲染机制了, 所以, 就从他的RenderSystem入手!

 用VC2005 打开Ogre.dsw, 然后导出为05工程, 就可以在VC中看到所有工程了.
RenderSystem头文件位于Ogre -> OgreMain -> Header Files中

RenderSystem是一个纯虚的基类, 抽象出了与3D SDKs 无关的接口操作, 包括两大部分: 渲染环境/渲染窗口的创建与管理, 3D模型的渲染.
我重点关心的是渲染机制, 也就是模型的渲染.

 

由于这个类只有基类, 而且每个函数都有详细注释, 所以就不说函数的用法了

 

几点心得:
1. 可以注册一个FrameListener 到 RenderSystem, 可以在绘制每一帧时得到通知, 这是一个典型的观察者模式, FrameListener 有两个回调:

        virtual bool frameStarted(const FrameEvent& evt) { return true; }
        virtual bool frameEnded(const FrameEvent& evt) { return true; }

 

2. Textrue的生成要通过RenderSystem来, 这又是个典型的类工厂模式, 至于Texture的详情, 下次再说.

		/** Creates and registers a render texture object.
			@param name 
				The name for the new render texture. Note that names must be unique.
			@param width
				The requested width for the render text
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值