Changeset 111 for trunk


Ignore:
Timestamp:
05/24/05 17:55:14 (19 years ago)
Author:
mattausch
Message:
 
Location:
trunk/VUT
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibility/include/HierarchyInterface.h

    r87 r111  
    110110        void SetUseOptimization(bool useOptimization); 
    111111 
     112        bool mDummy; 
     113 
    112114protected: 
    113115         
     
    124126        HierarchyNode *mSceneRoot; 
    125127        HierarchyNode *mPreviousNode; 
     128 
     129         
    126130}; 
    127131} // namespace GtpVisibility 
  • trunk/VUT/GtpVisibility/src/CoherentHierarchicalCullingManager.cpp

    r96 r111  
    77void CoherentHierarchicalCullingManager::RenderScene() 
    88{ 
    9         InitFrame(); 
     9        //InitFrame(); 
    1010         
    1111        QueryQueue queryQueue; 
     
    3131                        else 
    3232                        { 
     33                                if (mHierarchyInterface->mDummy) 
    3334                                mNumQueryCulledNodes ++; 
    3435                        } 
     
    4445 
    4546                        if (!mHierarchyInterface->CheckFrustumVisible(node, intersects)) 
    46                         { 
     47                        {       if (mHierarchyInterface->mDummy) 
    4748                                mNumFrustumCulledNodes ++; 
    4849                        } 
  • trunk/VUT/GtpVisibility/src/FrustumCullingManager.cpp

    r96 r111  
    77void FrustumCullingManager::RenderScene() 
    88{ 
    9         InitFrame(); 
     9        //InitFrame(); 
    1010         
    1111        while (!mHierarchyInterface->GetQueue()->empty()) 
    1212        { 
     13                if (mHierarchyInterface->mDummy) 
     14                        Ogre::LogManager::getSingleton().logMessage("shadow pass"); 
     15        //      elseOgre::LogManager::getSingleton().logMessage("no shadow pass"); 
    1316                HierarchyNode *node = mHierarchyInterface->GetQueue()->top(); 
    1417                mHierarchyInterface->GetQueue()->pop(); 
     
    1922 
    2023                if (!mHierarchyInterface->CheckFrustumVisible(node)) 
    21                 { 
     24                {if (mHierarchyInterface->mDummy) 
    2225                        mNumFrustumCulledNodes ++; 
    2326                } 
  • trunk/VUT/GtpVisibility/src/HierarchyInterface.cpp

    r86 r111  
    88HierarchyInterface::HierarchyInterface():  
    99mFrameId(0), mNumTraversedNodes(0), mNumRenderedNodes(0),  
    10 mSceneRoot(0), mPreviousNode(0), mCurrentTestIdx(0), mUseOptimization(true) 
     10mSceneRoot(0), mPreviousNode(0), mCurrentTestIdx(0), mUseOptimization(true), 
     11mDummy(false) 
    1112{        
    1213        mDistanceQueue = new DistanceQueue(GreaterDistance<HierarchyNode *>(this)); 
  • trunk/VUT/GtpVisibility/src/StopAndWaitCullingManager.cpp

    r103 r111  
    11#include "StopAndWaitCullingManager.h" 
    22#include <OgreLogManager.h> 
    3  
    43 
    54namespace GtpVisibility { 
     
    87void StopAndWaitCullingManager::RenderScene() 
    98{ 
    10         InitFrame(); 
     9        //InitFrame(); 
    1110 
    1211        while (!mHierarchyInterface->GetQueue()->empty()) 
     
    2221 
    2322                if (!mHierarchyInterface->CheckFrustumVisible(node, intersects)) 
    24                 { 
     23                {if (mHierarchyInterface->mDummy) 
    2524                        mNumFrustumCulledNodes ++; 
    2625                } 
     
    4847                        else 
    4948                        { 
     49                                if (mHierarchyInterface->mDummy) 
    5050                                mNumQueryCulledNodes ++; 
    5151                        } 
  • trunk/VUT/Ogre/include/OgrePlatformHierarchyInterface.h

    r103 r111  
    8282        */ 
    8383        void SetOnlyShadowCasters(bool onlyShadowCasters); 
     84        /** see set */ 
     85        bool GetOnlyShadowCasters(); 
    8486 
    8587protected: 
  • trunk/VUT/Ogre/src/OgrePlatformHierarchyInterface.cpp

    r103 r111  
    177177{ 
    178178        mOnlyShadowCasters = onlyShadowCasters; 
     179        mDummy = mOnlyShadowCasters ; 
     180} 
     181//----------------------------------------------------------------------- 
     182bool PlatformHierarchyInterface::GetOnlyShadowCasters() 
     183{ 
     184        return mOnlyShadowCasters; 
    179185} 
    180186} // namespace Ogre 
  • trunk/VUT/Ogre/src/OgreSceneContentGenerator.cpp

    r110 r111  
    7272                createChildSceneNode(String(name) + "Node", position); 
    7373 
     74        //ent->setCastShadows(false); 
    7475        currentObject->attachObject(ent); 
    7576        currentObject->setScale(mScale); 
  • trunk/VUT/Ogre/src/OgreTerrainContentGenerator.cpp

    r110 r111  
    7676        if (mRayQueryExecutor->executeRayQuery(&queryResult, position, Vector3::NEGATIVE_UNIT_Y)) 
    7777        { 
    78                 queryResult.y += mOffset; 
    7978                // reject if height is too high 
    8079                if (queryResult.y < mMaxPos.y) 
    8180                { 
     81                        // add offset so object is over terrain 
     82                        queryResult.y += mOffset; 
     83 
    8284                        return SceneContentGenerator::GenerateSceneObject(queryResult, rotation, objName); 
    8385                } 
  • trunk/VUT/Ogre/src/OgreVisibilitySceneManager.cpp

    r103 r111  
    2525void VisibilitySceneManager::_findVisibleObjects(Camera* cam, bool onlyShadowCasters) 
    2626{ 
     27        mHierarchyInterface->SetOnlyShadowCasters(onlyShadowCasters); 
    2728        // does nothing if hierarchical culling is used => 
    2829        // we interleave identification and rendering of objects  
  • trunk/VUT/Ogre/src/OgreVisibilityTerrainSceneManager.cpp

    r107 r111  
    8585void VisibilityTerrainSceneManager::_renderVisibleObjects() 
    8686{ 
     87 
    8788        if (!mShowVisualization) 
    8889        { 
  • trunk/VUT/work/TestCulling/TestCullingApplication.cpp

    r107 r111  
    5757 
    5858        // Create a skybox 
    59     //mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox", 2000, false); 
     59    mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox", 2000, true); 
    6060    ColourValue fadeColour(0.1, 0.1, 0.6); 
    6161        mWindow->getViewport(0)->setBackgroundColour(fadeColour); 
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.cpp

    r110 r111  
    5252        //mCamera->setPosition(707, 5000, 528); 
    5353        mCamNode->setOrientation(Quaternion(-0.3486, 0.0122, 0.9365, 0.0329)); 
    54          
    5554        mCamNode->attachObject(mCamera); 
    5655 
     
    9796 
    9897        //-- create light 
    99         mSunLight = mSceneMgr->createLight("MainLight"); 
    100         mSunLight->setType(Light::LT_POINT); 
    101     mSunLight->setPosition(-707, 4000, -500); 
     98        mSunLight = mSceneMgr->createLight("SunLight"); 
     99        mSunLight->setType(Light::LT_DIRECTIONAL); 
     100        //mSunLight->setType(Light::LT_SPOTLIGHT); 
     101    mSunLight->setPosition(707, 2000, 500); 
     102        mSunLight->setCastShadows(true); 
     103 
    102104        //mSunLight->setSpotlightRange(Degree(30), Degree(50)); 
    103105 
    104     Vector3 dir; 
    105         dir = -mSunLight->getPosition(); 
     106    Vector3 dir(0.5, 0.1, 0.5); 
    106107        dir.normalise(); 
    107         mSunLight->setDirection(dir); 
    108         mSunLight->setDiffuseColour(0.8, 0.8, 0.8); 
    109         mSunLight->setSpecularColour(0.9, 0.9, 1); 
    110  
    111         //mSunLight->setCastShadows(true); 
     108        mSunLight->setDirection(Vector3::NEGATIVE_UNIT_Y); 
     109 
     110        mSunLight->setDiffuseColour(1, 1, 1); 
     111        mSunLight->setSpecularColour(1, 1, 1); 
    112112 
    113113        // --Fog 
     
    130130        setupGui(); 
    131131 
     132        //mSceneMgr->setShadowTechnique(SHADOWTYPE_NONE); 
     133 
     134        // Floor plane 
     135        Plane plane; 
     136        plane.normal = Vector3::UNIT_Y; 
     137        plane.d = -60; 
     138        MeshManager::getSingleton().createPlane("Myplane", 
     139                ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane, 
     140                5000,5000,100,100,true,1,5,5,Vector3::UNIT_Z); 
     141        Entity* pPlaneEnt = mSceneMgr->createEntity( "plane", "Myplane" ); 
     142        pPlaneEnt->setMaterialName("Examples/Rockwall"); 
     143        pPlaneEnt->setCastShadows(true); 
     144        mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(pPlaneEnt); 
     145 
     146        if (mRoot->getRenderSystem()->getCapabilities()->hasCapability(RSC_HWRENDER_TO_TEXTURE)) 
     147    { 
     148                // In D3D, use a 1024x1024 shadow texture 
     149                mSceneMgr->setShadowTextureSettings(1024, 2); 
     150        } 
     151        else 
     152        { 
     153                // Use 512x512 texture in GL since we can't go higher than the window res 
     154                mSceneMgr->setShadowTextureSettings(512, 2); 
     155        } 
     156        mSceneMgr->setShadowColour(ColourValue(0, 0, 0)); 
     157 // mSceneMgr->setShowDebugShadows(true); 
     158 
     159 
    132160        //-- terrain content setup 
    133161 
     
    144172                // => there is much occlusion 
    145173                mTerrainContentGenerator->SetMaxPos(Vector3(3000.0f, 50.0f, 3000.0f)); 
    146                 mTerrainContentGenerator->SetOffset(50); 
     174                mTerrainContentGenerator->SetOffset(0); 
    147175 
    148176                // the objects are generated on the whole terrain 
    149177                mTerrainContentGenerator->GenerateScene(1500, "athene"); 
     178                //mTerrainContentGenerator->GenerateScene(1500, "robot"); 
    150179                //      mTerrainContentGenerator->GenerateScene(500, "ninja"); 
    151180        } 
     
    215244mCurrentFrame(0), 
    216245mRecord(false), 
    217 mTimeElapsed(0) 
     246mTimeElapsed(0), 
     247mUseShadows(false) 
    218248{ 
    219249        // Reduce move speed 
     
    292322                 // Get results, create a node/entity on the position 
    293323                 mCurrentObject = mTerrainContentGenerator->GenerateSceneObject( 
    294                          mouseRay.getOrigin(), Vector3(0,0,0), "robot.mesh"); 
     324                         mouseRay.getOrigin(), Vector3(0,0,0), "robot"); 
    295325                 
    296326         mLMouseDown = true;  
     
    434464        KEY_PRESSED(KC_F2, 0.3, toggleRecord()); 
    435465        KEY_PRESSED(KC_F3, 0.3, mTerrainContentGenerator->WriteObjects(objects_outfile)); 
     466        KEY_PRESSED(KC_F4, 0.3, toggleUseShadows()); 
    436467        //KEY_PRESSED(KC_F3, 0.3, writeFrames()); 
    437468        //KEY_PRESSED(KC_F4, 0.3, loadFrames()); 
     
    706737} 
    707738//----------------------------------------------------------------------- 
     739void MouseQueryListener::toggleUseShadows() 
     740{ 
     741        mUseShadows = !mUseShadows; 
     742 
     743        //mSunLight->setCastShadows(mUseShadows); 
     744 
     745        if (mUseShadows) 
     746        { 
     747                mSceneMgr->setShadowTechnique(SHADOWTYPE_TEXTURE_MODULATIVE); 
     748        } 
     749        else 
     750        { 
     751                mSceneMgr->setShadowTechnique(SHADOWTYPE_NONE); 
     752        } 
     753 
     754} 
     755//----------------------------------------------------------------------- 
    708756void MouseQueryListener::toggleRenderNodesForViz() 
    709757{ 
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.h

    r109 r111  
    113113        void loadFrames(); 
    114114 
     115        void toggleUseShadows(); 
     116 
    115117protected: 
    116118        void Clamp2Terrain(); 
     
    162164        bool mRecord; 
    163165        Real mTimeElapsed; 
     166        bool mUseShadows; 
    164167}; 
    165168 
Note: See TracChangeset for help on using the changeset viewer.