dotsceneloader issue

Problems building or running the engine, queries about how to use features etc.
Post Reply
Pierrick584
Halfling
Posts: 42
Joined: Tue Jun 28, 2011 3:56 am

dotsceneloader issue

Post by Pierrick584 »

Hello, i've been trying the dotsceneloader based off rapidxml, yet i have this error at launch..

Code: Select all

terminate called after throwing an instance of 'rapidxml::parse_error'
  what():  expected =
Aborted
this is the code that use it

Code: Select all

    mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC,"ArenaScene");
 mLoader = new DotSceneLoader();
    mLoader->parseDotScene("ForestArena.scene", "General", mSceneMgr);

    mSceneMgr->destroyCamera(mCamera);

    Ogre::SceneManager::CameraIterator cameras = mSceneMgr->getCameraIterator();
    while (cameras.hasMoreElements())
    {
        Ogre::Camera* camera = cameras.getNext();
        mCamNames.push_back(camera->getName());
        Ogre::Entity* debugEnt = mSceneMgr->createEntity(camera->getName() + Ogre::String("_debug"), "scbCamera.mesh");

        try{
            Ogre::SceneNode* sNode = mSceneMgr->getSceneNode(camera->getName());
            sNode->attachObject(debugEnt);
            sNode->scale(0.5, 0.5, 0.5);
        }catch (...){
            Ogre::SceneNode* pNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(camera->getName());
            pNode->setPosition(camera->getPosition());
            pNode->setOrientation(camera->getOrientation());

            pNode->attachObject(debugEnt);
            pNode->scale(0.5, 0.5, 0.5);
        }
    }
    Ogre::String cameraName = mCamNames[0];
    try
    {
        mActiveCamera = mSceneMgr->getCamera(cameraName);
        mWindow->getViewport(0)->setCamera(mActiveCamera);
        mCameraMan->setCamera(mActiveCamera);
        mSceneMgr->getEntity(mActiveCamera->getName() + Ogre::String("_debug"))->setVisible(false);

        for(unsigned int ij = 0;ij < mLoader->mPGHandles.size();ij++)
        {
            mLoader->mPGHandles[ij]->setCamera(mActiveCamera);
        }

    }
    catch (Ogre::Exception& e)
    {
        Ogre::LogManager::getSingleton().logMessage("SampleApp::createScene : setting the active camera to (\"" +
            cameraName + ") failed: " + e.getFullDescription());
    }
this is my .scene, in case it is the issue

Code: Select all

<scene exported_by="viola" formatVersion="1.0.1" previous_export_time="0" export_time="1332643908.587254" >
	<nodes >
		<node name="Water" >
			<position y="-8.415182" x="0.000000" z="-0.000000" />
			<rotation qy="0.000000" qx="0.000000" qz="-0.000000" qw="1.000000" />
			<scale y="1.000000" x="1.000000" z="1.000000" />
			<game >
				<sensors />
				<actuators />
			</game>
			<entity anisotropic_friction="False" lock_trans_y="False" damping_trans="0.03999999910593033" damping_rot="0.10000000149011612" inertia_tensor="0.4000000059604645" actor="False" velocity_min="0.0" lock_trans_z="False" physics_type="STATIC" lock_trans_x="False" meshFile="Plane.002.mesh" friction_y="1.0" friction_x="1.0" friction_z="1.0" velocity_max="0.0" ghost="False" name="Plane.002" mass_radius="1.0" mass="1.0" lock_rot_x="False" lock_rot_y="False" lock_rot_z="False" />
		</node>
		<node name="BlackPlane2" >
			<position y="-10.455778" x="-59.368137" z="-1.054828" />
			<rotation qy="0.020826" qx="-0.028091" qz="-0.703720" qw="0.709616" />
			<scale y="4.171361" x="4.171361" z="4.171360" />
			<game >
				<sensors />
				<actuators />
			</game>
			<entity anisotropic_friction="False" lock_trans_y="False" damping_trans="0.03999999910593033" damping_rot="0.10000000149011612" inertia_tensor="0.4000000059604645" actor="False" velocity_min="0.0" lock_trans_z="False" physics_type="STATIC" lock_trans_x="False" meshFile="Plane.001.mesh" friction_y="1.0" friction_x="1.0" friction_z="1.0" velocity_max="0.0" ghost="False" name="Plane.001" mass_radius="1.0" mass="1.0" lock_rot_x="False" lock_rot_y="False" lock_rot_z="False" />
		</node>
		<node name="BlackPlane" >
			<position y="-1.979429" x="59.119385" z="-1.787335" />
			<rotation qy="0.020826" qx="-0.028091" qz="-0.703720" qw="0.709616" />
			<scale y="4.154945" x="4.154946" z="4.154944" />
			<game >
				<sensors />
				<actuators />
			</game>
			<entity anisotropic_friction="False" lock_trans_y="False" damping_trans="0.03999999910593033" damping_rot="0.10000000149011612" inertia_tensor="0.4000000059604645" actor="False" velocity_min="0.0" lock_trans_z="False" physics_type="STATIC" lock_trans_x="False" meshFile="Plane.mesh" friction_y="1.0" friction_x="1.0" friction_z="1.0" velocity_max="0.0" ghost="False" name="Plane" mass_radius="1.0" mass="1.0" lock_rot_x="False" lock_rot_y="False" lock_rot_z="False" />
		</node>
		<node name="Point" >
			<position y="7.419462" x="0.000000" z="-0.000000" />
			<rotation qy="0.000000" qx="0.000000" qz="-0.000000" qw="1.000000" />
			<scale y="1.000000" x="1.000000" z="1.000000" />
			<game >
				<sensors />
				<actuators />
			</game>
			<light type="point" name="Point" powerScale="0.5" >
				<position y="7.419462" x="0.000000" z="-0.000000" />
				<lightAttenuation range="5000" quadratic="0.0" constant="1.0" linear="0.005714285714285714" />
				<colourDiffuse r="0.44430220127105713" b="0.44667720794677734" g="1.0" />
				<colourSpecular r="0.44430220127105713" b="0.44667720794677734" g="1.0" />
			</light>
		</node>
		<node name="GroundLow" >
			<position y="0.000000" x="0.000000" z="-0.000000" />
			<rotation qy="0.000000" qx="0.000000" qz="-0.000000" qw="1.000000" />
			<scale y="60.892757" x="60.892757" z="60.892757" />
			<user_data type="Blender IDProperty" name="coat3D" value="<bpy id property from "OBGroundLow">" />
			<game >
				<sensors />
				<actuators />
			</game>
			<entity anisotropic_friction="False" lock_trans_y="False" damping_trans="0.03999999910593033" damping_rot="0.10000000149011612" inertia_tensor="0.4000000059604645" actor="False" velocity_min="0.0" lock_trans_z="False" physics_type="STATIC" lock_trans_x="False" meshFile="Circle.004.mesh" friction_y="1.0" friction_x="1.0" friction_z="1.0" velocity_max="0.0" ghost="False" name="Circle.004" mass_radius="1.0" mass="1.0" lock_rot_x="False" lock_rot_y="False" lock_rot_z="False" />
		</node>
		<node name="Sun" >
			<position y="62.034492" x="35.972466" z="-50.499321" />
			<rotation qy="0.880037" qx="0.116514" qz="-0.364386" qw="0.281394" />
			<scale y="1.000000" x="1.000000" z="1.000000" />
			<game >
				<sensors />
				<actuators />
			</game>
			<light type="directional" name="Sun" powerScale="0.5" >
				<position y="62.034492" x="35.972466" z="-50.499321" />
				<lightAttenuation range="5000" quadratic="0.0" constant="1.0" linear="0.04" />
				<direction y="-1.0" x="0.0" z="0.0" />
				<colourDiffuse r="0.7115558981895447" b="1.0" g="0.8380383253097534" />
				<colourSpecular r="0.7115558981895447" b="1.0" g="0.8380383253097534" />
			</light>
		</node>
		<node name="Spot" >
			<position y="72.959663" x="-17.856323" z="79.620178" />
			<rotation qy="-0.100490" qx="0.405840" qz="0.044950" qw="0.907290" />
			<scale y="1.000000" x="1.000000" z="1.000000" />
			<game >
				<sensors />
				<actuators />
			</game>
			<light type="spot" name="Spot" powerScale="1.0" >
				<position y="72.959663" x="-17.856323" z="79.620178" />
				<lightAttenuation range="5000" quadratic="0.0" constant="1.0" linear="0.005714285714285714" />
				<direction y="-1.0" x="0.0" z="0.0" />
				<spotLightRange outer="1.4352192878723145" inner="1.2199363861368937" falloff="1.0" />
				<colourDiffuse r="1.0" b="0.6959532499313354" g="0.9600939750671387" />
				<colourSpecular r="1.0" b="0.6959532499313354" g="0.9600939750671387" />
			</light>
		</node>
		<node name="WallLow" >
			<position y="0.000000" x="0.000000" z="-0.000000" />
			<rotation qy="0.000000" qx="0.000000" qz="-0.000000" qw="1.000000" />
			<scale y="60.000000" x="60.000000" z="60.000000" />
			<game >
				<sensors />
				<actuators />
			</game>
			<entity anisotropic_friction="False" lock_trans_y="False" damping_trans="0.03999999910593033" damping_rot="0.10000000149011612" inertia_tensor="0.4000000059604645" actor="False" velocity_min="0.0" lock_trans_z="False" physics_type="STATIC" lock_trans_x="False" meshFile="Circle.002.mesh" friction_y="1.0" friction_x="1.0" friction_z="1.0" velocity_max="0.0" ghost="False" name="Circle.002" mass_radius="1.0" mass="1.0" lock_rot_x="False" lock_rot_y="False" lock_rot_z="False" />
		</node>
	</nodes>
	<externals >
		<item type="material" >
			<file name="/home/viola/Art/blends/StarkadStudio/ForestArena/Water.material" />
		</item>
		<item type="material" >
			<file name="/home/viola/Art/blends/StarkadStudio/ForestArena/BlackPlane.material" />
		</item>
		<item type="material" >
			<file name="/home/viola/Art/blends/StarkadStudio/ForestArena/Ground.material" />
		</item>
		<item type="material" >
			<file name="/home/viola/Art/blends/StarkadStudio/ForestArena/Wall.material" />
		</item>
	</externals>
	<environment >
		<colourBackground r="0.252937376499176" b="0.252937376499176" g="0.252937376499176" />
		<colourAmbient r="0.0" b="0.0" g="0.0" />
		<colourDiffuse r="0.252937376499176" b="0.252937376499176" g="0.252937376499176" />
	</environment>
</scene>



Anyone know where it come from? Cookie to the one that fix this! :D


btw dotsceneloader file in next post (damn character limit)
Pierrick584
Halfling
Posts: 42
Joined: Tue Jun 28, 2011 3:56 am

Re: dotsceneloader issue

Post by Pierrick584 »

and the dotsceneloader... its exactly same as from the wiki, but just for convenience.
.cpp

Code: Select all

#include "dotsceneloader.h"
#include <Ogre.h>
#include <Terrain/OgreTerrain.h>
#include <Terrain/OgreTerrainGroup.h>
#include <Terrain/OgreTerrainMaterialGeneratorA.h>

#include "PagedGeometry.h"
#include "GrassLoader.h"
#include "BatchPage.h"
#include "ImpostorPage.h"
#include "TreeLoader3D.h"


#pragma warning(disable:4390)
#pragma warning(disable:4305)


using namespace Forests;

Ogre::TerrainGroup *StaticGroupPtr = 0;

Ogre::Real OgitorTerrainGroupHeightFunction(Ogre::Real x, Ogre::Real z, void *userData)
{
    return StaticGroupPtr->getHeightAtWorldPosition(x,0,z);
}

DotSceneLoader::DotSceneLoader() : mSceneMgr(0), mTerrainGroup(0)
{
    mTerrainGlobalOptions = OGRE_NEW Ogre::TerrainGlobalOptions();
}


DotSceneLoader::~DotSceneLoader()
{
    if(mGrassLoaderHandle)
        delete mGrassLoaderHandle;

    std::vector<Forests::PagedGeometry *>::iterator it = mPGHandles.begin();
    while(it != mPGHandles.end())
    {
        delete it[0];
        it++;
    }
    mPGHandles.clear();

    if(mTerrainGroup)
    {
        OGRE_DELETE mTerrainGroup;
    }

    OGRE_DELETE mTerrainGlobalOptions;
}

void ParseStringVector(Ogre::String &str, Ogre::StringVector &list)
{
    list.clear();
    Ogre::StringUtil::trim(str,true,true);
    if(str == "")
        return;

    int pos = str.find(";");
    while(pos != -1)
    {
        list.push_back(str.substr(0,pos));
        str.erase(0,pos + 1);
        pos = str.find(";");
    }

    if(str != "")
        list.push_back(str);
}

void DotSceneLoader::parseDotScene(const Ogre::String &SceneName, const Ogre::String &groupName, Ogre::SceneManager *yourSceneMgr, Ogre::SceneNode *pAttachNode, const Ogre::String &sPrependNode)
{
    // set up shared object values
    m_sGroupName = groupName;
    mSceneMgr = yourSceneMgr;
    m_sPrependNode = sPrependNode;
    staticObjects.clear();
    dynamicObjects.clear();

    rapidxml::xml_document<> XMLDoc;    // character type defaults to char

    rapidxml::xml_node<>* XMLRoot;

    Ogre::DataStreamPtr stream = Ogre::ResourceGroupManager::getSingleton().openResource(SceneName, groupName );
    char* scene = strdup(stream->getAsString().c_str());
    XMLDoc.parse<0>(scene);

    // Grab the scene node
    XMLRoot = XMLDoc.first_node("scene");

    // Validate the File
    if( getAttrib(XMLRoot, "formatVersion", "") == "")
    {
        Ogre::LogManager::getSingleton().logMessage( "[DotSceneLoader] Error: Invalid .scene File. Missing <scene>" );
        delete scene;
        return;
    }

    // figure out where to attach any nodes we create
    mAttachNode = pAttachNode;
    if(!mAttachNode)
        mAttachNode = mSceneMgr->getRootSceneNode();

    // Process the scene
    processScene(XMLRoot);

    delete scene;
}

