• Ogre 渲染过程


    最近工作在研究OGRE渲染引擎,也学到了很多东西,工作也算是忙碌充实,压力与挑战并存吧,今天断断续续看了一下OGRE里面对Pass的应用,加上之前对RenderOperation的理解,算是OGRE中Render过程最主要的两个部分,在此整理一下,以备以后的查看。
    了解Pass主要是为了今后能够在渲染过程中将顶点和索引意外的信息,全部通过Pass来进行管理,儿不用自我过多的考虑细节,目前已经参照RenderOperation进行了改造,则下一步就是对Pass的构造,相对来说,Pass主要是对材质,光照,雾,混合,纹理,GPU等状态的一个管理列表,一言以蔽之,RenderOperation存储渲染对象的数据,儿Pass则存储了渲染风格
    回到本文的正文,主要集中在SceneManager类中,由于我们自身的原因或问题,不能直接使用SceneManager类来进行管理,则场景部分需要自我管理,因此需要了解OGRE的渲染过程,而我们则在逻辑上进行学习和参考。渲染过程大致如下:
    1.    _renderScene
    OGRE的渲染起点,每一帧都会调用改函数开启渲染之旅
    2.    _updateSceneGraph、_findVisibleObjects
    场景管理,没有深究,这个目前不是工作的重点,在以后需要的时候在深入研究,大致上就是常见的场景管理的一套,将目前相机视角下的所有Node准备更新,形成最终需要渲染的RenderQueue,(Overlay有自己的find函数)
    3.    _renderVisibleObjects
    此时经过场景管理已经组织好渲染队列(RenderQueue)开始渲染,采用观察者模式,每一个RenderablePass分解成Pass和RenderOperation,逐个遍历渲染
    a)    _setPass
    设置Pass属性给RenderSystem,该函数里面的内容非常丰富,材质、纹理、GPU等都在此设置给渲染引擎,准备后续的渲染
    b)     _ renderSingleObject
    在经过一系列准备后,开始渲染
    a、b之间的界限并不清晰,很多相关属性在这两者之间都有一些重叠,最后在renderSingleObject函数中实现了最终的render,完成一帧的渲染。
  • 相关阅读:
    atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性
    Atitit. atiOrder   Order 订单管理框架的设计
    Atitit.为什么小公司也要做高大上开源项目
    Atitit.atiInputMethod v2词库清理策略工具    q229
    12条黄金法则
    数据库主键设计
    xhtml常见问题
    程序员面试宝典
    采用XHTML和CSS设计可重用可换肤的WEB站点
    XHTML基础问答
  • 原文地址:https://www.cnblogs.com/nafio/p/9137639.html
Copyright © 2020-2023  润新知