博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ogre中Mesh的加载过程详述
阅读量:5299 次
发布时间:2019-06-14

本文共 780 字,大约阅读时间需要 2 分钟。

转自:

如果新开始写一个3D渲染引擎,Mesh应该是一个很好的切入点。当一个看似简单的Mesh渲染到窗口时,说明引擎的架构已经确定,并验证了。想了解Ogre内部的机制, 可以先看看Mesh的加载过程,这里主要涉及到Resource是如何管理的,Material是怎样处理的,Resource和HardwareBuffer是如何关联的。对于前面教程代码的执行过程做一下分析:

创建一个Entity(加载Mesh及其相关的Material)的调用流程如下:
SceneManager::createEntity()
->SceneManager::createMovableObject()
->MovableObjectFactory::createInstance()
->EntityFactory::createInstanceImpl()
主要的操作就在这个函数中完成,其中第一步为加载Mesh,Mesh包含若干SubMesh,此时并不加载相关的材质,只是记录所关联的材质名称;
-->MeshManager::load()
-->Mesh::load()
-->Mesh::loadImpl()
-->MeshSerializer::importMesh()
第二步为new一个Entity对象,其中包含创建SubEntity对象并加载相关的“材质”。
-->Entity::Entity()
-->Entity::buildSubEntityList()
-->SubEntity::setMaterialName()
-->Material::loadImpl()
-->Material::compile()
 
下面是相关的一个class的UML图:

转载于:https://www.cnblogs.com/hnfxs/p/3185362.html

你可能感兴趣的文章
判断是否为空然后赋值
查看>>
中标麒麟QT+ODBC+人大金仓开发环境配置
查看>>
Silverlight WCF RIA服务(九)Domain Service 2
查看>>
JSON的结构
查看>>
NopCommerce换主题这件小事
查看>>
zabbix监控日志文件
查看>>
mysql查询数据库中每一张表的内存大小
查看>>
ThinkPHP函数详解:U方法
查看>>
正则表达式
查看>>
E4 - 使用Model Fragments扩展视图
查看>>
pip install torch on windows, and the 'from torch._C import * ImportError: DLL load failed:' s...
查看>>
zencart iis 伪静态设置 测试可用
查看>>
环套树
查看>>
中英文混合字符串长度
查看>>
[转]Repeat Page Header on each Page for reports SSRS
查看>>
Spring中事务传播行为
查看>>
java基础(一):我对java的三个环境变量的简单理解和配置
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2734: 国家排序
查看>>
YTU 2625: B 构造函数和析构函数
查看>>