void DotSceneLoader::processScene(rapidxml::xml_node<>* XMLRoot)
{
    // Process the scene parameters
    Ogre::String version = getAttrib(XMLRoot, "formatVersion", "unknown");

    Ogre::String message = "[DotSceneLoader] Parsing dotScene file with version " + version;
    if(XMLRoot->first_attribute("ID"))
        message += ", id " + Ogre::String(XMLRoot->first_attribute("ID")->value());
    if(XMLRoot->first_attribute("sceneManager"))
        message += ", scene manager " + Ogre::String(XMLRoot->first_attribute("sceneManager")->value());
    if(XMLRoot->first_attribute("minOgreVersion"))
        message += ", min. Ogre version " + Ogre::String(XMLRoot->first_attribute("minOgreVersion")->value());
    if(XMLRoot->first_attribute("author"))
        message += ", author " + Ogre::String(XMLRoot->first_attribute("author")->value());

    Ogre::LogManager::getSingleton().logMessage(message);

    rapidxml::xml_node<>* pElement;

    // Process environment (?)
    pElement = XMLRoot->first_node("environment");
    if(pElement)
        processEnvironment(pElement);

    // Process nodes (?)
    pElement = XMLRoot->first_node("nodes");
    if(pElement)
        processNodes(pElement);

    // Process externals (?)
    pElement = XMLRoot->first_node("externals");
    if(pElement)
        processExternals(pElement);

    // Process userDataReference (?)
    pElement = XMLRoot->first_node("userDataReference");
    if(pElement)
        processUserDataReference(pElement);

    // Process octree (?)
    pElement = XMLRoot->first_node("octree");
    if(pElement)
        processOctree(pElement);

    // Process light (?)
    pElement = XMLRoot->first_node("light");
    while(pElement)
    {
        processLight(pElement);
        pElement = pElement->next_sibling("light");
    }

    // Process camera (?)
    pElement = XMLRoot->first_node("camera");
    while(pElement)
    {
        processCamera(pElement);
        pElement = pElement->next_sibling("camera");
    }

    // Process terrain (?)
    pElement = XMLRoot->first_node("terrain");
    if(pElement)
        processTerrain(pElement);
}

void DotSceneLoader::processNodes(rapidxml::xml_node<>* XMLNode)
{
    rapidxml::xml_node<>* pElement;

    // Process node (*)
    pElement = XMLNode->first_node("node");
    while(pElement)
    {
        processNode(pElement);
        pElement = pElement->next_sibling("node");
    }

    // Process position (?)
    pElement = XMLNode->first_node("position");
    if(pElement)
    {
        mAttachNode->setPosition(parseVector3(pElement));
        mAttachNode->setInitialState();
    }

    // Process rotation (?)
    pElement = XMLNode->first_node("rotation");
    if(pElement)
    {
        mAttachNode->setOrientation(parseQuaternion(pElement));
        mAttachNode->setInitialState();
    }

    // Process scale (?)
    pElement = XMLNode->first_node("scale");
    if(pElement)
    {
        mAttachNode->setScale(parseVector3(pElement));
        mAttachNode->setInitialState();
    }
}

void DotSceneLoader::processExternals(rapidxml::xml_node<>* XMLNode)
{
    //! @todo Implement this
}

void DotSceneLoader::processEnvironment(rapidxml::xml_node<>* XMLNode)
{
    rapidxml::xml_node<>* pElement;

    // Process camera (?)
    pElement = XMLNode->first_node("camera");
    if(pElement)
        processCamera(pElement);

    // Process fog (?)
    pElement = XMLNode->first_node("fog");
    if(pElement)
        processFog(pElement);

    // Process skyBox (?)
    pElement = XMLNode->first_node("skyBox");
    if(pElement)
        processSkyBox(pElement);

    // Process skyDome (?)
    pElement = XMLNode->first_node("skyDome");
    if(pElement)
        processSkyDome(pElement);

    // Process skyPlane (?)
    pElement = XMLNode->first_node("skyPlane");
    if(pElement)
        processSkyPlane(pElement);

    // Process clipping (?)
    pElement = XMLNode->first_node("clipping");
    if(pElement)
        processClipping(pElement);

    // Process colourAmbient (?)
    pElement = XMLNode->first_node("colourAmbient");
    if(pElement)
        mSceneMgr->setAmbientLight(parseColour(pElement));

    // Process colourBackground (?)
    //! @todo Set the background colour of all viewports (RenderWindow has to be provided then)
    pElement = XMLNode->first_node("colourBackground");
    if(pElement)
        ;//mSceneMgr->set(parseColour(pElement));

    // Process userDataReference (?)
    pElement = XMLNode->first_node("userDataReference");
    if(pElement)
        processUserDataReference(pElement);
}

void DotSceneLoader::processTerrain(rapidxml::xml_node<>* XMLNode)
{
    Ogre::Real worldSize = getAttribReal(XMLNode, "worldSize");
    int mapSize = Ogre::StringConverter::parseInt(XMLNode->first_attribute("mapSize")->value());
    bool colourmapEnabled = getAttribBool(XMLNode, "colourmapEnabled");
    int colourMapTextureSize = Ogre::StringConverter::parseInt(XMLNode->first_attribute("colourMapTextureSize")->value());
    int compositeMapDistance = Ogre::StringConverter::parseInt(XMLNode->first_attribute("tuningCompositeMapDistance")->value());
    int maxPixelError = Ogre::StringConverter::parseInt(XMLNode->first_attribute("tuningMaxPixelError")->value());

    Ogre::Vector3 lightdir(0, -0.3, 0.75);
    lightdir.normalise();
    Ogre::Light* l = mSceneMgr->createLight("tstLight");
    l->setType(Ogre::Light::LT_DIRECTIONAL);
    l->setDirection(lightdir);
    l->setDiffuseColour(Ogre::ColourValue(1.0, 1.0, 1.0));
    l->setSpecularColour(Ogre::ColourValue(0.4, 0.4, 0.4));
    mSceneMgr->setAmbientLight(Ogre::ColourValue(0.6, 0.6, 0.6));

    mTerrainGlobalOptions->setMaxPixelError((Ogre::Real)maxPixelError);
    mTerrainGlobalOptions->setCompositeMapDistance((Ogre::Real)compositeMapDistance);
    mTerrainGlobalOptions->setLightMapDirection(lightdir);
    mTerrainGlobalOptions->setCompositeMapAmbient(mSceneMgr->getAmbientLight());
    mTerrainGlobalOptions->setCompositeMapDiffuse(l->getDiffuseColour());

    mSceneMgr->destroyLight("tstLight");

    mTerrainGroup = OGRE_NEW Ogre::TerrainGroup(mSceneMgr, Ogre::Terrain::ALIGN_X_Z, mapSize, worldSize);
    mTerrainGroup->setOrigin(Ogre::Vector3::ZERO);

    mTerrainGroup->setResourceGroup("General");

    rapidxml::xml_node<>* pElement;
    rapidxml::xml_node<>* pPageElement;

    // Process terrain pages (*)
    pElement = XMLNode->first_node("terrainPages");
    if(pElement)
    {
        pPageElement = pElement->first_node("terrainPage");
        while(pPageElement)
        {
            processTerrainPage(pPageElement);
            pPageElement = pPageElement->next_sibling("terrainPage");
        }
    }
    mTerrainGroup->loadAllTerrains(true);

    mTerrainGroup->freeTemporaryResources();
    //mTerrain->setPosition(mTerrainPosition);
}

void DotSceneLoader::processTerrainPage(rapidxml::xml_node<>* XMLNode)
{
    Ogre::String name = getAttrib(XMLNode, "name");
    int pageX = Ogre::StringConverter::parseInt(XMLNode->first_attribute("pageX")->value());
    int pageY = Ogre::StringConverter::parseInt(XMLNode->first_attribute("pageY")->value());
    mPGPageSize       = Ogre::StringConverter::parseInt(XMLNode->first_attribute("pagedGeometryPageSize")->value());
    mPGDetailDistance = Ogre::StringConverter::parseInt(XMLNode->first_attribute("pagedGeometryDetailDistance")->value());
    // error checking
    if(mPGPageSize < 10){
        Ogre::LogManager::getSingleton().logMessage("[DotSceneLoader] pagedGeometryPageSize value error!", Ogre::LML_CRITICAL);
        mPGPageSize = 10;
    }
    if(mPGDetailDistance < 100){
        Ogre::LogManager::getSingleton().logMessage("[DotSceneLoader] pagedGeometryDetailDistance value error!", Ogre::LML_CRITICAL);
        mPGDetailDistance = 100;
    }

    if (Ogre::ResourceGroupManager::getSingleton().resourceExists(mTerrainGroup->getResourceGroup(), name))
    {
        mTerrainGroup->defineTerrain(pageX, pageY, name);
    }

    // grass layers
    rapidxml::xml_node<>* pElement = XMLNode->first_node("grassLayers");

    if(pElement)
    {
        processGrassLayers(pElement);
    }
}

void DotSceneLoader::processGrassLayers(rapidxml::xml_node<>* XMLNode)
{
    Ogre::String dMapName = getAttrib(XMLNode, "densityMap");
    mTerrainGlobalOptions->setVisibilityFlags(Ogre::StringConverter::parseUnsignedInt(XMLNode->first_attribute("visibilityFlags")->value()));

    // create a temporary camera
    Ogre::Camera* tempCam = mSceneMgr->createCamera("ThIsNamEShoUlDnOtExisT");

    // create paged geometry what the grass will use
    Forests::PagedGeometry * mPGHandle = new PagedGeometry(tempCam, mPGPageSize);
    mPGHandle->addDetailLevel<GrassPage>(mPGDetailDistance);

    //Create a GrassLoader object
    mGrassLoaderHandle = new GrassLoader(mPGHandle);
    mGrassLoaderHandle->setVisibilityFlags(mTerrainGlobalOptions->getVisibilityFlags());

    //Assign the "grassLoader" to be used to load geometry for the PagedGrass instance
    mPGHandle->setPageLoader(mGrassLoaderHandle);

    // set the terrain group pointer
    StaticGroupPtr = mTerrainGroup;

    //Supply a height function to GrassLoader so it can calculate grass Y values
    mGrassLoaderHandle->setHeightFunction(OgitorTerrainGroupHeightFunction);

    // push the page geometry handle into the PGHandles array
    mPGHandles.push_back(mPGHandle);

    // create the layers and load the options for them
    rapidxml::xml_node<>* pElement = XMLNode->first_node("grassLayer");
    rapidxml::xml_node<>* pSubElement;
    Forests::GrassLayer* gLayer;
    Ogre::String tempStr;
    while(pElement)
    {
        // grassLayer
        gLayer = mGrassLoaderHandle->addLayer(pElement->first_attribute("material")->value());
        gLayer->setId(Ogre::StringConverter::parseInt(pElement->first_attribute("id")->value()));
        gLayer->setEnabled(Ogre::StringConverter::parseBool(pElement->first_attribute("enabled")->value()));
        gLayer->setMaxSlope(Ogre::StringConverter::parseReal(pElement->first_attribute("maxSlope")->value()));
        gLayer->setLightingEnabled(Ogre::StringConverter::parseBool(pElement->first_attribute("lighting")->value()));

        // densityMapProps
        pSubElement = pElement->first_node("densityMapProps");
        tempStr = pSubElement->first_attribute("channel")->value();
        MapChannel mapCh;
        if(!tempStr.compare("ALPHA")) mapCh = CHANNEL_ALPHA; else
        if(!tempStr.compare("BLUE"))  mapCh = CHANNEL_BLUE;  else
        if(!tempStr.compare("COLOR")) mapCh = CHANNEL_COLOR; else
        if(!tempStr.compare("GREEN")) mapCh = CHANNEL_GREEN; else
        if(!tempStr.compare("RED"))   mapCh = CHANNEL_RED;

        gLayer->setDensityMap(dMapName, mapCh);
        gLayer->setDensity(Ogre::StringConverter::parseReal(pSubElement->first_attribute("density")->value()));

        // mapBounds
        pSubElement = pElement->first_node("mapBounds");
        gLayer->setMapBounds( TBounds(
                        Ogre::StringConverter::parseReal(pSubElement->first_attribute("left")->value()),  // left
                        Ogre::StringConverter::parseReal(pSubElement->first_attribute("top")->value()),   // top
                        Ogre::StringConverter::parseReal(pSubElement->first_attribute("right")->value()), // right
                        Ogre::StringConverter::parseReal(pSubElement->first_attribute("bottom")->value()) // bottom
                                )
                            );

        // grassSizes
        pSubElement = pElement->first_node("grassSizes");
        gLayer->setMinimumSize( Ogre::StringConverter::parseReal(pSubElement->first_attribute("minWidth")->value()),   // width
                                Ogre::StringConverter::parseReal(pSubElement->first_attribute("minHeight")->value()) );// height
        gLayer->setMaximumSize( Ogre::StringConverter::parseReal(pSubElement->first_attribute("maxWidth")->value()),   // width
                                Ogre::StringConverter::parseReal(pSubElement->first_attribute("maxHeight")->value()) );// height

        // techniques
        pSubElement = pElement->first_node("techniques");
        tempStr = pSubElement->first_attribute("renderTechnique")->value();
        GrassTechnique rendTech;

        if(!tempStr.compare("QUAD"))       rendTech = GRASSTECH_QUAD;       else
        if(!tempStr.compare("CROSSQUADS")) rendTech = GRASSTECH_CROSSQUADS; else
        if(!tempStr.compare("SPRITE"))     rendTech = GRASSTECH_SPRITE;
        gLayer->setRenderTechnique( rendTech,
                                    Ogre::StringConverter::parseBool(pSubElement->first_attribute("blend")->value()) );

        tempStr = pSubElement->first_attribute("fadeTechnique")->value();
        FadeTechnique fadeTech;
        if(!tempStr.compare("ALPHA")) fadeTech = FADETECH_ALPHA; else
        if(!tempStr.compare("GROW"))  fadeTech = FADETECH_GROW; else
        if(!tempStr.compare("ALPHAGROW")) fadeTech = FADETECH_ALPHAGROW;
        gLayer->setFadeTechnique(fadeTech);

        // animation
        pSubElement = pElement->first_node("animation");
        gLayer->setAnimationEnabled(Ogre::StringConverter::parseBool(pSubElement->first_attribute("animate")->value()));
        gLayer->setSwayLength(Ogre::StringConverter::parseReal(pSubElement->first_attribute("swayLength")->value()));
        gLayer->setSwaySpeed(Ogre::StringConverter::parseReal(pSubElement->first_attribute("swaySpeed")->value()));
        gLayer->setSwayDistribution(Ogre::StringConverter::parseReal(pSubElement->first_attribute("swayDistribution")->value()));

        // next layer
        pElement = pElement->next_sibling("grassLayer");
    }

    mSceneMgr->destroyCamera(tempCam);
}

void DotSceneLoader::processUserDataReference(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    //! @todo Implement this
}

void DotSceneLoader::processOctree(rapidxml::xml_node<>* XMLNode)
{
    //! @todo Implement this
}

