每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析

12.Ogre的渲染流程?

A:

每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析_第1张图片

每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析_第2张图片

一个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

每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析_第3张图片

好多管理器啊!

每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析_第4张图片

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里

clip_image010

在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();

}

就是这么起作用的!

每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析_第5张图片

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

每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析_第6张图片

你可能感兴趣的:(解析)