12.Ogre的渲染流程?

A:

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

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

一个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的渲染流程,在渲染时材质是如何起作用的,材质加载和解析

好多管理器啊!

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

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里

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

在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的渲染流程,在渲染时材质是如何起作用的,材质加载和解析

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的渲染流程,在渲染时材质是如何起作用的,材质加载和解析

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-31
  • 2021-09-22
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-16
  • 2021-12-25
  • 2021-06-04
  • 2022-12-23
  • 2021-12-28
  • 2021-07-09
相关资源
相似解决方案