void DotSceneLoader::processLight(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    // Process attributes
    Ogre::String name = getAttrib(XMLNode, "name");
    Ogre::String id = getAttrib(XMLNode, "id");

    // Create the light
    Ogre::Light *pLight = mSceneMgr->createLight(name);
    if(pParent)
        pParent->attachObject(pLight);

    Ogre::String sValue = getAttrib(XMLNode, "type");
    if(sValue == "point")
        pLight->setType(Ogre::Light::LT_POINT);
    else if(sValue == "directional")
        pLight->setType(Ogre::Light::LT_DIRECTIONAL);
    else if(sValue == "spot")
        pLight->setType(Ogre::Light::LT_SPOTLIGHT);
    else if(sValue == "radPoint")
        pLight->setType(Ogre::Light::LT_POINT);

    pLight->setVisible(getAttribBool(XMLNode, "visible", true));
    pLight->setCastShadows(getAttribBool(XMLNode, "castShadows", true));

    rapidxml::xml_node<>* pElement;

    // Process position (?)
    pElement = XMLNode->first_node("position");
    if(pElement)
        pLight->setPosition(parseVector3(pElement));

    // Process normal (?)
    pElement = XMLNode->first_node("normal");
    if(pElement)
        pLight->setDirection(parseVector3(pElement));

    pElement = XMLNode->first_node("directionVector");
    if(pElement)
    {
        pLight->setDirection(parseVector3(pElement));
        mLightDirection = parseVector3(pElement);
    }

    // Process colourDiffuse (?)
    pElement = XMLNode->first_node("colourDiffuse");
    if(pElement)
        pLight->setDiffuseColour(parseColour(pElement));

    // Process colourSpecular (?)
    pElement = XMLNode->first_node("colourSpecular");
    if(pElement)
        pLight->setSpecularColour(parseColour(pElement));

    if(sValue != "directional")
    {
        // Process lightRange (?)
        pElement = XMLNode->first_node("lightRange");
        if(pElement)
            processLightRange(pElement, pLight);

        // Process lightAttenuation (?)
        pElement = XMLNode->first_node("lightAttenuation");
        if(pElement)
            processLightAttenuation(pElement, pLight);
    }
    // Process userDataReference (?)
    pElement = XMLNode->first_node("userDataReference");
    if(pElement)
        ;//processUserDataReference(pElement, pLight);
}

void DotSceneLoader::processCamera(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    // Process attributes
    Ogre::String name = getAttrib(XMLNode, "name");
    Ogre::String id = getAttrib(XMLNode, "id");
    Ogre::Real fov = getAttribReal(XMLNode, "fov", 45);
    Ogre::Real aspectRatio = getAttribReal(XMLNode, "aspectRatio", 1.3333);
    Ogre::String projectionType = getAttrib(XMLNode, "projectionType", "perspective");

    // Create the camera
    Ogre::Camera *pCamera = mSceneMgr->createCamera(name);

    //TODO: make a flag or attribute indicating whether or not the camera should be attached to any parent node.
    //if(pParent)
    //    pParent->attachObject(pCamera);

    // Set the field-of-view
    //! @todo Is this always in degrees?
    //pCamera->setFOVy(Ogre::Degree(fov));

    // Set the aspect ratio
    //pCamera->setAspectRatio(aspectRatio);

    // Set the projection type
    if(projectionType == "perspective")
        pCamera->setProjectionType(Ogre::PT_PERSPECTIVE);
    else if(projectionType == "orthographic")
        pCamera->setProjectionType(Ogre::PT_ORTHOGRAPHIC);

    rapidxml::xml_node<>* pElement;

    // Process clipping (?)
    pElement = XMLNode->first_node("clipping");
    if(pElement)
    {
        Ogre::Real nearDist = getAttribReal(pElement, "near");
        pCamera->setNearClipDistance(nearDist);

        Ogre::Real farDist =  getAttribReal(pElement, "far");
        pCamera->setFarClipDistance(farDist);
    }

    // Process position (?)
    pElement = XMLNode->first_node("position");
    if(pElement)
        pCamera->setPosition(parseVector3(pElement));

    // Process rotation (?)
    pElement = XMLNode->first_node("rotation");
    if(pElement)
        pCamera->setOrientation(parseQuaternion(pElement));

    // Process normal (?)
    pElement = XMLNode->first_node("normal");
    if(pElement)
        ;//!< @todo What to do with this element?

    // Process lookTarget (?)
    pElement = XMLNode->first_node("lookTarget");
    if(pElement)
        ;//!< @todo Implement the camera look target

    // Process trackTarget (?)
    pElement = XMLNode->first_node("trackTarget");
    if(pElement)
        ;//!< @todo Implement the camera track target

    // Process userDataReference (?)
    pElement = XMLNode->first_node("userDataReference");
    if(pElement)
        ;//!< @todo Implement the camera user data reference
/*
    // construct a scenenode is no parent
    if(!pParent)
    {
        Ogre::SceneNode* pNode = mAttachNode->createChildSceneNode(name);
        pNode->setPosition(pCamera->getPosition());
        pNode->setOrientation(pCamera->getOrientation());
        pNode->scale(1,1,1);
    }
*/
}

void DotSceneLoader::processNode(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    // Construct the node's name
    Ogre::String name = m_sPrependNode + getAttrib(XMLNode, "name");

    // Create the scene node
    Ogre::SceneNode *pNode;
    if(name.empty())
    {
        // Let Ogre choose the name
        if(pParent)
            pNode = pParent->createChildSceneNode();
        else
            pNode = mAttachNode->createChildSceneNode();
    }
    else
    {
        // Provide the name
        if(pParent)
            pNode = pParent->createChildSceneNode(name);
        else
            pNode = mAttachNode->createChildSceneNode(name);
    }

    // Process other attributes
    Ogre::String id = getAttrib(XMLNode, "id");
    bool isTarget = getAttribBool(XMLNode, "isTarget");

    rapidxml::xml_node<>* pElement;

    // Process position (?)
    pElement = XMLNode->first_node("position");
    if(pElement)
    {
        pNode->setPosition(parseVector3(pElement));
        pNode->setInitialState();
    }

    // Process rotation (?)
    pElement = XMLNode->first_node("rotation");
    if(pElement)
    {
        pNode->setOrientation(parseQuaternion(pElement));
        pNode->setInitialState();
    }

    // Process scale (?)
    pElement = XMLNode->first_node("scale");
    if(pElement)
    {
        pNode->setScale(parseVector3(pElement));
        pNode->setInitialState();
    }

    // Process lookTarget (?)
    pElement = XMLNode->first_node("lookTarget");
    if(pElement)
        processLookTarget(pElement, pNode);

    // Process trackTarget (?)
    pElement = XMLNode->first_node("trackTarget");
    if(pElement)
        processTrackTarget(pElement, pNode);

    // Process node (*)
    pElement = XMLNode->first_node("node");
    while(pElement)
    {
        processNode(pElement, pNode);
        pElement = pElement->next_sibling("node");
    }

    // Process entity (*)
    pElement = XMLNode->first_node("entity");
    while(pElement)
    {
        processEntity(pElement, pNode);
        pElement = pElement->next_sibling("entity");
    }

    // Process light (*)
    //pElement = XMLNode->first_node("light");
    //while(pElement)
    //{
    //    processLight(pElement, pNode);
    //    pElement = pElement->next_sibling("light");
    //}

    // Process camera (*)
    pElement = XMLNode->first_node("camera");
    while(pElement)
    {
        processCamera(pElement, pNode);
        pElement = pElement->next_sibling("camera");
    }

    // Process particleSystem (*)
    pElement = XMLNode->first_node("particleSystem");
    while(pElement)
    {
        processParticleSystem(pElement, pNode);
        pElement = pElement->next_sibling("particleSystem");
    }

    // Process billboardSet (*)
    pElement = XMLNode->first_node("billboardSet");
    while(pElement)
    {
        processBillboardSet(pElement, pNode);
        pElement = pElement->next_sibling("billboardSet");
    }

    // Process plane (*)
    pElement = XMLNode->first_node("plane");
    while(pElement)
    {
        processPlane(pElement, pNode);
        pElement = pElement->next_sibling("plane");
    }

    // Process userDataReference (?)
    pElement = XMLNode->first_node("userDataReference");
    if(pElement)
        processUserDataReference(pElement, pNode);

    // Process entity (*)
    pElement = XMLNode->first_node("pagedgeometry");
    while(pElement)
    {
        processPagedGeometry(pElement, pNode);
        pElement = pElement->next_sibling("pagedgeometry");
    }
}

void DotSceneLoader::processLookTarget(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    //! @todo Is this correct? Cause I don't have a clue actually

    // Process attributes
    Ogre::String nodeName = getAttrib(XMLNode, "nodeName");

    Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_PARENT;
    Ogre::String sValue = getAttrib(XMLNode, "relativeTo");
    if(sValue == "local")
        relativeTo = Ogre::Node::TS_LOCAL;
    else if(sValue == "parent")
        relativeTo = Ogre::Node::TS_PARENT;
    else if(sValue == "world")
        relativeTo = Ogre::Node::TS_WORLD;

    rapidxml::xml_node<>* pElement;

    // Process position (?)
    Ogre::Vector3 position;
    pElement = XMLNode->first_node("position");
    if(pElement)
        position = parseVector3(pElement);

    // Process localDirection (?)
    Ogre::Vector3 localDirection = Ogre::Vector3::NEGATIVE_UNIT_Z;
    pElement = XMLNode->first_node("localDirection");
    if(pElement)
        localDirection = parseVector3(pElement);

    // Setup the look target
    try
    {
        if(!nodeName.empty())
        {
            Ogre::SceneNode *pLookNode = mSceneMgr->getSceneNode(nodeName);
            position = pLookNode->_getDerivedPosition();
        }

        pParent->lookAt(position, relativeTo, localDirection);
    }
    catch(Ogre::Exception &/*e*/)
    {
        Ogre::LogManager::getSingleton().logMessage("[DotSceneLoader] Error processing a look target!");
    }
}

void DotSceneLoader::processTrackTarget(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    // Process attributes
    Ogre::String nodeName = getAttrib(XMLNode, "nodeName");

    rapidxml::xml_node<>* pElement;

    // Process localDirection (?)
    Ogre::Vector3 localDirection = Ogre::Vector3::NEGATIVE_UNIT_Z;
    pElement = XMLNode->first_node("localDirection");
    if(pElement)
        localDirection = parseVector3(pElement);

    // Process offset (?)
    Ogre::Vector3 offset = Ogre::Vector3::ZERO;
    pElement = XMLNode->first_node("offset");
    if(pElement)
        offset = parseVector3(pElement);

    // Setup the track target
    try
    {
        Ogre::SceneNode *pTrackNode = mSceneMgr->getSceneNode(nodeName);
        pParent->setAutoTracking(true, pTrackNode, localDirection, offset);
    }
    catch(Ogre::Exception &/*e*/)
    {
        Ogre::LogManager::getSingleton().logMessage("[DotSceneLoader] Error processing a track target!");
    }
}

void DotSceneLoader::processEntity(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    // Process attributes
    Ogre::String name = getAttrib(XMLNode, "name");
    Ogre::String id = getAttrib(XMLNode, "id");
    Ogre::String meshFile = getAttrib(XMLNode, "meshFile");
    Ogre::String materialFile = getAttrib(XMLNode, "materialFile");
    bool isStatic = getAttribBool(XMLNode, "static", false);;
    bool castShadows = getAttribBool(XMLNode, "castShadows", true);

    // TEMP: Maintain a list of static and dynamic objects
    if(isStatic)
        staticObjects.push_back(name);
    else
        dynamicObjects.push_back(name);

    rapidxml::xml_node<>* pElement;

    // Process vertexBuffer (?)
    pElement = XMLNode->first_node("vertexBuffer");
    if(pElement)
        ;//processVertexBuffer(pElement);

    // Process indexBuffer (?)
    pElement = XMLNode->first_node("indexBuffer");
    if(pElement)
        ;//processIndexBuffer(pElement);

    // Create the entity
    Ogre::Entity *pEntity = 0;
    try
    {
        Ogre::MeshManager::getSingleton().load(meshFile, m_sGroupName);
        pEntity = mSceneMgr->createEntity(name, meshFile);
        pEntity->setCastShadows(castShadows);
        pParent->attachObject(pEntity);

        if(!materialFile.empty())
            pEntity->setMaterialName(materialFile);

        // Process subentity (*)
        /* if materials defined within subentities, those
           materials will be used instead of the materialFile */
        pElement = XMLNode->first_node("subentities");

        if(pElement)
        {
            processSubEntity(pElement, pEntity);
        }else{
            // if the .scene file contains the subentites without
            // the <subentities> </subentities>
            processSubEntity(XMLNode, pEntity);
        }
    }
    catch(Ogre::Exception &/*e*/)
    {
        Ogre::LogManager::getSingleton().logMessage("[DotSceneLoader] Error loading an entity!");
    }

    // Process userDataReference (?)
    pElement = XMLNode->first_node("userDataReference");
    if(pElement)
        processUserDataReference(pElement, pEntity);


}

void DotSceneLoader::processSubEntity(rapidxml::xml_node<>* XMLNode, Ogre::Entity *pEntity){
    rapidxml::xml_node<>* pElement;
    int index = 0;
    Ogre::String materialName;
    Ogre::String sIndex;

    // Process subentity
    pElement = XMLNode->first_node("subentity");

    while(pElement){

        sIndex.clear();
        materialName.clear();

        sIndex = getAttrib(pElement, "index");				// submesh index
        materialName = getAttrib(pElement, "materialName");	// new material for submesh

        if(!sIndex.empty() && !materialName.empty()){

            index = Ogre::StringConverter::parseInt(sIndex);
            try{
                pEntity->getSubEntity(index)->setMaterialName(materialName);
            } catch (...){
                Ogre::LogManager::getSingleton().logMessage("[DotSceneLoader] Subentity material index invalid!");
            }
        }
        pElement = pElement->next_sibling("subentity");
    }
}

void DotSceneLoader::processParticleSystem(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    // Process attributes
    Ogre::String name = getAttrib(XMLNode, "name");
    Ogre::String id = getAttrib(XMLNode, "id");
    Ogre::String file = getAttrib(XMLNode, "file");

    // Create the particle system
    try
    {
        Ogre::ParticleSystem *pParticles = mSceneMgr->createParticleSystem(name, file);
        pParent->attachObject(pParticles);
    }
    catch(Ogre::Exception &/*e*/)
    {
        Ogre::LogManager::getSingleton().logMessage("[DotSceneLoader] Error creating a particle system!");
    }
}

void DotSceneLoader::processBillboardSet(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    //! @todo Implement this
}

