zoukankan      html  css  js  c++  java
  • 每天花30分钟看OGRE(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析

    12.Ogre的渲染流程?

    A:

    clip_image002


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

    clip_image006

    好多管理器啊!

    clip_image008

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

    }

    就是这么起作用的!

    clip_image012

    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

    clip_image014

  • 相关阅读:
    AUDIT审计的一些使用
    HOW TO PERFORM BLOCK MEDIA RECOVERY (BMR) WHEN BACKUPS ARE NOT TAKEN BY RMAN. (Doc ID 342972.1)
    使用BBED理解和修改Oracle数据块
    Using Class of Secure Transport (COST) to Restrict Instance Registration in Oracle RAC [ID 1340831.1]
    调试利器GDB概念
    第4章 思科IOS
    第3章 ip地址和子网划分
    第2章 TCPIP
    2020年阅读过的黑客资源推荐篇
    第1章 计算机网络
  • 原文地址:https://www.cnblogs.com/lai3d/p/1653110.html
Copyright © 2011-2022 走看看