每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析...
12.Ogre的渲染流程?
A:
一个pass,最多16层贴图,8盏灯
OgreConfig.h
/** Define max number of texture layers allowed per pass on any card.
*/
#define OGRE_MAX_TEXTURE_LAYERS 16
/** Define max number of lights allowed per pass.
*/
#define OGRE_MAX_SIMULTANEOUS_LIGHTS 8
好多管理器啊!
13.在渲染的时候,材质是如何起作用的?
A:
一个物体的渲染看这里
SceneManager::renderSingleObject
在QueuedRenderableCollection::acceptVisitorGrouped里
// Visit Pass - allow skip 设置pass
if (!visitor->visit(ipass->first))
continue;
RenderableList* rendList = ipass->second;
RenderableList::const_iterator irend, irendend;
irendend = rendList->end();
// 迭代每个SubEntity,即每个SubMesh
for (irend = rendList->begin(); irend != irendend; ++irend)
{
// Visit Renderable 用设置的pass渲染
visitor->visit(const_cast<Renderable*>(*irend));
}
如OgreHead.mesh里
在SceneManager::_setPass这里把gpu程序绑到render system上的
if (pass->hasVertexProgram())
{
mDestRenderSystem->bindGpuProgram(pass->getVertexProgram()->_getBindingDelegate());
// bind parameters later since they can be per-object
// does the vertex program want surface and light params passed to rendersystem?
passSurfaceAndLightParams = pass->getVertexProgram()->getPassSurfaceAndLightStates();
}
就是这么起作用的!
14.材质加载和解析
这个是程序一开始就加载配置文件
ogre-v1-6-2\ogre\Samples\Common\bin\resources.cfg
# Resource locations to be added to the 'boostrap' path
# This also contains the minimum you need to use the Ogre example framework
[Bootstrap]
Zip=http://www.cnblogs.com/Media/packs/OgreCore.zip
# Resource locations to be added to the default path
[General]
FileSystem=http://www.cnblogs.com/Media
FileSystem=http://www.cnblogs.com/Media/fonts
FileSystem=http://www.cnblogs.com/Media/materials/programs
FileSystem=http://www.cnblogs.com/Media/materials/scripts
FileSystem=http://www.cnblogs.com/Media/materials/textures
FileSystem=http://www.cnblogs.com/Media/models
FileSystem=http://www.cnblogs.com/Media/overlays
FileSystem=http://www.cnblogs.com/Media/particle
FileSystem=http://www.cnblogs.com/Media/gui
FileSystem=http://www.cnblogs.com/Media/DeferredShadingMedia
FileSystem=http://www.cnblogs.com/Media/PCZAppMedia
Zip=http://www.cnblogs.com/Media/packs/cubemap.zip
Zip=http://www.cnblogs.com/Media/packs/cubemapsJS.zip
Zip=http://www.cnblogs.com/Media/packs/dragon.zip
Zip=http://www.cnblogs.com/Media/packs/fresneldemo.zip
Zip=http://www.cnblogs.com/Media/packs/ogretestmap.zip
Zip=http://www.cnblogs.com/Media/packs/skybox.zip
转载于:https://www.cnblogs.com/lai3d/archive/2010/01/21/1653110.html
每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析...相关推荐
- 剑桥学霸强烈推荐:每天花20分钟看这些视频,英语水平暴增
第一次见到娜娜,是在我组织的一次英语沙龙上. 她大学毕业不久,举着话筒说:"我的英语不可能好了,是我太笨了!" "那些整天吃喝玩乐的同学,都顺利入职外企工作,而我每天花8 ...
- 30 分钟看懂 PCA 主成分分析
来源:算法美食屋 本篇和大家分享一下PCA主成分分析的概念和在Python中的使用.之前也分享过两篇文章,也非常不错,可以结合起来一起看,加深理解. 一文读懂PCA算法的数学原理 讲讲降维算法:PCA ...
- 30分钟看懂XGBoost的基本原理
作者 | 梁云1991 转载自Python与算法之美(ID: Python_Ai_Road) 一.XGBoost和GBDT xgboost是一种集成学习算法,属于3类常用的集成方法(bagging,b ...
- 30 分钟看懂 CatBoost(Python代码)
CatBoost和XGBoost.LightGBM并称为GBDT的三大主流神器,都是在GBDT算法框架下的一种改进实现. 正如其名字所说那样,CatBoost主要是在类别特征上的处理上做了很多的改进. ...
- 30分钟?不需要,轻松读懂IL
先说说学IL有什么用,有人可能觉得这玩意平常写代码又用不上,学了有个卵用.到底有没有卵用呢,暂且也不说什么学了可以看看一些语法糖的实现,或对.net理解更深一点这些虚头巴脑的东西.最重要的理由就是一个 ...
- swiftui_使用SwiftUI在30分钟内制作一个应用
swiftui This post was first delivered as a live coding presentation at a Telstra Purple Back2Base ev ...
- 码书:入门中文NLP必备干货:5分钟看懂“结巴”分词(Jieba)
导读:近年来,随着NLP技术的日益成熟,开源实现的分词工具越来越多,如Ansj.盘古分词等.在本文中,我们选取了Jieba进行介绍和案例展示,主要基于以下考虑: 社区活跃.截止本文发布前,Jieba在 ...
- 从JVM看类的加载过程与对象实例化过程
一. 类的加载过程 1. 类的加载过程大致是个什么过程? 我们编写产生.java文件,这些.java文件经过Java编译器编译成拓展名为.class的文件,.class文件中保存着Java代码经转换后 ...
- pyqt5从子目录加载qrc文件_【JVM系统学习之路】一篇看懂类加载
JVM系统学习之路系列演示代码地址:https://github.com/mtcarpenter/JavaTutorial 嗨喽,小伙伴大家好,我是小春哥,今天是打卡 [JVM系统学习之路] 的第二篇 ...
- chrome渲染流程(自己看的,写的比较乱)
1.渲染流程 由于渲染机制过于复杂,所以渲染模块在执行过程中会被划分为很多子阶段,输入HTML经过这些子阶段,最后输出像素,我们把这样一个处理流程叫做渲染流水线,流水线可分为如下几个子阶段: 构建do ...
最新文章
- Hbase 和 MySQL 的区别是什么?一文深度对比!
- 很安逸的离线API文档查询工具Dash和Zeal
- java window.onload_从HTML中的window.onload调用webpacked代码
- Linux 命令 查看监听端口
- BZOJ3123: [Sdoi2013]森林
- 20190608笔试题のCSS-属性继承
- PHP在浏览器中被拒绝请求,php控制请求页面浏览器缓
- elasticsearch restful api操作使用指南
- 菜鸟学习Spring——初识Spring
- C# Windows Form编程
- java 多线程 银行排队_3.采用多线程模拟银行排队叫号
- watch港版微信无法连接到服务器,Apple Watch微信打不开怎么办
- 赫茨伯格的双因素激励理论(1966)--zt
- built a JNCIS LAB系列:Chapter 1 Routing Policy
- 对Volterra级数公式的理解-1
- 如何搭建自己的内测分发平台?有可以直接用的内测分发平台吗?
- Ayla CEO大卫.弗里德曼:你应该了解的五种物联网大数据!
- pandas常用命令
- Ubantu美化桌面类似Mac
- PHP单例模式 构造方法