void DotSceneLoader::processPlane(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    Ogre::String name = getAttrib(XMLNode, "name");
    Ogre::Real distance = getAttribReal(XMLNode, "distance");
    Ogre::Real width = getAttribReal(XMLNode, "width");
    Ogre::Real height = getAttribReal(XMLNode, "height");
    int xSegments = Ogre::StringConverter::parseInt(getAttrib(XMLNode, "xSegments"));
    int ySegments = Ogre::StringConverter::parseInt(getAttrib(XMLNode, "ySegments"));
    int numTexCoordSets = Ogre::StringConverter::parseInt(getAttrib(XMLNode, "numTexCoordSets"));
    Ogre::Real uTile = getAttribReal(XMLNode, "uTile");
    Ogre::Real vTile = getAttribReal(XMLNode, "vTile");
    Ogre::String material = getAttrib(XMLNode, "material");
    bool hasNormals = getAttribBool(XMLNode, "hasNormals");
    Ogre::Vector3 normal = parseVector3(XMLNode->first_node("normal"));
    Ogre::Vector3 up = parseVector3(XMLNode->first_node("upVector"));

    Ogre::Plane plane(normal, distance);
    Ogre::MeshPtr res = Ogre::MeshManager::getSingletonPtr()->createPlane(
                        name + "mesh", "General", plane, width, height, xSegments, ySegments, hasNormals,
    numTexCoordSets, uTile, vTile, up);
    Ogre::Entity* ent = mSceneMgr->createEntity(name, name + "mesh");

    ent->setMaterialName(material);

    pParent->attachObject(ent);
}

struct PGInstanceInfo
{
    Ogre::Vector3 pos;
    Ogre::Real    scale;
    Ogre::Real    yaw;
};

typedef std::vector<PGInstanceInfo> PGInstanceList;

void DotSceneLoader::processPagedGeometry(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent)
{
    Ogre::String filename = "../Projects/SampleScene3/" + getAttrib(XMLNode, "fileName");
    Ogre::String model = getAttrib(XMLNode, "model");
    Ogre::Real pagesize = getAttribReal(XMLNode, "pageSize");
    Ogre::Real batchdistance = getAttribReal(XMLNode, "batchDistance");
    Ogre::Real impostordistance = getAttribReal(XMLNode, "impostorDistance");
    Ogre::Vector4 bounds = Ogre::StringConverter::parseVector4(getAttrib(XMLNode, "bounds"));

    PagedGeometry *mPGHandle = new PagedGeometry();
    mPGHandle->setCamera(mSceneMgr->getCameraIterator().begin()->second);
    mPGHandle->setPageSize(pagesize);
    mPGHandle->setInfinite();

    mPGHandle->addDetailLevel<BatchPage>(batchdistance,0);
    mPGHandle->addDetailLevel<ImpostorPage>(impostordistance,0);

    TreeLoader3D *mHandle = new TreeLoader3D(mPGHandle, Forests::TBounds(bounds.x, bounds.y, bounds.z, bounds.w));
    mPGHandle->setPageLoader(mHandle);

    mPGHandles.push_back(mPGHandle);
    mTreeHandles.push_back(mHandle);

    std::ifstream stream(filename.c_str());

    if(!stream.is_open())
        return;

    Ogre::StringVector list;

    char res[128];

    PGInstanceList mInstanceList;

    while(!stream.eof())
    {
        stream.getline(res, 128);
        Ogre::String resStr(res);

        ParseStringVector(resStr, list);

        if(list.size() == 3)
        {
            PGInstanceInfo info;

            info.pos = Ogre::StringConverter::parseVector3(list[0]);
            info.scale = Ogre::StringConverter::parseReal(list[1]);
            info.yaw = Ogre::StringConverter::parseReal(list[2]);

            mInstanceList.push_back(info);
        }
        else if(list.size() == 4)
        {
            PGInstanceInfo info;

            info.pos = Ogre::StringConverter::parseVector3(list[1]);
            info.scale = Ogre::StringConverter::parseReal(list[2]);
            info.yaw = Ogre::StringConverter::parseReal(list[3]);

            mInstanceList.push_back(info);
        }
    }

    stream.close();

    if(model != "")
    {
        Ogre::Entity *mEntityHandle = mSceneMgr->createEntity(model + ".mesh");

        PGInstanceList::iterator it = mInstanceList.begin();

        while(it != mInstanceList.end())
        {
            mHandle->addTree(mEntityHandle, it->pos, Ogre::Degree(it->yaw), it->scale);

            it++;
        }
    }
}

void DotSceneLoader::processFog(rapidxml::xml_node<>* XMLNode)
{
    // Process attributes
    Ogre::Real expDensity = getAttribReal(XMLNode, "density", 0.001);
    Ogre::Real linearStart = getAttribReal(XMLNode, "start", 0.0);
    Ogre::Real linearEnd = getAttribReal(XMLNode, "end", 1.0);

    Ogre::FogMode mode = Ogre::FOG_NONE;
    Ogre::String sMode = getAttrib(XMLNode, "mode");
    if(sMode == "none")
        mode = Ogre::FOG_NONE;
    else if(sMode == "exp")
        mode = Ogre::FOG_EXP;
    else if(sMode == "exp2")
        mode = Ogre::FOG_EXP2;
    else if(sMode == "linear")
        mode = Ogre::FOG_LINEAR;
    else
        mode = (Ogre::FogMode)Ogre::StringConverter::parseInt(sMode);

    rapidxml::xml_node<>* pElement;

    // Process colourDiffuse (?)
    Ogre::ColourValue colourDiffuse = Ogre::ColourValue::White;
    pElement = XMLNode->first_node("colour");
    if(pElement)
        colourDiffuse = parseColour(pElement);

    // Setup the fog
    mSceneMgr->setFog(mode, colourDiffuse, expDensity, linearStart, linearEnd);
}

void DotSceneLoader::processSkyBox(rapidxml::xml_node<>* XMLNode)
{
    // Process attributes
    Ogre::String material = getAttrib(XMLNode, "material", "BaseWhite");
    Ogre::Real distance = getAttribReal(XMLNode, "distance", 5000);
    bool drawFirst = getAttribBool(XMLNode, "drawFirst", true);
    bool active = getAttribBool(XMLNode, "active", false);
    if(!active)
        return;

    rapidxml::xml_node<>* pElement;

    // Process rotation (?)
    Ogre::Quaternion rotation = Ogre::Quaternion::IDENTITY;
    pElement = XMLNode->first_node("rotation");
    if(pElement)
        rotation = parseQuaternion(pElement);

    // Setup the sky box
    mSceneMgr->setSkyBox(true, material, distance, drawFirst, rotation, m_sGroupName);
}

void DotSceneLoader::processSkyDome(rapidxml::xml_node<>* XMLNode)
{
    // Process attributes
    Ogre::String material = XMLNode->first_attribute("material")->value();
    Ogre::Real curvature = getAttribReal(XMLNode, "curvature", 10);
    Ogre::Real tiling = getAttribReal(XMLNode, "tiling", 8);
    Ogre::Real distance = getAttribReal(XMLNode, "distance", 4000);
    bool drawFirst = getAttribBool(XMLNode, "drawFirst", true);
    bool active = getAttribBool(XMLNode, "active", false);
    if(!active)
        return;

    rapidxml::xml_node<>* pElement;

    // Process rotation (?)
    Ogre::Quaternion rotation = Ogre::Quaternion::IDENTITY;
    pElement = XMLNode->first_node("rotation");
    if(pElement)
        rotation = parseQuaternion(pElement);

    // Setup the sky dome
    mSceneMgr->setSkyDome(true, material, curvature, tiling, distance, drawFirst, rotation, 16, 16, -1, m_sGroupName);
}

void DotSceneLoader::processSkyPlane(rapidxml::xml_node<>* XMLNode)
{
    // Process attributes
    Ogre::String material = getAttrib(XMLNode, "material");
    Ogre::Real planeX = getAttribReal(XMLNode, "planeX", 0);
    Ogre::Real planeY = getAttribReal(XMLNode, "planeY", -1);
    Ogre::Real planeZ = getAttribReal(XMLNode, "planeX", 0);
    Ogre::Real planeD = getAttribReal(XMLNode, "planeD", 5000);
    Ogre::Real scale = getAttribReal(XMLNode, "scale", 1000);
    Ogre::Real bow = getAttribReal(XMLNode, "bow", 0);
    Ogre::Real tiling = getAttribReal(XMLNode, "tiling", 10);
    bool drawFirst = getAttribBool(XMLNode, "drawFirst", true);

    // Setup the sky plane
    Ogre::Plane plane;
    plane.normal = Ogre::Vector3(planeX, planeY, planeZ);
    plane.d = planeD;
    mSceneMgr->setSkyPlane(true, plane, material, scale, tiling, drawFirst, bow, 1, 1, m_sGroupName);
}

void DotSceneLoader::processClipping(rapidxml::xml_node<>* XMLNode)
{
    //! @todo Implement this

    // Process attributes
    Ogre::Real fNear = getAttribReal(XMLNode, "near", 0);
    Ogre::Real fFar = getAttribReal(XMLNode, "far", 1);
}

void DotSceneLoader::processLightRange(rapidxml::xml_node<>* XMLNode, Ogre::Light *pLight)
{
    // Process attributes
    Ogre::Real inner = getAttribReal(XMLNode, "inner");
    Ogre::Real outer = getAttribReal(XMLNode, "outer");
    Ogre::Real falloff = getAttribReal(XMLNode, "falloff", 1.0);

    // Setup the light range
    pLight->setSpotlightRange(Ogre::Angle(inner), Ogre::Angle(outer), falloff);
}

void DotSceneLoader::processLightAttenuation(rapidxml::xml_node<>* XMLNode, Ogre::Light *pLight)
{
    // Process attributes
    Ogre::Real range = getAttribReal(XMLNode, "range");
    Ogre::Real constant = getAttribReal(XMLNode, "constant");
    Ogre::Real linear = getAttribReal(XMLNode, "linear");
    Ogre::Real quadratic = getAttribReal(XMLNode, "quadratic");

    // Setup the light attenuation
    pLight->setAttenuation(range, constant, linear, quadratic);
}


Ogre::String DotSceneLoader::getAttrib(rapidxml::xml_node<>* XMLNode, const Ogre::String &attrib, const Ogre::String &defaultValue)
{
    if(XMLNode->first_attribute(attrib.c_str()))
        return XMLNode->first_attribute(attrib.c_str())->value();
    else
        return defaultValue;
}

Ogre::Real DotSceneLoader::getAttribReal(rapidxml::xml_node<>* XMLNode, const Ogre::String &attrib, Ogre::Real defaultValue)
{
    if(XMLNode->first_attribute(attrib.c_str()))
        return Ogre::StringConverter::parseReal(XMLNode->first_attribute(attrib.c_str())->value());
    else
        return defaultValue;
}

bool DotSceneLoader::getAttribBool(rapidxml::xml_node<>* XMLNode, const Ogre::String &attrib, bool defaultValue)
{
    if(!XMLNode->first_attribute(attrib.c_str()))
        return defaultValue;

    if(Ogre::String(XMLNode->first_attribute(attrib.c_str())->value()) == "true")
        return true;

    return false;
}

Ogre::Vector3 DotSceneLoader::parseVector3(rapidxml::xml_node<>* XMLNode)
{
    return Ogre::Vector3(
        Ogre::StringConverter::parseReal(XMLNode->first_attribute("x")->value()),
        Ogre::StringConverter::parseReal(XMLNode->first_attribute("y")->value()),
        Ogre::StringConverter::parseReal(XMLNode->first_attribute("z")->value())
    );
}

Ogre::Quaternion DotSceneLoader::parseQuaternion(rapidxml::xml_node<>* XMLNode)
{
    //! @todo Fix this crap!

    Ogre::Quaternion orientation;

    if(XMLNode->first_attribute("qx"))
    {
        orientation.x = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qx")->value());
        orientation.y = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qy")->value());
        orientation.z = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qz")->value());
        orientation.w = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qw")->value());
    }
    if(XMLNode->first_attribute("qw"))
    {
        orientation.w = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qw")->value());
        orientation.x = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qx")->value());
        orientation.y = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qy")->value());
        orientation.z = Ogre::StringConverter::parseReal(XMLNode->first_attribute("qz")->value());
    }
    else if(XMLNode->first_attribute("axisX"))
    {
        Ogre::Vector3 axis;
        axis.x = Ogre::StringConverter::parseReal(XMLNode->first_attribute("axisX")->value());
        axis.y = Ogre::StringConverter::parseReal(XMLNode->first_attribute("axisY")->value());
        axis.z = Ogre::StringConverter::parseReal(XMLNode->first_attribute("axisZ")->value());
        Ogre::Real angle = Ogre::StringConverter::parseReal(XMLNode->first_attribute("angle")->value());;
        orientation.FromAngleAxis(Ogre::Angle(angle), axis);
    }
    else if(XMLNode->first_attribute("angleX"))
    {
        Ogre::Vector3 axis;
        axis.x = Ogre::StringConverter::parseReal(XMLNode->first_attribute("angleX")->value());
        axis.y = Ogre::StringConverter::parseReal(XMLNode->first_attribute("angleY")->value());
        axis.z = Ogre::StringConverter::parseReal(XMLNode->first_attribute("angleZ")->value());
        //orientation.FromAxes(&axis);
        //orientation.F
    }
    else if(XMLNode->first_attribute("x"))
    {
        orientation.x = Ogre::StringConverter::parseReal(XMLNode->first_attribute("x")->value());
        orientation.y = Ogre::StringConverter::parseReal(XMLNode->first_attribute("y")->value());
        orientation.z = Ogre::StringConverter::parseReal(XMLNode->first_attribute("z")->value());
        orientation.w = Ogre::StringConverter::parseReal(XMLNode->first_attribute("w")->value());
    }
    else if(XMLNode->first_attribute("w"))
    {
        orientation.w = Ogre::StringConverter::parseReal(XMLNode->first_attribute("w")->value());
        orientation.x = Ogre::StringConverter::parseReal(XMLNode->first_attribute("x")->value());
        orientation.y = Ogre::StringConverter::parseReal(XMLNode->first_attribute("y")->value());
        orientation.z = Ogre::StringConverter::parseReal(XMLNode->first_attribute("z")->value());
    }

    return orientation;
}

Ogre::ColourValue DotSceneLoader::parseColour(rapidxml::xml_node<>* XMLNode)
{
    return Ogre::ColourValue(
        Ogre::StringConverter::parseReal(XMLNode->first_attribute("r")->value()),
        Ogre::StringConverter::parseReal(XMLNode->first_attribute("g")->value()),
        Ogre::StringConverter::parseReal(XMLNode->first_attribute("b")->value()),
        XMLNode->first_attribute("a") != NULL ? Ogre::StringConverter::parseReal(XMLNode->first_attribute("a")->value()) : 1
    );
}

Ogre::String DotSceneLoader::getProperty(const Ogre::String &ndNm, const Ogre::String &prop)
{
    for ( unsigned int i = 0 ; i < nodeProperties.size(); i++ )
    {
        if ( nodeProperties[i].nodeName == ndNm && nodeProperties[i].propertyNm == prop )
        {
            return nodeProperties[i].valueName;
        }
    }

    return "";
}

