Ignore:
Timestamp:
01/24/07 21:46:05 (17 years ago)
Author:
szirmay
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Illum/Ogre/src/ReflectionTest/include/ReflectionTest.h

    r1879 r2057  
    3030#include "FrameCapture.h" 
    3131 
    32 int scene = 1; 
     32float refIndex = 0.77; 
     33int scene = 3; 
    3334FrameCapture* capture; 
    3435 
    3536bool multiplebounce = true; 
     37 
     38int currentMaterial = 6; 
     39int currentObject = 0; 
     40String objectNames[] = {String("sphere.mesh"), 
     41                        String("teapot.mesh")}; 
     42 
     43String materialNames[] = {String("GTP/MultiBounce/Reflector"), 
     44                                                        String("GTP/MultiBounce/Refractor"), 
     45                                                        String("GTP/MultiBounce/CausticRefractor"), 
     46                                                        String("GTP/MultiBounce/Reflector_MinMax"), 
     47                                                        String("GTP/MultiBounce/Refractor_MinMax"), 
     48                                                        String("GTP/MultiBounce/CausticRefractor_MinMax"), 
     49                                                        String("GTP/MultiBounce/Refractor2L")}; 
     50                         
     51String resourceGroupName[] = {  String("GTP_MultipleReflection"), 
     52                                                                String("GTP_MultipleRefraction"), 
     53                                                                String("GTP_MultipleRefraction"), 
     54                                                                String("GTP_MultipleReflection_MinMax"), 
     55                                                                String("GTP_MultipleRefraction_MinMax"), 
     56                                                                String("GTP_MultipleRefraction_MinMax"), 
     57                                                                String("GTP_MultipleRefraction2L")}; 
    3658 
    3759// Listener class for frame updates 
     
    5274                this->mMoveSpeed = 1.0; 
    5375                if(scene == 3) 
    54                 this->mMoveSpeed = 5.0; 
     76                this->mMoveSpeed = 10.0; 
    5577                 mStatsOn = false; 
    5678                 showDebugOverlay(mStatsOn); 
     
    79101                float elapsed = thisTime - lastTime; 
    80102                float move = elapsed * 0.25; 
     103                if(scene == 3) 
     104                        move *= 10; 
    81105                float rotate = 80.0 * move; 
     106 
     107                if (mInputDevice->isKeyDown(KC_J)) 
     108        { 
     109                        MaterialPtr mat1 = MaterialManager::getSingleton().getByName("GTP/MultiBounce/Refractor2L"); 
     110                        GpuProgramParameters* Fparams1 = mat1->getTechnique(0)->getPass(0)->getFragmentProgramParameters().getPointer(); 
     111                        MaterialPtr mat2 = MaterialManager::getSingleton().getByName("GTP/MultiBounce/PhotonMap2L"); 
     112                        GpuProgramParameters* Fparams2 = mat2->getTechnique(0)->getPass(0)->getFragmentProgramParameters().getPointer(); 
     113                         
     114                        refIndex -= 0.001; 
     115 
     116                        Fparams1->setNamedConstant("refIndex", refIndex); 
     117                        Fparams2->setNamedConstant("refIndex", refIndex); 
     118        } 
     119                if (mInputDevice->isKeyDown(KC_K)) 
     120        { 
     121                        MaterialPtr mat1 = MaterialManager::getSingleton().getByName("GTP/MultiBounce/Refractor2L"); 
     122                        GpuProgramParameters* Fparams1 = mat1->getTechnique(0)->getPass(0)->getFragmentProgramParameters().getPointer(); 
     123                        MaterialPtr mat2 = MaterialManager::getSingleton().getByName("GTP/MultiBounce/PhotonMap2L"); 
     124                        GpuProgramParameters* Fparams2 = mat2->getTechnique(0)->getPass(0)->getFragmentProgramParameters().getPointer(); 
     125                         
     126                        refIndex += 0.001; 
     127                        Fparams1->setNamedConstant("refIndex", refIndex); 
     128                        Fparams2->setNamedConstant("refIndex", refIndex); 
     129        } 
    82130 
    83131                if (mInputDevice->isKeyDown(KC_UP)) 
     
    277325 
    278326    } 
     327     
     328        void loadResources(void) 
     329        { 
     330                // Initialise, parse scripts etc 
     331                ResourceGroupManager::getSingleton().initialiseResourceGroup("Bootstrap"); 
     332                ResourceGroupManager::getSingleton().initialiseResourceGroup("General"); 
     333                ResourceGroupManager::getSingleton().initialiseResourceGroup("PostProc"); 
     334                ResourceGroupManager::getSingleton().initialiseResourceGroup("GTP_Basic"); 
     335                ResourceGroupManager::getSingleton().initialiseResourceGroup("GTP_EnvMap"); 
     336                ResourceGroupManager::getSingleton().initialiseResourceGroup("GTP_Caustic"); 
     337                ResourceGroupManager::getSingleton().initialiseResourceGroup("GTP_MultiBounce_Shared"); 
     338                ResourceGroupManager::getSingleton().initialiseResourceGroup(resourceGroupName[currentMaterial]); 
     339                if(currentMaterial == 2) 
     340                        ResourceGroupManager::getSingleton().initialiseResourceGroup("GTP_MultiBounce_PhotonMap"); 
     341                if(currentMaterial == 5) 
     342                        ResourceGroupManager::getSingleton().initialiseResourceGroup("GTP_MultiBounce_PhotonMap_MinMax"); 
     343        } 
    279344 
    280345        void createScene(void) 
     
    314379                //mCamera->lookAt(Vector3(0,1.2,0.0)); 
    315380                 
    316                 bool teapot = true; 
    317381                Entity* object; 
    318                 if(teapot) 
    319                 object = mSceneMgr->createEntity("object", "teapot.mesh"); 
    320                 else 
    321           object = mSceneMgr->createEntity("object", "sphere.mesh"); 
    322  
    323                 object->setMaterialName("MetalTeapotMultipleBounce"); 
     382                object = mSceneMgr->createEntity("object", objectNames[currentObject]); 
     383                  
     384                object->setMaterialName(materialNames[currentMaterial]); 
    324385                objectNode = rootNode->createChildSceneNode("objectNode"); 
    325386                objectNode->attachObject(object); 
    326                 if(teapot) 
    327                 objectNode->scale(0.5,0.5,0.5); 
    328                 else 
    329                 objectNode->scale(0.005,0.005,0.005); 
     387                 
     388                if(currentObject == 1) 
     389                        objectNode->scale(0.5,0.5,0.5); 
     390                if(currentObject == 0) 
     391                        objectNode->scale(0.005,0.005,0.005); 
    330392                //objectNode->scale(0.005,0.005,0.005); 
     393                 
    331394                objectNode->setPosition(0,1.2,0); 
    332395                objectNode->_updateBounds(); 
     
    381444                 
    382445                mCamera->setPosition(2.3,7.0,2.3); 
    383                 mCamera->lookAt(Vector3(0,5.75,0.0)); 
     446                //mCamera->lookAt(Vector3(0,5.75,0.0)); 
    384447                 
    385448                Entity* object = mSceneMgr->createEntity("object", "teapot.mesh"); 
     
    410473 
    411474        void createScene3(void) 
    412     { 
     475    {       
    413476        SceneNode* rootNode = mSceneMgr->getRootSceneNode(); 
    414477                 
    415                 bool teapot = true; 
    416478                //mCamera->getParentSceneNode()->translate(Vector3(6.564,4.328,0.059)); 
    417479                //mCamera->setPosition(4.0,4.2,-3.5); 
    418                 mCamera->setPosition(7.0,2.6,-0.5); 
    419                 mCamera->lookAt(Vector3(1.0, 0.0,0.6)); 
     480                mCamera->getParentSceneNode()->translate(7.0,2.6,-0.5); 
     481                //mCamera->setPosition(7.0,2.6,-0.5); 
     482                //mCamera->lookAt(Vector3(1.0, 0.0,0.6)); 
    420483                Entity* object; 
    421  
    422                 if(teapot) 
    423                  object = mSceneMgr->createEntity("object", "teapot.mesh"); 
    424                 else 
    425                  object = mSceneMgr->createEntity("object", "sphere.mesh"); 
    426                 object->setMaterialName("MetalTeapotMultipleBounce"); 
     484                 
     485                object = mSceneMgr->createEntity("object", objectNames[currentObject]); 
     486 
     487                object->setMaterialName(materialNames[currentMaterial]); 
    427488                objectNode = rootNode->createChildSceneNode(); 
    428489                objectNode->attachObject(object); 
    429490 
    430                 if(teapot) 
     491                if(currentObject == 1) 
    431492                { 
    432493                  objectNode->scale(2.7,2.7,2.7); 
    433494                  objectNode->setPosition(0,0.7,0.0); 
    434495                } 
    435                 else 
     496                if(currentObject == 0) 
    436497                { 
    437498                  objectNode->scale(0.027,0.027,0.027);          
     
    445506                SceneNode* roomNode = rootNode->createChildSceneNode(); 
    446507                roomNode->attachObject(room); 
    447                 roomNode->_updateBounds();                                       
     508                roomNode->setScale(2,2,2); 
     509                roomNode->_updateBounds(); 
     510 
     511                mSceneMgr->setShadowTechnique(SHADOWTYPE_NONE); 
     512                Light* Light1 = mSceneMgr->createLight("Light1"); 
     513                Light1->setType(Light::LT_SPOTLIGHT); 
     514                Light1->setCastShadows(true); 
     515        Light1->setDiffuseColour(ColourValue(1,1, 1)); 
     516                Light1->setPowerScale(1.0); 
     517                SceneNode* LightNode1 = rootNode->createChildSceneNode(); 
     518                LightNode1->setPosition(3,3,3); 
     519                Light1->setDirection(-1,-1,-1); 
     520                Light1->setSpotlightRange(Degree(0),Degree(120)); 
     521                LightNode1->attachObject(Light1); 
     522 
     523                BillboardSet* bbs = mSceneMgr->createBillboardSet("bb", 1); 
     524                bbs->setDefaultDimensions(0.2, 0.2); 
     525                bbs->createBillboard(Vector3::ZERO, ColourValue::White); 
     526                bbs->setMaterialName("Flare"); 
     527                LightNode1->attachObject(bbs); 
    448528   } 
    449529 
Note: See TracChangeset for help on using the changeset viewer.