Ignore:
Timestamp:
12/07/06 16:38:48 (18 years ago)
Author:
szirmay
Message:
 
Location:
GTP/trunk/App/Demos/Illum/Ogre
Files:
9 added
6 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Illum/Ogre/Media/materials/programs/MetalTeapot.hlsl

    r1860 r1862  
    5353        ppp = length(p) / dist; 
    5454        */ 
    55         t = dt;  
     55        t = 0.01;        
    5656                 
    5757        while(t <= 1.0 && !overshoot) 
     
    6262                if(dist > 0) 
    6363                { 
    64                         ppp = length(p) / dist; 
     64                        bool us = false; 
     65                         
     66                        ppp = length(p) / dist;                  
    6567                        if(ppp < 1) 
     68                        us = true; 
     69                                 
     70                        us = !us; 
     71                         
     72                        if(us) 
    6673                        { 
    6774                                dl = dp; 
     
    225232                out float4 Color :COLOR0) 
    226233{ 
    227         if(SingleBounce == 1) 
    228         Color = Metal1BouncePS(IN,cameraPos,CubeMap,DistanceMap,lastCenter); 
    229         else 
    230         { 
     234        //if(SingleBounce == 1) 
     235        // Color = Metal1BouncePS(IN,cameraPos,CubeMap,DistanceMap,lastCenter); 
     236        //else 
     237        //{ 
    231238                Color = float4(1,1,1,1); 
    232239                 
     
    242249                newTexCoord = R; 
    243250                 
    244                 //Color = readCubeMap(NormDistMap1, mPos ); 
     251                //Color = readCubeMap(NormDistMap2, mPos ); 
    245252                //return; 
    246253                 
     
    248255                float3 newDir1; 
    249256                float d1 = Hit(mPos, R, NormDistMap1, newDir1); 
    250                 float3 normal1 = readCubeMap(NormDistMap1, newDir1); 
     257                float3 normal1 = readCubeMap(NormDistMap1, newDir1).rgb; 
    251258                bool valid1 = /*dot(normal1, R) < 0 &&*/ dot(newDir1,newDir1) != 0; 
    252259                if(valid1) 
     
    254261                float3 newDir2; 
    255262                float d2 = Hit(mPos, R, NormDistMap2, newDir2); 
    256                 float3 normal2 = readCubeMap(NormDistMap2, newDir2); 
     263                float3 normal2 =  readCubeMap(NormDistMap2, newDir2).rgb; 
    257264                bool valid2 = /*dot(normal2, R) < 0 &&*/ dot(newDir2,newDir2) != 0; 
    258265                if(valid2) 
     
    261268                if( !valid1 && !valid2) 
    262269                { 
    263                         Hit(mPos, R, DistanceMap, newTexCoord);  
    264                         Color = readCubeMap(CubeMap, newTexCoord ); 
     270                //      Hit(mPos, R, DistanceMap, newTexCoord);  
     271                //      Color = readCubeMap(CubeMap, newTexCoord ); 
    265272                        //Color = 1;                     
    266273                } 
     
    309316                 
    310317                Color = Color * float4(F,1);    */ 
    311         } 
     318        //} 
    312319} 
    313320 
     
    317324 float4 Color = float4(0, 0, 0, 0); 
    318325 //return Color; 
    319  Color = float4(normalize(IN.mNormal) * refIndex, length(IN.cPos)); 
     326 Color = float4(normalize(IN.mNormal)/* * refIndex*/, length(IN.cPos)); 
    320327 return Color; 
    321328} 
  • GTP/trunk/App/Demos/Illum/Ogre/Media/materials/programs/MetalTeapotNew.hlsl

    r1861 r1862  
    1313} 
    1414 
    15 #define MAX_LIN_ITERATIONCOUNT 20 
    16 #define MIN_LIN_ITERATIONCOUNT 6 
    17 #define SECANT_ITERATIONCOUNT 1 
    18 #define MAX_RAY_DEPTH 3 
     15#define MAX_LIN_ITERATIONCOUNT 80 
     16#define MIN_LIN_ITERATIONCOUNT 30 
     17#define SECANT_ITERATIONCOUNT 2 
     18#define MAX_RAY_DEPTH 4 
    1919 
    2020void linearSearch(  float3 x, float3 R, float3 N, samplerCUBE mp, 
     
    191191 
    192192float3 R;           
    193 if(refIndex > 100.0) 
     193//if(refIndex > 100.0) 
    194194    R = normalize(reflect( V, N)); 
    195 else 
    196 { 
    197         refIndex = 1.0 / refIndex; 
    198     R = normalize(refract( V, N, refIndex)); 
    199 } 
     195//else 
     196//{ 
     197//      refIndex = 1.0 / refIndex; 
     198//    R = normalize(refract( V, N, refIndex)); 
     199//} 
    200200                         
    201201 float3 Nl; 
     
    220220         float4 I = float4(0,0,0,0); 
    221221                         
    222          float3 N = normalize(IN.mNormal) * refIndex; 
     222         float3 N = normalize(IN.mNormal);// * refIndex; 
    223223         float3 newTexCoord;     
    224224         float3 x = IN.wPos - lastCenter; 
     
    232232         { 
    233233           float3 R; 
    234           float refIndex = length(N); 
    235           refIndex = 1.0 / refIndex; 
    236           N = normalize(N); 
     234          // float refIndex = length(N); 
     235          // refIndex = 1.0 / refIndex; 
     236          // N = normalize(N); 
    237237            
    238            if(refIndex > 100.0) 
     238           //if(refIndex > 100.0) 
    239239            R = normalize(reflect( V, N)); 
    240           else 
    241             R = normalize(refract( V, N, refIndex)); 
     240          // else 
     241          //  R = normalize(refract( V, N, refIndex)); 
    242242                                 
    243243           float3 Nl; 
     
    258258           V = R; 
    259259            
    260           if(refIndex <= 100.0) 
     260          //if(refIndex <= 100.0) 
    261261            if(dot(N, V) > 0) N = -N; 
    262262        } 
    263263         
    264 //      if(I.a == 0) 
    265  //      I = readCubeMap(CubeMap, l); 
     264        //if(I.a == 0) 
     265      // I = readCubeMap(CubeMap, l); 
    266266   
    267267        return I; 
     
    282282         Color = SingleReflectionPS(IN,cameraPos, CubeMap, DistanceMap, NormDistMap1,NormDistMap2,lastCenter,refIndex); 
    283283        else 
    284          Color = MultipleReflectionPS(IN,cameraPos, CubeMap, DistanceMap, NormDistMap1,NormDistMap2,lastCenter,refIndex); 
     284         Color = MultipleReflectionPS(IN,cameraPos, CubeMap, DistanceMap, NormDistMap2,NormDistMap2,lastCenter,refIndex); 
    285285          
    286286        return Color; 
  • GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/MetalTeapot.material

    r1860 r1862  
    8989    fragment_program_ref NormalDistancePS 
    9090    {  
    91                 param_named refIndex float 1.6           
     91                param_named refIndex float 200           
    9292        }  
    9393  } 
     
    111111    fragment_program_ref NormalDistancePS 
    112112    {  
    113                 param_named refIndex float 1.6           
     113                param_named refIndex float 200   
    114114        }  
    115115  } 
     
    196196                        param_named F0 float3 0.95 0.95 0.95 
    197197                        param_named SingleBounce float 0.0 
    198                         param_named refIndex float 1.6                   
     198                        param_named refIndex float 200                   
    199199                }  
    200200                 
  • GTP/trunk/App/Demos/Illum/Ogre/bin/Release/ogre.cfg

    r1851 r1862  
    33[Direct3D9 Rendering Subsystem] 
    44Allow NVPerfHUD=No 
    5 Anti aliasing=None 
     5Anti aliasing=Level 4 
    66Floating-point mode=Fastest 
    7 Full Screen=No 
    8 Rendering Device=NVIDIA GeForce 7950 GX2 
     7Full Screen=Yes 
     8Rendering Device=NVIDIA GeForce 6800 GT 
    99VSync=No 
    1010Video Mode=800 x 600 @ 32-bit colour 
  • GTP/trunk/App/Demos/Illum/Ogre/src/ReflectionTest/include/ReflectionTest.h

    r1860 r1862  
    3030#include "FrameCapture.h" 
    3131 
    32 int scene = 1; 
     32int scene = 3; 
    3333FrameCapture* capture; 
    3434 
     
    4343         
    4444public: 
     45        void setMoveSpeed(float speed){mMoveSpeed = speed;} 
    4546    RaytraceDemoListener(RenderWindow* window, Camera* maincam, SceneNode* objectNode) 
    4647        :ExampleFrameListener(window, maincam)  
     
    4849    { 
    4950                this->mMoveSpeed = 0.1; 
     51                if(scene == 2) 
     52                this->mMoveSpeed = 1.0; 
     53                if(scene == 3) 
     54                this->mMoveSpeed = 5.0; 
     55                 mStatsOn = false; 
     56                 showDebugOverlay(mStatsOn); 
     57 
    5058                framecount = 0;          
    5159                this->objectNode = objectNode;           
     
    280288                Root::getSingleton()._setCurrentSceneManager(mSceneMgr); 
    281289 
    282                 mCamera->setFOVy(Radian(Degree(80 * 3.0 / 4.0))); 
     290                mCamera->setFOVy(Radian(Degree(80 * mWindow->getHeight() / mWindow->getWidth()))); 
    283291                mCamera->setFarClipDistance(200); 
    284292                mCamera->setNearClipDistance(0.1); 
     
    295303                if(scene == 1) createScene1(); 
    296304                if(scene == 2) createScene2(); 
     305                if(scene == 3) createScene3(); 
    297306 
    298307                OgreIlluminationManager::getSingleton().initTechniques(); 
     
    362371        SceneNode* rootNode = mSceneMgr->getRootSceneNode(); 
    363372                 
    364                 Entity* object = mSceneMgr->createEntity("object", "athene.mesh"); 
     373                mCamera->setPosition(2.3,7.0,2.3); 
     374                mCamera->lookAt(Vector3(0,5.75,0.0)); 
     375                 
     376                Entity* object = mSceneMgr->createEntity("object", "teapot.mesh"); 
    365377                object->setMaterialName("MetalTeapotMultipleBounce"); 
    366378                objectNode = rootNode->createChildSceneNode(); 
    367379                objectNode->attachObject(object); 
    368380                //objectNode->scale(0.5,0.5,0.5); 
    369                 objectNode->scale(0.005,0.005,0.005); 
    370                 objectNode->setPosition(0,1.2,0); 
     381                //objectNode->scale(0.005,0.005,0.005); 
     382                objectNode->setPosition(0,5.75,0.0); 
    371383                objectNode->_updateBounds(); 
    372384 
    373                 Entity* room = mSceneMgr->createEntity("scene", "difflab.mesh"); 
     385                Entity* room = mSceneMgr->createEntity("scene", "terito.mesh"); 
    374386                //room->setMaterialName("GameTools/Phong"); 
    375387                SceneNode* roomNode = rootNode->createChildSceneNode(); 
     
    378390 
    379391                mSceneMgr->setShadowTechnique(SHADOWTYPE_NONE); 
    380                 Light* redLight1 = mSceneMgr->createLight("RedLight1"); 
    381                 redLight1->setType(Light::LT_POINT); 
    382                 redLight1->setCastShadows(false); 
    383         redLight1->setDiffuseColour(ColourValue(1,0.055, 0.0)); 
    384                 redLight1->setPowerScale(1.6); 
    385                 SceneNode* redLightNode1 = rootNode->createChildSceneNode(); 
    386                 redLightNode1->setPosition(0.05,2.361,-1.07); 
    387                 redLightNode1->attachObject(redLight1); 
    388  
    389                 Light* greenLight1 = mSceneMgr->createLight("GreenLight1"); 
    390                 greenLight1->setType(Light::LT_POINT); 
    391                 greenLight1->setCastShadows(false); 
    392         greenLight1->setDiffuseColour(ColourValue(0.362,0.783, 0.685)); 
    393                 greenLight1->setPowerScale(2.0); 
    394                 SceneNode* greenLightNode1 = rootNode->createChildSceneNode(); 
    395                 greenLightNode1->setPosition(1.312,1.313,0); 
    396                 greenLightNode1->attachObject(greenLight1);  
    397  
    398                 Light* mainBlueLight = mSceneMgr->createLight("MainBlueLight"); 
    399                 mainBlueLight->setType(Light::LT_SPOTLIGHT); 
    400                 mainBlueLight->setCastShadows(true); 
    401         mainBlueLight->setDiffuseColour(ColourValue(0.395,0.766, 1.0)); 
    402                 mainBlueLight->setPowerScale(5.0); 
    403                 mainBlueLight->setSpotlightRange(Degree(0),Degree(160)); 
    404                 mainBlueLight->setAttenuation(2.5, 0, 1, 0); 
    405                 SceneNode* mainBlueLightNode = rootNode->createChildSceneNode(); 
    406                 mainBlueLightNode->setPosition(-0.546,2.095,1.035); 
    407                 //mainBlueLightNode->rotate(Vector3::UNIT_X, Degree(161.396)); 
    408                 //mainBlueLightNode->rotate(Vector3::UNIT_Y, Degree(53.955)); 
    409                 //mainBlueLightNode->rotate(Vector3::UNIT_Z, Degree(-145.065)); 
    410                 mainBlueLight->setDirection(-1.5,-2.0,1.0); 
    411                 mainBlueLightNode->attachObject(mainBlueLight);  
     392                Light* Light1 = mSceneMgr->createLight("Light1"); 
     393                Light1->setType(Light::LT_POINT); 
     394                Light1->setCastShadows(false); 
     395        Light1->setDiffuseColour(ColourValue(1,1, 1)); 
     396                Light1->setPowerScale(1.0); 
     397                SceneNode* LightNode1 = rootNode->createChildSceneNode(); 
     398                LightNode1->setPosition(1.5,10.3,0); 
     399                LightNode1->attachObject(Light1);                
     400   } 
     401 
     402        void createScene3(void) 
     403    { 
     404        SceneNode* rootNode = mSceneMgr->getRootSceneNode(); 
     405                 
     406                mCamera->setPosition(6.564,4.328,0.059); 
     407                mCamera->lookAt(Vector3(0.4,0.16,0.25)); 
     408                 
     409                Entity* object = mSceneMgr->createEntity("object", "teapot.mesh"); 
     410                object->setMaterialName("MetalTeapotMultipleBounce"); 
     411                objectNode = rootNode->createChildSceneNode(); 
     412                objectNode->attachObject(object); 
     413                //objectNode->scale(0.5,0.5,0.5); 
     414                objectNode->scale(2.7,2.7,2.7); 
     415                objectNode->setPosition(0,0.7,0.0); 
     416                objectNode->_updateBounds(); 
     417 
     418                Entity* room = mSceneMgr->createEntity("scene", "colorcube.mesh"); 
     419                //room->setMaterialName("GameTools/Phong"); 
     420                SceneNode* roomNode = rootNode->createChildSceneNode(); 
     421                roomNode->attachObject(room); 
     422                roomNode->_updateBounds();                                       
    412423   } 
    413424 
Note: See TracChangeset for help on using the changeset viewer.