void DotSceneLoader::processUserDataReference(rapidxml::xml_node<>* XMLNode, Ogre::Entity *pEntity)
{
    Ogre::String str = XMLNode->first_attribute("id")->value();
    pEntity->setUserAny(Ogre::Any(str));
}
.h

Code: Select all

#ifndef DOT_SCENELOADER_H
#define DOT_SCENELOADER_H

// Includes
#include <OgreString.h>
#include <OgreVector3.h>
#include <OgreQuaternion.h>
#include <OgreResourceGroupManager.h>
#include <vector>

#include "rapidxml.hpp"

    // Forward declarations
    namespace Ogre
    {
        class SceneManager;
        class SceneNode;
        class TerrainGroup;
        class TerrainGlobalOptions;
    }

    namespace Forests
    {
        class PagedGeometry;
        class TreeLoader3D;
        class GrassLoader;
        class GrassLayer;
    }

    class nodeProperty
    {
    public:
        Ogre::String nodeName;
        Ogre::String propertyNm;
        Ogre::String valueName;
        Ogre::String typeName;

        nodeProperty(const Ogre::String &node, const Ogre::String &propertyName, const Ogre::String &value, const Ogre::String &type)
            : nodeName(node), propertyNm(propertyName), valueName(value), typeName(type) {}
    };

    class DotSceneLoader
    {
    public:
        Ogre::TerrainGlobalOptions *mTerrainGlobalOptions;

        DotSceneLoader();
        virtual ~DotSceneLoader();

        void parseDotScene(const Ogre::String &SceneName, const Ogre::String &groupName, Ogre::SceneManager *yourSceneMgr, Ogre::SceneNode *pAttachNode = NULL, const Ogre::String &sPrependNode = "");
        Ogre::String getProperty(const Ogre::String &ndNm, const Ogre::String &prop);

        Ogre::TerrainGroup* getTerrainGroup() { return mTerrainGroup; }

        std::vector<nodeProperty> nodeProperties;
        std::vector<Ogre::String> staticObjects;
        std::vector<Ogre::String> dynamicObjects;
        std::vector<Forests::PagedGeometry *> mPGHandles;
        std::vector<Forests::TreeLoader3D *> mTreeHandles;
        Forests::GrassLoader* mGrassLoaderHandle;                /** Handle to Forests::GrassLoader object */
    protected:
        void processScene(rapidxml::xml_node<>* XMLRoot);

        void processNodes(rapidxml::xml_node<>* XMLNode);
        void processExternals(rapidxml::xml_node<>* XMLNode);
        void processEnvironment(rapidxml::xml_node<>* XMLNode);
        void processTerrain(rapidxml::xml_node<>* XMLNode);
        void processTerrainPage(rapidxml::xml_node<>* XMLNode);
        void processGrassLayers(rapidxml::xml_node<>* XMLNode);
        void processBlendmaps(rapidxml::xml_node<>* XMLNode);
        void processUserDataReference(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent = 0);
        void processUserDataReference(rapidxml::xml_node<>* XMLNode, Ogre::Entity *pEntity);
        void processOctree(rapidxml::xml_node<>* XMLNode);
        void processLight(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent = 0);
        void processCamera(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent = 0);

        void processNode(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent = 0);
        void processLookTarget(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent);
        void processTrackTarget(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent);
        void processEntity(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent);
        void processSubEntity(rapidxml::xml_node<>* XMLNode, Ogre::Entity *pEntity);
        void processParticleSystem(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent);
        void processBillboardSet(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent);
        void processPlane(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent);
        void processPagedGeometry(rapidxml::xml_node<>* XMLNode, Ogre::SceneNode *pParent);

        void processFog(rapidxml::xml_node<>* XMLNode);
        void processSkyBox(rapidxml::xml_node<>* XMLNode);
        void processSkyDome(rapidxml::xml_node<>* XMLNode);
        void processSkyPlane(rapidxml::xml_node<>* XMLNode);
        void processClipping(rapidxml::xml_node<>* XMLNode);

        void processLightRange(rapidxml::xml_node<>* XMLNode, Ogre::Light *pLight);
        void processLightAttenuation(rapidxml::xml_node<>* XMLNode, Ogre::Light *pLight);

        Ogre::String getAttrib(rapidxml::xml_node<>* XMLNode, const Ogre::String &parameter, const Ogre::String &defaultValue = "");
        Ogre::Real getAttribReal(rapidxml::xml_node<>* XMLNode, const Ogre::String &parameter, Ogre::Real defaultValue = 0);
        bool getAttribBool(rapidxml::xml_node<>* XMLNode, const Ogre::String &parameter, bool defaultValue = false);

        Ogre::Vector3 parseVector3(rapidxml::xml_node<>* XMLNode);
        Ogre::Quaternion parseQuaternion(rapidxml::xml_node<>* XMLNode);
        Ogre::ColourValue parseColour(rapidxml::xml_node<>* XMLNode);


        Ogre::SceneManager *mSceneMgr;
        Ogre::SceneNode *mAttachNode;
        Ogre::String m_sGroupName;
        Ogre::String m_sPrependNode;
        Ogre::TerrainGroup* mTerrainGroup;
        Ogre::Vector3 mTerrainPosition;
        Ogre::Vector3 mLightDirection;

        // paged geometry related values
        int mPGPageSize;
        int mPGDetailDistance;
    };

#endif // DOT_SCENELOADER_H
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 534

Re: dotsceneloader issue

Post by Kojack »

I'd guess that this line is causing the problem:

Code: Select all

<user_data type="Blender IDProperty" name="coat3D" value="<bpy id property from "OBGroundLow">" />
It has double quotes inside of double quotes.
Something like this would be better:

Code: Select all

<user_data type="Blender IDProperty" name="coat3D" value="<bpy id property from "OBGroundLow">" />
Pierrick584
Halfling
Posts: 42
Joined: Tue Jun 28, 2011 3:56 am

Re: dotsceneloader issue

Post by Pierrick584 »

Well thanks! it did fixed the issue *throw out a cookie*


I must admit that, i've been trying alot of stuff while trying to fix my issue, and i did show up the wrong code, haha, when i came back to the code that gave me this issue, it got fixed, then while trying to add some code comming from the BasicTutorial05, i got a seg fault happening right when i try to load my scene (the scene did load "correctly" before i modify my code)

Since we're at it (and since its still pretty revelant to the topic name) i guess i'll throw out info about this nasty seg fault

First, its this dotsceneloader http://www.ogre3d.org/tikiwiki/RapidXML ... e=Cookbook

I use it the same way that it is suggested on this page.

My .scene is as posted above, with Kojack's fix

My code is exactly like the BasicTutorial05, beside the createscene looks like this

Code: Select all

{
	DotSceneLoader dotloader;
   dotloader.parseDotScene("ForestArena.scene","General", mSceneMgr);
}
And beside i include dotsceneloader.h in the basictutorial05.h, and the main function is in another .cpp witch include basictutorial05.h.

This setting work perfectly with dotsceneloader.h included, but not using it, just loading a fully coded scene, but with this scene loaded by dotsceneloader, bam, seg fault....

here the log

Code: Select all

