- Timestamp:
- 10/17/08 16:32:37 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SkyPreetham.cpp
r3036 r3038 9 9 #include "Shape.h" 10 10 #include "Material.h" 11 #include "ResourceManager.h" 12 11 13 12 14 … … 22 24 23 25 26 27 24 28 using namespace CHCDemoEngine; 25 29 using namespace std; 26 30 27 31 28 static ShaderProgram *sCgSkyProgram = NULL;29 static ShaderProgram *sCgMrtFragmentSkyDomeProgram = NULL;30 31 ShaderContainer SkyPreetham::sShaders;32 33 32 34 33 inline float CBQ(float x) … … 44 43 45 44 46 void SkyPreetham::InitCG( CGcontext context)45 void SkyPreetham::InitCG() 47 46 { 48 sCgSkyProgram = new ShaderProgram(context, 49 "src/shaders/sky_preetham.cg", 50 RenderState::sCgVertexProfile, 51 "default_vs"); 52 53 if (sCgSkyProgram->IsValid()) 47 mSkyVtxProgram = 48 ResourceManager::GetSingleton()->CreateVertexProgram("sky_preetham", "default_vs"); 49 50 if (mSkyVtxProgram->IsValid()) 54 51 { 55 sCgSkyProgram->AddParameter("lightDir", 0);56 sCgSkyProgram->AddParameter("thetaSun", 1);57 sCgSkyProgram->AddParameter("zenithColor", 2);58 sCgSkyProgram->AddParameter("aColor", 3);59 sCgSkyProgram->AddParameter("bColor", 4);60 sCgSkyProgram->AddParameter("cColor", 5);61 sCgSkyProgram->AddParameter("dColor", 6);62 sCgSkyProgram->AddParameter("eColor", 7);63 sCgSkyProgram->AddParameter("multiplier", 8);52 mSkyVtxProgram->AddParameter("lightDir", 0); 53 mSkyVtxProgram->AddParameter("thetaSun", 1); 54 mSkyVtxProgram->AddParameter("zenithColor", 2); 55 mSkyVtxProgram->AddParameter("aColor", 3); 56 mSkyVtxProgram->AddParameter("bColor", 4); 57 mSkyVtxProgram->AddParameter("cColor", 5); 58 mSkyVtxProgram->AddParameter("dColor", 6); 59 mSkyVtxProgram->AddParameter("eColor", 7); 60 mSkyVtxProgram->AddParameter("multiplier", 8); 64 61 } 65 62 else 66 63 cerr << "sky program failed to load" << endl; 67 64 68 sShaders.push_back(sCgSkyProgram); 69 70 sCgMrtFragmentSkyDomeProgram = 71 new ShaderProgram(context, 72 "src/shaders/sky_preetham.cg", 73 RenderState::sCgFragmentProfile, 74 "frag_skydome"); 75 76 // simple shader used for just pushing out the fragments to the mrts 77 if (!sCgMrtFragmentSkyDomeProgram->IsValid()) 78 cerr << "fragment skyprogram failed to load" << endl; 79 80 sShaders.push_back(sCgMrtFragmentSkyDomeProgram); 81 } 82 83 84 void SkyPreetham::ReleaseCG() 85 { 86 CLEAR_CONTAINER(sShaders); 65 mSkyFragProgram = 66 ResourceManager::GetSingleton()->CreateFragmentProgram("sky_preetham", "frag_skydome"); 87 67 } 88 68 … … 96 76 Shape *shape = mSkyDome->GetShape(0); 97 77 78 InitCG(); 79 98 80 Material *mat = shape->GetMaterial(); 99 81 100 mat->SetFragmentProgram( sCgMrtFragmentSkyDomeProgram);101 mat->SetVertexProgram( sCgSkyProgram);82 mat->SetFragmentProgram(mSkyFragProgram); 83 mat->SetVertexProgram(mSkyVtxProgram); 102 84 } 103 85 … … 148 130 { 149 131 // use tone mapping 150 sCgSkyProgram->SetValue1f(8, 1.0f);132 vtxParams->SetValue1f(8, 1.0f); 151 133 } 152 134 else 153 135 { 154 136 // no tone mapping => scale 155 sCgSkyProgram->SetValue1f(8, 8e-5f);137 vtxParams->SetValue1f(8, 8e-5f); 156 138 } 157 158 cgGLEnableProfile(RenderState::sCgVertexProfile);159 139 160 140 // Render sky dome.
Note: See TracChangeset
for help on using the changeset viewer.