20:28:34: Creating resource group General
20:28:34: Creating resource group Internal
20:28:34: Creating resource group Autodetect
20:28:34: SceneManagerFactory for type 'DefaultSceneManager' registered.
20:28:34: Registering ResourceManager for type Material
20:28:34: Registering ResourceManager for type Mesh
20:28:34: Registering ResourceManager for type Skeleton
20:28:34: MovableObjectFactory for type 'ParticleSystem' registered.
20:28:34: OverlayElementFactory for type Panel registered.
20:28:34: OverlayElementFactory for type BorderPanel registered.
20:28:34: OverlayElementFactory for type TextArea registered.
20:28:34: Registering ResourceManager for type Font
20:28:34: ArchiveFactory for archive type FileSystem registered.
20:28:34: ArchiveFactory for archive type Zip registered.
20:28:34: DDS codec registering
20:28:34: FreeImage version: 3.13.1
20:28:34: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
20:28:34: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,bay,bmq,cr2,crw,cs1,dc2,dcr,dng,erf,fff,hdr,k25,kdc,mdc,mos,mrw,nef,orf,pef,pxn,raf,raw,rdc,sr2,srf,arw,3fr,cine,ia,kc2,mef,nrw,qtk,rw2,sti,drf,dsc,ptx,cap,iiq,rwz
20:28:34: Registering ResourceManager for type HighLevelGpuProgram
20:28:34: Registering ResourceManager for type Compositor
20:28:34: MovableObjectFactory for type 'Entity' registered.
20:28:34: MovableObjectFactory for type 'Light' registered.
20:28:34: MovableObjectFactory for type 'BillboardSet' registered.
20:28:34: MovableObjectFactory for type 'ManualObject' registered.
20:28:34: MovableObjectFactory for type 'BillboardChain' registered.
20:28:34: MovableObjectFactory for type 'RibbonTrail' registered.
20:28:34: Loading library devlibs/ogre3d/RenderSystem_GL
20:28:34: Installing plugin: GL RenderSystem
20:28:34: OpenGL Rendering Subsystem created.
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_ParticleFX
20:28:34: Installing plugin: ParticleFX
20:28:34: Particle Emitter Type 'Point' registered
20:28:34: Particle Emitter Type 'Box' registered
20:28:34: Particle Emitter Type 'Ellipsoid' registered
20:28:34: Particle Emitter Type 'Cylinder' registered
20:28:34: Particle Emitter Type 'Ring' registered
20:28:34: Particle Emitter Type 'HollowEllipsoid' registered
20:28:34: Particle Affector Type 'LinearForce' registered
20:28:34: Particle Affector Type 'ColourFader' registered
20:28:34: Particle Affector Type 'ColourFader2' registered
20:28:34: Particle Affector Type 'ColourImage' registered
20:28:34: Particle Affector Type 'ColourInterpolator' registered
20:28:34: Particle Affector Type 'Scaler' registered
20:28:34: Particle Affector Type 'Rotator' registered
20:28:34: Particle Affector Type 'DirectionRandomiser' registered
20:28:34: Particle Affector Type 'DeflectorPlane' registered
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_BSPSceneManager
20:28:34: Installing plugin: BSP Scene Manager
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_CgProgramManager
20:28:34: Installing plugin: Cg Program Manager
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_PCZSceneManager
20:28:34: Installing plugin: Portal Connected Zone Scene Manager
20:28:34: PCZone Factory Type 'ZoneType_Default' registered
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_OctreeZone
20:28:34: Installing plugin: Octree Zone Factory
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_OctreeSceneManager
20:28:34: Installing plugin: Octree & Terrain Scene Manager
20:28:34: Plugin successfully installed
20:28:34: *-*-* OGRE Initialising
20:28:34: *-*-* Version 1.7.4 (Cthugha)
20:28:34: Creating resource group Essential
20:28:34: Added resource location 'Media/thumbnails' of type 'FileSystem' to resource group 'Essential'
20:28:34: Added resource location 'Media/packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
20:28:34: Creating resource group Fonts
20:28:34: Added resource location 'CEGui/datafiles/fonts' of type 'FileSystem' to resource group 'Fonts'
20:28:34: Added resource location 'Media' of type 'FileSystem' to resource group 'General'
20:28:34: Added resource location 'Media/ForestArena' of type 'FileSystem' to resource group 'General'
20:28:34: Creating resource group Imagesets
20:28:34: Added resource location 'CEGui/datafiles/imagesets' of type 'FileSystem' to resource group 'Imagesets'
20:28:34: Creating resource group Layouts
20:28:34: Added resource location 'CEGui/datafiles/layouts' of type 'FileSystem' to resource group 'Layouts'
20:28:34: Creating resource group LookNFeel
20:28:34: Added resource location 'CEGui/datafiles/looknfeel' of type 'FileSystem' to resource group 'LookNFeel'
20:28:34: Creating resource group Popular
20:28:34: Added resource location 'Media/fonts' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/programs' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/scripts' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/textures' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/textures/nvidia' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/models' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/particle' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/DeferredShadingMedia' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/PCZAppMedia' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/RTShaderLib' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/RTShaderLib/materials' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/cubemap.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/dragon.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/fresneldemo.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/ogretestmap.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/ogredance.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/Sinbad.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/skybox.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Creating resource group Schemes
20:28:34: Added resource location 'CEGui/datafiles/schemes' of type 'FileSystem' to resource group 'Schemes'
20:28:34: CPU Identifier & Features
20:28:34: -------------------------
20:28:34:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
20:28:34:  *      SSE: yes
20:28:34:  *     SSE2: yes
20:28:34:  *     SSE3: yes
20:28:34:  *      MMX: yes
20:28:34:  *   MMXEXT: yes
20:28:34:  *    3DNOW: no
20:28:34:  * 3DNOWEXT: no
20:28:34:  *     CMOV: yes
20:28:34:  *      TSC: yes
20:28:34:  *      FPU: yes
20:28:34:  *      PRO: yes
20:28:34:  *       HT: no
20:28:34: -------------------------
20:28:34: ******************************
*** Starting GLX Subsystem ***
******************************
20:28:34: GLRenderSystem::_createRenderWindow "TutorialApplication Render Window", 1920x1080 windowed  miscParams: FSAA=0 displayFrequency=0 MHz gamma=No vsync=Yes 
20:28:34: GLXWindow::create used FBConfigID = 89
20:28:34: GL_VERSION = 4.1.0 NVIDIA 280.13
20:28:34: GL_VENDOR = NVIDIA Corporation
20:28:34: GL_RENDERER = GeForce GTX 550 Ti/PCI/SSE2
20:28:34: GL_EXTENSIONS = GL_ARB_blend_func_extended GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_subroutine GL_ARB_shading_language_100 GL_ARB_shading_language_include GL_ARB_shadow GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_store GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_swizzle GL_EXT_texture_type_2_10_10_10_REV GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_alpha_test GL_NV_blend_minmax GL_NV_blend_square GL_NV_complex_primitives GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_explicit_multisample GL_NV_fbo_color_attachments GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragdepth GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_lod_clamp GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_vertex_half_float GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum 
20:28:34: Supported GLX extensions: GLX_EXT_visual_info GLX_EXT_visual_rating GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_texture_from_pixmap GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_robustness GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_ARB_get_proc_address 
20:28:34: ***************************
20:28:34: *** GL Renderer Started ***
20:28:34: ***************************
20:28:34: Registering ResourceManager for type GpuProgram
20:28:34: GLSL support detected
20:28:34: GL: Using GL_EXT_framebuffer_object for rendering to textures (best)
20:28:34: FBO PF_UNKNOWN depth/stencil support: D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_L8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A4L4 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_BYTE_LA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_R5G6B5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_B5G6R5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A4R4G4B4 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A1R5G5B5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_B8G8R8A8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_A2R10G10B10 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_A2B10G10R10 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_X8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_X8B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_SHORT_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_R3G3B2 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_R depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_R depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_GR depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_GR depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_SHORT_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: [GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_A8 PF_A4L4 PF_BYTE_LA PF_R5G6B5 PF_B5G6R5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_B8G8R8A8 PF_A2R10G10B10 PF_A2B10G10R10 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB 
20:28:35: RenderSystem capabilities
20:28:35: -------------------------
20:28:35: RenderSystem Name: OpenGL Rendering Subsystem
20:28:35: GPU Vendor: nvidia
20:28:35: Device Name: GeForce GTX 550 Ti/PCI/SSE2
20:28:35: Driver Version: 4.1.0.0
20:28:35:  * Fixed function pipeline: yes
20:28:35:  * Hardware generation of mipmaps: yes
20:28:35:  * Texture blending: yes
20:28:35:  * Anisotropic texture filtering: yes
20:28:35:  * Dot product texture operation: yes
20:28:35:  * Cube mapping: yes
20:28:35:  * Hardware stencil buffer: yes
20:28:35:    - Stencil depth: 8
20:28:35:    - Two sided stencil support: yes
20:28:35:    - Wrap stencil values: yes
20:28:35:  * Hardware vertex / index buffers: yes
20:28:35:  * Vertex programs: yes
20:28:35:  * Number of floating-point constants for vertex programs: 1024
20:28:35:  * Number of integer constants for vertex programs: 0
20:28:35:  * Number of boolean constants for vertex programs: 0
20:28:35:  * Fragment programs: yes
20:28:35:  * Number of floating-point constants for fragment programs: 512
20:28:35:  * Number of integer constants for fragment programs: 0
20:28:35:  * Number of boolean constants for fragment programs: 0
20:28:35:  * Geometry programs: yes
20:28:35:  * Number of floating-point constants for geometry programs: 2048
20:28:35:  * Number of integer constants for geometry programs: 0
20:28:35:  * Number of boolean constants for geometry programs: 0
20:28:35:  * Supported Shader Profiles: arbfp1 arbvp1 fp20 fp30 fp40 glsl gp4gp gp4vp gpu_gp gpu_vp nvgp4 vp30 vp40
20:28:35:  * Texture Compression: yes
20:28:35:    - DXT: yes
20:28:35:    - VTC: yes
20:28:35:    - PVRTC: no
20:28:35:  * Scissor Rectangle: yes
20:28:35:  * Hardware Occlusion Query: yes
20:28:35:  * User clip planes: yes
20:28:35:  * VET_UBYTE4 vertex element type: yes
20:28:35:  * Infinite far plane projection: yes
20:28:35:  * Hardware render-to-texture: yes
20:28:35:  * Floating point textures: yes
20:28:35:  * Non-power-of-two textures: yes
20:28:35:  * Volume textures: yes
20:28:35:  * Multiple Render Targets: 8
20:28:35:    - With different bit depths: yes
20:28:35:  * Point Sprites: yes
20:28:35:  * Extended point parameters: yes
20:28:35:  * Max Point Size: 63.375
20:28:35:  * Vertex texture fetch: yes
20:28:35:  * Number of world matrices: 0
20:28:35:  * Number of texture units: 32
20:28:35:  * Stencil buffer depth: 8
20:28:35:  * Number of vertex blend matrices: 0
20:28:35:    - Max vertex textures: 32
20:28:35:    - Vertex textures shared: yes
20:28:35:  * Render to Vertex Buffer : yes
20:28:35:  * GL 1.5 without VBO workaround: no
20:28:35:  * Frame Buffer objects: yes
20:28:35:  * Frame Buffer objects (ARB extension): no
20:28:35:  * Frame Buffer objects (ATI extension): no
20:28:35:  * PBuffer support: yes
20:28:35:  * GL 1.5 without HW-occlusion workaround: no
20:28:35: Registering ResourceManager for type Texture
20:28:35: DefaultWorkQueue('Root') initialising on thread 0x2574870.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2edd580 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2eded60 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ede060 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2edadf0 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ed4810 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ed08d0 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ee03b0 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2edc420 starting.
20:28:35: Particle Renderer Type 'billboard' registered
20:28:35: SceneManagerFactory for type 'BspSceneManager' registered.
20:28:35: Registering ResourceManager for type BspLevel
20:28:35: SceneManagerFactory for type 'PCZSceneManager' registered.
20:28:35: MovableObjectFactory for type 'PCZLight' registered.
20:28:35: MovableObjectFactory for type 'Portal' registered.
20:28:35: MovableObjectFactory for type 'AntiPortal' registered.
20:28:35: PCZone Factory Type 'ZoneType_Octree' registered
20:28:35: PCZone Factory Type 'ZoneType_Terrain' registered
20:28:35: SceneManagerFactory for type 'OctreeSceneManager' registered.
20:28:35: SceneManagerFactory for type 'TerrainSceneManager' registered.
20:28:35: Parsing scripts for resource group Autodetect
20:28:35: Finished parsing scripts for resource group Autodetect
20:28:35: Parsing scripts for resource group Essential
20:28:35: Parsing script SdkTrays.material
20:28:35: Parsing script SdkTrays.fontdef
20:28:35: Parsing script SdkTrays.overlay
20:28:35: Bad element attribute line: '# you can offset the image to change the cursor "hotspot"' for element SdkTrays/Cursor in overlay 
20:28:35: Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
20:28:35: Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
20:28:35: Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x32x1.
20:28:35: Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) with 4 generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x16x1.
20:28:35: Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x16x1.
20:28:35: Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x64x1.
20:28:35: Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x48x1.
20:28:35: Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) with 3 generated mipmaps from Image. Internal format is PF_X8R8G8B8,8x1x1.
20:28:35: Finished parsing scripts for resource group Essential
20:28:35: Parsing scripts for resource group Fonts
20:28:35: Finished parsing scripts for resource group Fonts
20:28:35: Parsing scripts for resource group General
20:28:35: Parsing script BlackPlane.material
20:28:35: Parsing script Wall.material
20:28:35: Parsing script Ground.material
20:28:35: Parsing script Water.material
20:28:35: Finished parsing scripts for resource group General
20:28:35: Parsing scripts for resource group Imagesets
20:28:35: Finished parsing scripts for resource group Imagesets
20:28:35: Parsing scripts for resource group Internal
20:28:35: Finished parsing scripts for resource group Internal
20:28:35: Parsing scripts for resource group Layouts
20:28:35: Finished parsing scripts for resource group Layouts
20:28:35: Parsing scripts for resource group LookNFeel
20:28:35: Finished parsing scripts for resource group LookNFeel
20:28:35: Parsing scripts for resource group Popular
20:28:35: Parsing script StdQuad_vp.program
20:28:35: Parsing script Examples.program
20:28:35: GLSL compiling: Ogre/BasicVertexPrograms/AmbientOneTextureGLSL
20:28:35: GLSL compiled : Ogre/BasicVertexPrograms/AmbientOneTextureGLSL
20:28:35: GLSL compiling: Ogre/HardwareSkinningTwoWeightsGLSL
20:28:35: GLSL compiled : Ogre/HardwareSkinningTwoWeightsGLSL
20:28:35: OGRE EXCEPTION(2:InvalidParametersException): Parameter called ambient does not exist.  in GpuProgramParameters::_findNamedConstantDefinition at /home/pierrick/ogre/src/OgreMain/src/OgreGpuProgramParams.cpp (line 1435)
20:28:35: Compiler error: invalid parameters in Examples.program(130): setting of constant failed
20:28:35: Parsing script ShadowCaster.program
20:28:35: Parsing script deferred_post.program
20:28:35: Parsing script GLSLSwizzle.material
20:28:35: GLSL compiling: Ogre/GPTest/Swizzle_GP_GLSL
20:28:35: GLSL compiled : Ogre/GPTest/Swizzle_GP_GLSL
20:28:35: GLSL compiling: Ogre/GPTest/Passthrough_VP_GLSL
20:28:35: GLSL compiled : Ogre/GPTest/Passthrough_VP_GLSL
20:28:35: Parsing script BlackAndWhite.material
20:28:35: Parsing script shadows.material
20:28:35: Parsing script Hurt.material
20:28:35: Parsing script OffsetMapping.material
20:28:35: Compiler error: object unsupported by render system in OffsetMapping.material(18)
20:28:35: GLSL compiling: Examples/OffsetMappingIntegratedShadowsFPglsl
20:28:35: GLSL compiled : Examples/OffsetMappingIntegratedShadowsFPglsl
20:28:35: GLSL compiling: Examples/OffsetMappingIntegratedShadowsVPglsl
20:28:35: GLSL compiled : Examples/OffsetMappingIntegratedShadowsVPglsl
20:28:35: Parsing script DOF.material
20:28:35: OGRE EXCEPTION(7:InternalErrorException): Unable to find CG profile enum for program DOF_Blend_ps: The parameter used is invalid. in CgProgram::selectProfile at /home/pierrick/ogre/src/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
20:28:35: High-level program DOF_Blend_ps encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to find CG profile enum for program DOF_Blend_ps: The parameter used is invalid. in CgProgram::selectProfile at /home/pierrick/ogre/src/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
20:28:35: Parsing script Tiling.material
20:28:35: Parsing script VarianceShadowmap.material
20:28:35: Parsing script ShaderSystem.material
20:28:35: Parsing script Ocean.material
20:28:35: GLSL compiling: GLSL/OceanVS
20:28:35: GLSL compiled : GLSL/OceanVS
20:28:35: GLSL compiling: GLSL/OceanFS
20:28:35: GLSL compiled : GLSL/OceanFS
20:28:35: GLSL compiling: GLSL/Ocean2VS
20:28:35: GLSL compiled : GLSL/Ocean2VS
20:28:35: GLSL compiling: GLSL/Ocean2FS
20:28:35: GLSL compiled : GLSL/Ocean2FS
20:28:35: Parsing script OldTV.material
20:28:35: Parsing script RadialBlur.material
20:28:35: Parsing script hdr.material
20:28:35: GLSL compiling: Ogre/Compositor/HDR/downscale2x2LuminenceGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/downscale2x2LuminenceGLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/StdQuad_GLSL_vp
20:28:35: GLSL compiled : Ogre/Compositor/StdQuad_GLSL_vp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/downscale3x3GLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/downscale3x3GLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/downscale3x3brightpassGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/downscale3x3brightpassGLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/bloomGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/bloomGLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/finaltonemappingGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/finaltonemappingGLSL_fp
20:28:35: Parsing script Glass.material
20:28:35: Parsing script smoke.material
20:28:35: Parsing script Invert.material
20:28:35: Parsing script CGSwizzle.material
20:28:35: Parsing script NightVision.material
20:28:35: Parsing script Ogre.material
20:28:35: Parsing script Posterize.material
20:28:35: Parsing script CompositorDemo.material
20:28:35: Parsing script Dither.material
20:28:35: Parsing script Examples.material
20:28:35: OGRE EXCEPTION(2:InvalidParametersException): Parameter called camObjPos does not exist.  in GpuProgramParameters::_findNamedConstantDefinition at /home/pierrick/ogre/src/OgreMain/src/OgreGpuProgramParams.cpp (line 1435)
20:28:35: Compiler error: invalid parameters in Examples.material(837): setting of constant failed
20:28:35: GLSL compiling: Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL
20:28:35: GLSL compiled : Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL
20:28:35: Parsing script DepthShadowmap.material
20:28:35: GLSL compiling: Ogre/DepthShadowmap/CasterVP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/CasterVP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/CasterFP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/CasterFP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/ReceiverVP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/ReceiverVP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/ReceiverFP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/ReceiverFP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/ReceiverFPPCF_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/ReceiverFPPCF_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/NormalMapReceiverVP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverVP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/NormalMapReceiverFP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverFP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/NormalMapReceiverFPPCF_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverFPPCF_GLSL
20:28:35: Parsing script HeatVision.material
20:28:35: Parsing script ASMSwizzle.material
20:28:35: Parsing script Examples-DynTex.material
20:28:35: Parsing script MotionBlur.material
20:28:35: Parsing script SharpenEdges.material
20:28:35: Parsing script ASCII.material
20:28:35: Parsing script MRTtest.material
20:28:35: GLSL compiling: Ogre/MRTtest/scenefp/GLSL
20:28:35: GLSL compiled : Ogre/MRTtest/scenefp/GLSL
20:28:35: GLSL compiling: Ogre/MRTtest/quadfp/GLSL
20:28:35: GLSL compiled : Ogre/MRTtest/quadfp/GLSL
20:28:35: Parsing script facial.material
20:28:35: Parsing script RZR-002.material
20:28:35: Parsing script Penguin.material
20:28:35: Parsing script Examples-Advanced.material
20:28:35: Compiler error: object unsupported by render system in Examples-Advanced.material(383)
20:28:35: Parsing script Examples-Water.material
20:28:35: Parsing script Laplace.material
20:28:35: Parsing script instancing.material
20:28:35: GLSL compiling: InstancingGLSL
20:28:35: GLSL compiled : InstancingGLSL
20:28:35: GLSL compiling: InstancingShadowCasterGLSL
20:28:35: GLSL compiled : InstancingShadowCasterGLSL
20:28:35: GLSL compiling: CrowdGLSL
20:28:35: GLSL compiled : CrowdGLSL
20:28:35: GLSL compiling: CrowdShadowCasterGLSL
20:28:35: GLSL compiled : CrowdShadowCasterGLSL
20:28:35: Parsing script Bloom2.material
20:28:35: GLSL compiling: Bloom2_ps20_glsl
20:28:35: GLSL compiled : Bloom2_ps20_glsl
20:28:35: Parsing script Halftone.material
20:28:35: Parsing script sibenik.material
20:28:35: Parsing script Embossed.material
20:28:35: Parsing script pssm.material
20:28:35: Parsing script ParticleGS.material
20:28:35: Parsing script IsoSurf.material
20:28:35: Problem parsing the following Cg Uniform: '@TMP0' in file Ogre/IsoSurf/TessellateTetrahedraGS
20:28:35: Parsing script Bloom.material
20:28:35: GLSL compiling: Blur_ps_glsl
20:28:35: GLSL compiled : Blur_ps_glsl
20:28:35: GLSL compiling: Blur0_vs_glsl
20:28:35: GLSL compiled : Blur0_vs_glsl
20:28:35: GLSL compiling: Blur1_vs_glsl
20:28:35: GLSL compiled : Blur1_vs_glsl
20:28:35: Parsing script Example-Water.material
20:28:35: Parsing script OldMovie.material
20:28:35: Parsing script ShadowCaster.material
20:28:35: Parsing script deferreddemo.material
20:28:35: Parsing script deferred_post_minilight.material
20:28:35: Parsing script deferred_post.material
20:28:35: Parsing script ssao.material
20:28:35: Parsing script ROOM.material
20:28:35: Parsing script RTShaderSystem.material
20:28:35: Compiler error: unknown error in RTShaderSystem.material(23): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(52): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(146): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(162): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
20:28:35: Parsing script RomanBath.material
20:28:35: Parsing script Sinbad.material
20:28:35: Parsing script Examples-Water.particle
20:28:35: Parsing script Examples.particle
20:28:35: Parsing script smoke.particle
20:28:35: Parsing script emitted_emitter.particle
20:28:35: Parsing script Examples.compositor
20:28:35: Parsing script ssao.compositor
20:28:35: Parsing script deferred.compositor
20:28:35: Parsing script sample.fontdef
20:28:35: Finished parsing scripts for resource group Popular
20:28:35: Parsing scripts for resource group Schemes
20:28:35: Finished parsing scripts for resource group Schemes
20:28:35: [DotSceneLoader] Parsing dotScene file with version 1.0.1
20:28:35: Mesh: Loading Plane.002.mesh.
20:28:35: Mesh: Loading Plane.001.mesh.
20:28:35: Mesh: Loading Plane.mesh.
20:28:35: Mesh: Loading Circle.004.mesh.
20:28:35: Texture: GroundTex.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:35: Texture: GroundNormal.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:35: Texture: GroundBump.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:35: Mesh: Loading Circle.002.mesh.
20:28:36: Texture: WallNormal.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:36: Texture: WallTex.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:36: Texture: WallBump.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:36: *** Initializing OIS ***
20:28:36: Font SdkTrays/Captionusing texture size 512x256
20:28:36: Info: Freetype returned null for character 160 in font SdkTrays/Caption
20:28:36: Texture: SdkTrays/CaptionTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
20:28:36: Font SdkTrays/Valueusing texture size 512x256
20:28:36: Info: Freetype returned null for character 127 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 128 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 129 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 130 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 131 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 132 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 133 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 134 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 135 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 136 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 137 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 138 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 139 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 140 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 141 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 142 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 143 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 144 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 145 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 146 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 147 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 148 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 149 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 150 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 151 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 152 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 153 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 154 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 155 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 156 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 157 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 158 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 159 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 160 in font SdkTrays/Value
20:28:36: Texture: SdkTrays/ValueTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
Realy, i dont get it..



Edit: after commenting randomly some lines of code, i found out that this is exclusively this like that cause the seg fault

Code: Select all

mCamNode->translate(mDirection * evt.timeSinceLastFrame, Ogre::Node::TS_LOCAL);
I dont get what in this line is interfering with the dotsceneloader though :S
Last edited by Pierrick584 on Sat Mar 31, 2012 5:40 pm, edited 1 time in total.
Pierrick584
Halfling
Posts: 42
Joined: Tue Jun 28, 2011 3:56 am

Re: dotsceneloader issue

Post by Pierrick584 »

Well thanks! it did fixed the issue *throw out a cookie*


I must admit that, i've been trying alot of stuff while trying to fix my issue, and i did show up the wrong code, haha, when i came back to the code that gave me this issue, it got fixed, then while trying to add some code comming from the BasicTutorial05, i got a seg fault happening right when i try to load my scene (the scene did load "correctly" before i modify my code)

Since we're at it (and since its still pretty revelant to the topic name) i guess i'll throw out info about this nasty seg fault

First, its this dotsceneloader http://www.ogre3d.org/tikiwiki/RapidXML ... e=Cookbook

I use it the same way that it is suggested on this page.

My .scene is as posted above, with Kojack's fix

My code is exactly like the BasicTutorial05, beside the createscene looks like this

Code: Select all

{
	DotSceneLoader dotloader;
   dotloader.parseDotScene("ForestArena.scene","General", mSceneMgr);
}
And beside i include dotsceneloader.h in the basictutorial05.h, and the main function is in another .cpp witch include basictutorial05.h.

This setting work perfectly with dotsceneloader.h included, but not using it, just loading a fully coded scene, but with this scene loaded by dotsceneloader, bam, seg fault....

here the log

Code: Select all

20:28:34: Creating resource group General
20:28:34: Creating resource group Internal
20:28:34: Creating resource group Autodetect
20:28:34: SceneManagerFactory for type 'DefaultSceneManager' registered.
20:28:34: Registering ResourceManager for type Material
20:28:34: Registering ResourceManager for type Mesh
20:28:34: Registering ResourceManager for type Skeleton
20:28:34: MovableObjectFactory for type 'ParticleSystem' registered.
20:28:34: OverlayElementFactory for type Panel registered.
20:28:34: OverlayElementFactory for type BorderPanel registered.
20:28:34: OverlayElementFactory for type TextArea registered.
20:28:34: Registering ResourceManager for type Font
20:28:34: ArchiveFactory for archive type FileSystem registered.
20:28:34: ArchiveFactory for archive type Zip registered.
20:28:34: DDS codec registering
20:28:34: FreeImage version: 3.13.1
20:28:34: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
20:28:34: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,bay,bmq,cr2,crw,cs1,dc2,dcr,dng,erf,fff,hdr,k25,kdc,mdc,mos,mrw,nef,orf,pef,pxn,raf,raw,rdc,sr2,srf,arw,3fr,cine,ia,kc2,mef,nrw,qtk,rw2,sti,drf,dsc,ptx,cap,iiq,rwz
20:28:34: Registering ResourceManager for type HighLevelGpuProgram
20:28:34: Registering ResourceManager for type Compositor
20:28:34: MovableObjectFactory for type 'Entity' registered.
20:28:34: MovableObjectFactory for type 'Light' registered.
20:28:34: MovableObjectFactory for type 'BillboardSet' registered.
20:28:34: MovableObjectFactory for type 'ManualObject' registered.
20:28:34: MovableObjectFactory for type 'BillboardChain' registered.
20:28:34: MovableObjectFactory for type 'RibbonTrail' registered.
20:28:34: Loading library devlibs/ogre3d/RenderSystem_GL
20:28:34: Installing plugin: GL RenderSystem
20:28:34: OpenGL Rendering Subsystem created.
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_ParticleFX
20:28:34: Installing plugin: ParticleFX
20:28:34: Particle Emitter Type 'Point' registered
20:28:34: Particle Emitter Type 'Box' registered
20:28:34: Particle Emitter Type 'Ellipsoid' registered
20:28:34: Particle Emitter Type 'Cylinder' registered
20:28:34: Particle Emitter Type 'Ring' registered
20:28:34: Particle Emitter Type 'HollowEllipsoid' registered
20:28:34: Particle Affector Type 'LinearForce' registered
20:28:34: Particle Affector Type 'ColourFader' registered
20:28:34: Particle Affector Type 'ColourFader2' registered
20:28:34: Particle Affector Type 'ColourImage' registered
20:28:34: Particle Affector Type 'ColourInterpolator' registered
20:28:34: Particle Affector Type 'Scaler' registered
20:28:34: Particle Affector Type 'Rotator' registered
20:28:34: Particle Affector Type 'DirectionRandomiser' registered
20:28:34: Particle Affector Type 'DeflectorPlane' registered
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_BSPSceneManager
20:28:34: Installing plugin: BSP Scene Manager
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_CgProgramManager
20:28:34: Installing plugin: Cg Program Manager
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_PCZSceneManager
20:28:34: Installing plugin: Portal Connected Zone Scene Manager
20:28:34: PCZone Factory Type 'ZoneType_Default' registered
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_OctreeZone
20:28:34: Installing plugin: Octree Zone Factory
20:28:34: Plugin successfully installed
20:28:34: Loading library devlibs/ogre3d/Plugin_OctreeSceneManager
20:28:34: Installing plugin: Octree & Terrain Scene Manager
20:28:34: Plugin successfully installed
20:28:34: *-*-* OGRE Initialising
20:28:34: *-*-* Version 1.7.4 (Cthugha)
20:28:34: Creating resource group Essential
20:28:34: Added resource location 'Media/thumbnails' of type 'FileSystem' to resource group 'Essential'
20:28:34: Added resource location 'Media/packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
20:28:34: Creating resource group Fonts
20:28:34: Added resource location 'CEGui/datafiles/fonts' of type 'FileSystem' to resource group 'Fonts'
20:28:34: Added resource location 'Media' of type 'FileSystem' to resource group 'General'
20:28:34: Added resource location 'Media/ForestArena' of type 'FileSystem' to resource group 'General'
20:28:34: Creating resource group Imagesets
20:28:34: Added resource location 'CEGui/datafiles/imagesets' of type 'FileSystem' to resource group 'Imagesets'
20:28:34: Creating resource group Layouts
20:28:34: Added resource location 'CEGui/datafiles/layouts' of type 'FileSystem' to resource group 'Layouts'
20:28:34: Creating resource group LookNFeel
20:28:34: Added resource location 'CEGui/datafiles/looknfeel' of type 'FileSystem' to resource group 'LookNFeel'
20:28:34: Creating resource group Popular
20:28:34: Added resource location 'Media/fonts' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/programs' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/scripts' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/textures' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/materials/textures/nvidia' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/models' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/particle' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/DeferredShadingMedia' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/PCZAppMedia' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/RTShaderLib' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/RTShaderLib/materials' of type 'FileSystem' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/cubemap.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/dragon.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/fresneldemo.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/ogretestmap.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/ogredance.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/Sinbad.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Added resource location 'Media/packs/skybox.zip' of type 'Zip' to resource group 'Popular'
20:28:34: Creating resource group Schemes
20:28:34: Added resource location 'CEGui/datafiles/schemes' of type 'FileSystem' to resource group 'Schemes'
20:28:34: CPU Identifier & Features
20:28:34: -------------------------
20:28:34:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
20:28:34:  *      SSE: yes
20:28:34:  *     SSE2: yes
20:28:34:  *     SSE3: yes
20:28:34:  *      MMX: yes
20:28:34:  *   MMXEXT: yes
20:28:34:  *    3DNOW: no
20:28:34:  * 3DNOWEXT: no
20:28:34:  *     CMOV: yes
20:28:34:  *      TSC: yes
20:28:34:  *      FPU: yes
20:28:34:  *      PRO: yes
20:28:34:  *       HT: no
20:28:34: -------------------------
20:28:34: ******************************
*** Starting GLX Subsystem ***
******************************
20:28:34: GLRenderSystem::_createRenderWindow "TutorialApplication Render Window", 1920x1080 windowed  miscParams: FSAA=0 displayFrequency=0 MHz gamma=No vsync=Yes 
20:28:34: GLXWindow::create used FBConfigID = 89
20:28:34: GL_VERSION = 4.1.0 NVIDIA 280.13
20:28:34: GL_VENDOR = NVIDIA Corporation
20:28:34: GL_RENDERER = GeForce GTX 550 Ti/PCI/SSE2
20:28:34: GL_EXTENSIONS = GL_ARB_blend_func_extended GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_subroutine GL_ARB_shading_language_100 GL_ARB_shading_language_include GL_ARB_shadow GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_store GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_swizzle GL_EXT_texture_type_2_10_10_10_REV GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_alpha_test GL_NV_blend_minmax GL_NV_blend_square GL_NV_complex_primitives GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_explicit_multisample GL_NV_fbo_color_attachments GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragdepth GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_lod_clamp GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_vertex_half_float GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum 
20:28:34: Supported GLX extensions: GLX_EXT_visual_info GLX_EXT_visual_rating GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_texture_from_pixmap GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_robustness GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_ARB_get_proc_address 
20:28:34: ***************************
20:28:34: *** GL Renderer Started ***
20:28:34: ***************************
20:28:34: Registering ResourceManager for type GpuProgram
20:28:34: GLSL support detected
20:28:34: GL: Using GL_EXT_framebuffer_object for rendering to textures (best)
20:28:34: FBO PF_UNKNOWN depth/stencil support: D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_L8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A4L4 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_BYTE_LA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_R5G6B5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_B5G6R5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A4R4G4B4 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A1R5G5B5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:34: FBO PF_A8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_B8G8R8A8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_A2R10G10B10 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_A2B10G10R10 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_X8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_X8B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_SHORT_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_R3G3B2 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_R depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_R depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT16_GR depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_FLOAT32_GR depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: FBO PF_SHORT_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8 
20:28:35: [GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_A8 PF_A4L4 PF_BYTE_LA PF_R5G6B5 PF_B5G6R5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_B8G8R8A8 PF_A2R10G10B10 PF_A2B10G10R10 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB 
20:28:35: RenderSystem capabilities
20:28:35: -------------------------
20:28:35: RenderSystem Name: OpenGL Rendering Subsystem
20:28:35: GPU Vendor: nvidia
20:28:35: Device Name: GeForce GTX 550 Ti/PCI/SSE2
20:28:35: Driver Version: 4.1.0.0
20:28:35:  * Fixed function pipeline: yes
20:28:35:  * Hardware generation of mipmaps: yes
20:28:35:  * Texture blending: yes
20:28:35:  * Anisotropic texture filtering: yes
20:28:35:  * Dot product texture operation: yes
20:28:35:  * Cube mapping: yes
20:28:35:  * Hardware stencil buffer: yes
20:28:35:    - Stencil depth: 8
20:28:35:    - Two sided stencil support: yes
20:28:35:    - Wrap stencil values: yes
20:28:35:  * Hardware vertex / index buffers: yes
20:28:35:  * Vertex programs: yes
20:28:35:  * Number of floating-point constants for vertex programs: 1024
20:28:35:  * Number of integer constants for vertex programs: 0
20:28:35:  * Number of boolean constants for vertex programs: 0
20:28:35:  * Fragment programs: yes
20:28:35:  * Number of floating-point constants for fragment programs: 512
20:28:35:  * Number of integer constants for fragment programs: 0
20:28:35:  * Number of boolean constants for fragment programs: 0
20:28:35:  * Geometry programs: yes
20:28:35:  * Number of floating-point constants for geometry programs: 2048
20:28:35:  * Number of integer constants for geometry programs: 0
20:28:35:  * Number of boolean constants for geometry programs: 0
20:28:35:  * Supported Shader Profiles: arbfp1 arbvp1 fp20 fp30 fp40 glsl gp4gp gp4vp gpu_gp gpu_vp nvgp4 vp30 vp40
20:28:35:  * Texture Compression: yes
20:28:35:    - DXT: yes
20:28:35:    - VTC: yes
20:28:35:    - PVRTC: no
20:28:35:  * Scissor Rectangle: yes
20:28:35:  * Hardware Occlusion Query: yes
20:28:35:  * User clip planes: yes
20:28:35:  * VET_UBYTE4 vertex element type: yes
20:28:35:  * Infinite far plane projection: yes
20:28:35:  * Hardware render-to-texture: yes
20:28:35:  * Floating point textures: yes
20:28:35:  * Non-power-of-two textures: yes
20:28:35:  * Volume textures: yes
20:28:35:  * Multiple Render Targets: 8
20:28:35:    - With different bit depths: yes
20:28:35:  * Point Sprites: yes
20:28:35:  * Extended point parameters: yes
20:28:35:  * Max Point Size: 63.375
20:28:35:  * Vertex texture fetch: yes
20:28:35:  * Number of world matrices: 0
20:28:35:  * Number of texture units: 32
20:28:35:  * Stencil buffer depth: 8
20:28:35:  * Number of vertex blend matrices: 0
20:28:35:    - Max vertex textures: 32
20:28:35:    - Vertex textures shared: yes
20:28:35:  * Render to Vertex Buffer : yes
20:28:35:  * GL 1.5 without VBO workaround: no
20:28:35:  * Frame Buffer objects: yes
20:28:35:  * Frame Buffer objects (ARB extension): no
20:28:35:  * Frame Buffer objects (ATI extension): no
20:28:35:  * PBuffer support: yes
20:28:35:  * GL 1.5 without HW-occlusion workaround: no
20:28:35: Registering ResourceManager for type Texture
20:28:35: DefaultWorkQueue('Root') initialising on thread 0x2574870.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2edd580 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2eded60 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ede060 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2edadf0 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ed4810 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ed08d0 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2ee03b0 starting.
20:28:35: DefaultWorkQueue('Root')::WorkerFunc - thread 0x2edc420 starting.
20:28:35: Particle Renderer Type 'billboard' registered
20:28:35: SceneManagerFactory for type 'BspSceneManager' registered.
20:28:35: Registering ResourceManager for type BspLevel
20:28:35: SceneManagerFactory for type 'PCZSceneManager' registered.
20:28:35: MovableObjectFactory for type 'PCZLight' registered.
20:28:35: MovableObjectFactory for type 'Portal' registered.
20:28:35: MovableObjectFactory for type 'AntiPortal' registered.
20:28:35: PCZone Factory Type 'ZoneType_Octree' registered
20:28:35: PCZone Factory Type 'ZoneType_Terrain' registered
20:28:35: SceneManagerFactory for type 'OctreeSceneManager' registered.
20:28:35: SceneManagerFactory for type 'TerrainSceneManager' registered.
20:28:35: Parsing scripts for resource group Autodetect
20:28:35: Finished parsing scripts for resource group Autodetect
20:28:35: Parsing scripts for resource group Essential
20:28:35: Parsing script SdkTrays.material
20:28:35: Parsing script SdkTrays.fontdef
20:28:35: Parsing script SdkTrays.overlay
20:28:35: Bad element attribute line: '# you can offset the image to change the cursor "hotspot"' for element SdkTrays/Cursor in overlay 
20:28:35: Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
20:28:35: Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
20:28:35: Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x32x1.
20:28:35: Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) with 4 generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x16x1.
20:28:35: Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x16x1.
20:28:35: Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x64x1.
20:28:35: Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x48x1.
20:28:35: Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
20:28:35: Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) with 3 generated mipmaps from Image. Internal format is PF_X8R8G8B8,8x1x1.
20:28:35: Finished parsing scripts for resource group Essential
20:28:35: Parsing scripts for resource group Fonts
20:28:35: Finished parsing scripts for resource group Fonts
20:28:35: Parsing scripts for resource group General
20:28:35: Parsing script BlackPlane.material
20:28:35: Parsing script Wall.material
20:28:35: Parsing script Ground.material
20:28:35: Parsing script Water.material
20:28:35: Finished parsing scripts for resource group General
20:28:35: Parsing scripts for resource group Imagesets
20:28:35: Finished parsing scripts for resource group Imagesets
20:28:35: Parsing scripts for resource group Internal
20:28:35: Finished parsing scripts for resource group Internal
20:28:35: Parsing scripts for resource group Layouts
20:28:35: Finished parsing scripts for resource group Layouts
20:28:35: Parsing scripts for resource group LookNFeel
20:28:35: Finished parsing scripts for resource group LookNFeel
20:28:35: Parsing scripts for resource group Popular
20:28:35: Parsing script StdQuad_vp.program
20:28:35: Parsing script Examples.program
20:28:35: GLSL compiling: Ogre/BasicVertexPrograms/AmbientOneTextureGLSL
20:28:35: GLSL compiled : Ogre/BasicVertexPrograms/AmbientOneTextureGLSL
20:28:35: GLSL compiling: Ogre/HardwareSkinningTwoWeightsGLSL
20:28:35: GLSL compiled : Ogre/HardwareSkinningTwoWeightsGLSL
20:28:35: OGRE EXCEPTION(2:InvalidParametersException): Parameter called ambient does not exist.  in GpuProgramParameters::_findNamedConstantDefinition at /home/pierrick/ogre/src/OgreMain/src/OgreGpuProgramParams.cpp (line 1435)
20:28:35: Compiler error: invalid parameters in Examples.program(130): setting of constant failed
20:28:35: Parsing script ShadowCaster.program
20:28:35: Parsing script deferred_post.program
20:28:35: Parsing script GLSLSwizzle.material
20:28:35: GLSL compiling: Ogre/GPTest/Swizzle_GP_GLSL
20:28:35: GLSL compiled : Ogre/GPTest/Swizzle_GP_GLSL
20:28:35: GLSL compiling: Ogre/GPTest/Passthrough_VP_GLSL
20:28:35: GLSL compiled : Ogre/GPTest/Passthrough_VP_GLSL
20:28:35: Parsing script BlackAndWhite.material
20:28:35: Parsing script shadows.material
20:28:35: Parsing script Hurt.material
20:28:35: Parsing script OffsetMapping.material
20:28:35: Compiler error: object unsupported by render system in OffsetMapping.material(18)
20:28:35: GLSL compiling: Examples/OffsetMappingIntegratedShadowsFPglsl
20:28:35: GLSL compiled : Examples/OffsetMappingIntegratedShadowsFPglsl
20:28:35: GLSL compiling: Examples/OffsetMappingIntegratedShadowsVPglsl
20:28:35: GLSL compiled : Examples/OffsetMappingIntegratedShadowsVPglsl
20:28:35: Parsing script DOF.material
20:28:35: OGRE EXCEPTION(7:InternalErrorException): Unable to find CG profile enum for program DOF_Blend_ps: The parameter used is invalid. in CgProgram::selectProfile at /home/pierrick/ogre/src/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
20:28:35: High-level program DOF_Blend_ps encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to find CG profile enum for program DOF_Blend_ps: The parameter used is invalid. in CgProgram::selectProfile at /home/pierrick/ogre/src/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
20:28:35: Parsing script Tiling.material
20:28:35: Parsing script VarianceShadowmap.material
20:28:35: Parsing script ShaderSystem.material
20:28:35: Parsing script Ocean.material
20:28:35: GLSL compiling: GLSL/OceanVS
20:28:35: GLSL compiled : GLSL/OceanVS
20:28:35: GLSL compiling: GLSL/OceanFS
20:28:35: GLSL compiled : GLSL/OceanFS
20:28:35: GLSL compiling: GLSL/Ocean2VS
20:28:35: GLSL compiled : GLSL/Ocean2VS
20:28:35: GLSL compiling: GLSL/Ocean2FS
20:28:35: GLSL compiled : GLSL/Ocean2FS
20:28:35: Parsing script OldTV.material
20:28:35: Parsing script RadialBlur.material
20:28:35: Parsing script hdr.material
20:28:35: GLSL compiling: Ogre/Compositor/HDR/downscale2x2LuminenceGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/downscale2x2LuminenceGLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/StdQuad_GLSL_vp
20:28:35: GLSL compiled : Ogre/Compositor/StdQuad_GLSL_vp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/downscale3x3GLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/downscale3x3GLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/downscale3x3brightpassGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/downscale3x3brightpassGLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/bloomGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/bloomGLSL_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/utils_fp
20:28:35: GLSL compiling: Ogre/Compositor/HDR/finaltonemappingGLSL_fp
20:28:35: GLSL compiled : Ogre/Compositor/HDR/finaltonemappingGLSL_fp
20:28:35: Parsing script Glass.material
20:28:35: Parsing script smoke.material
20:28:35: Parsing script Invert.material
20:28:35: Parsing script CGSwizzle.material
20:28:35: Parsing script NightVision.material
20:28:35: Parsing script Ogre.material
20:28:35: Parsing script Posterize.material
20:28:35: Parsing script CompositorDemo.material
20:28:35: Parsing script Dither.material
20:28:35: Parsing script Examples.material
20:28:35: OGRE EXCEPTION(2:InvalidParametersException): Parameter called camObjPos does not exist.  in GpuProgramParameters::_findNamedConstantDefinition at /home/pierrick/ogre/src/OgreMain/src/OgreGpuProgramParams.cpp (line 1435)
20:28:35: Compiler error: invalid parameters in Examples.material(837): setting of constant failed
20:28:35: GLSL compiling: Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL
20:28:35: GLSL compiled : Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL
20:28:35: Parsing script DepthShadowmap.material
20:28:35: GLSL compiling: Ogre/DepthShadowmap/CasterVP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/CasterVP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/CasterFP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/CasterFP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/ReceiverVP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/ReceiverVP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/ReceiverFP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/ReceiverFP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/ReceiverFPPCF_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/ReceiverFPPCF_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/NormalMapReceiverVP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverVP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/NormalMapReceiverFP_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverFP_GLSL
20:28:35: GLSL compiling: Ogre/DepthShadowmap/NormalMapReceiverFPPCF_GLSL
20:28:35: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverFPPCF_GLSL
20:28:35: Parsing script HeatVision.material
20:28:35: Parsing script ASMSwizzle.material
20:28:35: Parsing script Examples-DynTex.material
20:28:35: Parsing script MotionBlur.material
20:28:35: Parsing script SharpenEdges.material
20:28:35: Parsing script ASCII.material
20:28:35: Parsing script MRTtest.material
20:28:35: GLSL compiling: Ogre/MRTtest/scenefp/GLSL
20:28:35: GLSL compiled : Ogre/MRTtest/scenefp/GLSL
20:28:35: GLSL compiling: Ogre/MRTtest/quadfp/GLSL
20:28:35: GLSL compiled : Ogre/MRTtest/quadfp/GLSL
20:28:35: Parsing script facial.material
20:28:35: Parsing script RZR-002.material
20:28:35: Parsing script Penguin.material
20:28:35: Parsing script Examples-Advanced.material
20:28:35: Compiler error: object unsupported by render system in Examples-Advanced.material(383)
20:28:35: Parsing script Examples-Water.material
20:28:35: Parsing script Laplace.material
20:28:35: Parsing script instancing.material
20:28:35: GLSL compiling: InstancingGLSL
20:28:35: GLSL compiled : InstancingGLSL
20:28:35: GLSL compiling: InstancingShadowCasterGLSL
20:28:35: GLSL compiled : InstancingShadowCasterGLSL
20:28:35: GLSL compiling: CrowdGLSL
20:28:35: GLSL compiled : CrowdGLSL
20:28:35: GLSL compiling: CrowdShadowCasterGLSL
20:28:35: GLSL compiled : CrowdShadowCasterGLSL
20:28:35: Parsing script Bloom2.material
20:28:35: GLSL compiling: Bloom2_ps20_glsl
20:28:35: GLSL compiled : Bloom2_ps20_glsl
20:28:35: Parsing script Halftone.material
20:28:35: Parsing script sibenik.material
20:28:35: Parsing script Embossed.material
20:28:35: Parsing script pssm.material
20:28:35: Parsing script ParticleGS.material
20:28:35: Parsing script IsoSurf.material
20:28:35: Problem parsing the following Cg Uniform: '@TMP0' in file Ogre/IsoSurf/TessellateTetrahedraGS
20:28:35: Parsing script Bloom.material
20:28:35: GLSL compiling: Blur_ps_glsl
20:28:35: GLSL compiled : Blur_ps_glsl
20:28:35: GLSL compiling: Blur0_vs_glsl
20:28:35: GLSL compiled : Blur0_vs_glsl
20:28:35: GLSL compiling: Blur1_vs_glsl
20:28:35: GLSL compiled : Blur1_vs_glsl
20:28:35: Parsing script Example-Water.material
20:28:35: Parsing script OldMovie.material
20:28:35: Parsing script ShadowCaster.material
20:28:35: Parsing script deferreddemo.material
20:28:35: Parsing script deferred_post_minilight.material
20:28:35: Parsing script deferred_post.material
20:28:35: Parsing script ssao.material
20:28:35: Parsing script ROOM.material
20:28:35: Parsing script RTShaderSystem.material
20:28:35: Compiler error: unknown error in RTShaderSystem.material(23): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(52): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(146): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(162): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
20:28:35: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
20:28:35: Parsing script RomanBath.material
20:28:35: Parsing script Sinbad.material
20:28:35: Parsing script Examples-Water.particle
20:28:35: Parsing script Examples.particle
20:28:35: Parsing script smoke.particle
20:28:35: Parsing script emitted_emitter.particle
20:28:35: Parsing script Examples.compositor
20:28:35: Parsing script ssao.compositor
20:28:35: Parsing script deferred.compositor
20:28:35: Parsing script sample.fontdef
20:28:35: Finished parsing scripts for resource group Popular
20:28:35: Parsing scripts for resource group Schemes
20:28:35: Finished parsing scripts for resource group Schemes
20:28:35: [DotSceneLoader] Parsing dotScene file with version 1.0.1
20:28:35: Mesh: Loading Plane.002.mesh.
20:28:35: Mesh: Loading Plane.001.mesh.
20:28:35: Mesh: Loading Plane.mesh.
20:28:35: Mesh: Loading Circle.004.mesh.
20:28:35: Texture: GroundTex.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:35: Texture: GroundNormal.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:35: Texture: GroundBump.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:35: Mesh: Loading Circle.002.mesh.
20:28:36: Texture: WallNormal.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:36: Texture: WallTex.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:36: Texture: WallBump.png: Loading 1 faces(PF_A8R8G8B8,2048x2048x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2048x2048x1.
20:28:36: *** Initializing OIS ***
20:28:36: Font SdkTrays/Captionusing texture size 512x256
20:28:36: Info: Freetype returned null for character 160 in font SdkTrays/Caption
20:28:36: Texture: SdkTrays/CaptionTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
20:28:36: Font SdkTrays/Valueusing texture size 512x256
20:28:36: Info: Freetype returned null for character 127 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 128 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 129 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 130 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 131 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 132 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 133 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 134 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 135 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 136 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 137 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 138 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 139 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 140 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 141 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 142 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 143 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 144 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 145 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 146 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 147 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 148 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 149 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 150 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 151 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 152 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 153 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 154 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 155 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 156 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 157 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 158 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 159 in font SdkTrays/Value
20:28:36: Info: Freetype returned null for character 160 in font SdkTrays/Value
20:28:36: Texture: SdkTrays/ValueTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
Realy, i dont get it..
Post Reply