Changeset 8247 in orxonox.OLD for branches/atmospheric_engine
- Timestamp:
- Jun 8, 2006, 2:55:02 PM (19 years ago)
- Location:
- branches/atmospheric_engine/src/lib/graphics
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/atmospheric_engine/src/lib/graphics/effects/cloud_effect.cc
r8242 r8247 155 155 156 156 // glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 157 glShadeModel(GL_SMOOTH);158 glEnable(GL_DEPTH_TEST);159 glEnable(GL_CULL_FACE);160 glCullFace(GL_BACK);161 glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);162 163 glLineWidth(3.0f);157 // glShadeModel(GL_SMOOTH); 158 // glEnable(GL_DEPTH_TEST); 159 // glEnable(GL_CULL_FACE); 160 // glCullFace(GL_BACK); 161 // glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 162 163 // glLineWidth(3.0f); 164 164 165 165 static float time = 0.0f; -
branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.cc
r8023 r8247 38 38 this->loadParams(root); 39 39 40 if( this->fogActivate)41 40 if (this->fogActivate) 41 this->activate(); 42 42 } 43 43 … … 57 57 LoadParam(root, "range", this, FogEffect, setFogRange); 58 58 LoadParam(root, "color", this, FogEffect, setFogColor); 59 LoadParam(root, "option", this, FogEffect, setFogOption); 59 60 LOAD_PARAM_START_CYCLE(root, element); 61 { 62 LoadParam_CYCLE(element, "option", this, FogEffect, setFogOption); 63 } 64 LOAD_PARAM_END_CYCLE(element); 60 65 } 61 66 … … 63 68 { 64 69 //default values 65 70 this->fogActivate = false; 66 71 this->fogMode = GL_EXP2; 67 72 this->fogDensity = 0.001; 68 73 this->fogStart = 0; 69 74 this->fogEnd = 5000; 70 75 this->colorVector = Vector(0.7, 0.7, 0.7); 71 76 } 72 73 77 74 78 … … 76 80 { 77 81 PRINTF(0)( "Enabling FogEffect, mode: %i, density: %f, start: %f, end: %f, color %f, %f, %f\n", this->fogMode, this->fogDensity, this->fogStart, this->fogEnd, this->colorVector.x, this->colorVector.y, this->colorVector.z); 82 83 this->fogActivate = true; 78 84 79 85 glEnable(GL_FOG); … … 95 101 { 96 102 PRINTF(0)("Deactivating FogEffect\n"); 103 104 this->fogActivate = false; 105 97 106 glDisable(GL_FOG); 98 107 } -
branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.h
r8023 r8247 22 22 virtual bool activate(); 23 23 virtual bool deactivate(); 24 25 26 24 25 void activateFog() { this->activate(); } 26 void deactivateFog() { this->deactivate(); } 27 27 28 28 inline void setFogMode(const std::string& mode) { this->fogMode = this->stringToFogMode(mode); } … … 30 30 inline void setFogRange(float start, float end) { this->fogStart = start; this->fogEnd = end; } 31 31 inline void setFogColor(float r, float g, float b) { this->colorVector = Vector(r, g, b); } 32 32 inline void setFogOption(const std::string& option) { if (option == "activate") this->fogActivate = true; } 33 33 34 34 private: 35 35 GLint stringToFogMode(const std::string& mode); 36 36 37 private:38 GLint fogMode; 39 GL float fogDensity;40 GLfloat fogStart;41 GLfloat fogEnd;42 Vector colorVector;43 bool fogActivate;37 bool fogActivate; 38 39 GLint fogMode; 40 GLfloat fogDensity; 41 GLfloat fogStart; 42 GLfloat fogEnd; 43 Vector colorVector; 44 44 }; 45 45 -
branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.cc
r8242 r8247 116 116 117 117 lightMan = LightManager::getInstance(); 118 this->rainAmbient = lightMan->getAmbientColor(); 118 119 } 119 120 … … 163 164 this->rainActivate = false; 164 165 this->emitter->setSystem(NULL); 166 167 // Stop Sound 165 168 this->soundSource.stop(); 166 169 167 lightMan->setAmbientColor(1,1,1); 170 // Restore Light Ambient 171 lightMan->setAmbientColor(this->rainAmbient, this->rainAmbient, this->rainAmbient); 168 172 } 169 173 … … 182 186 float progress = this->localTimer / this->rainStartDuration; 183 187 184 // PRINTF(0)("Progress %f: \n", progress); 188 // Dim Light 189 lightMan->setAmbientColor(1.1 - progress, 1.1 - progress, 1.1 - progress); 185 190 186 191 // use alpha in color to fade in -
branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.h
r8180 r8247 78 78 float soundRainVolume; 79 79 80 LightManager* lightMan; 80 LightManager* lightMan; 81 GLfloat rainAmbient; 82 81 83 }; 82 84 -
branches/atmospheric_engine/src/lib/graphics/light.h
r6512 r8247 1 1 /*! 2 3 2 * @file light.h 3 * Handles Lights. 4 4 5 6 7 5 A Light is one of the more important things in a 3D-environment, 6 without it one sees nothing :) 7 It is here for diffuse-, specular- and Bump-Mappings. 8 8 */ 9 9 … … 25 25 class Light : public PNode 26 26 { 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 27 public: 28 Light(const TiXmlElement* root = NULL); 29 virtual ~Light(); 30 31 virtual void loadParams(const TiXmlElement* root); 32 33 void setDiffuseColor(GLfloat r, GLfloat g, GLfloat b); 34 void setSpecularColor(GLfloat r, GLfloat g, GLfloat b); 35 void setAttenuation(float constantAttenuation, float linearAttenuation, float quadraticAttenuation); 36 void setSpotDirection(const Vector& direction); 37 void setSpotDirection(float x, float y, float z) { setSpotDirection(Vector(x,y,z)); }; 38 void setSpotCutoff(GLfloat cutoff); 39 40 /** @returns the lightNumber*/ 41 int getLightNumber() const {return this->lightNumber;} 42 43 virtual void draw() const; 44 45 void debug() const; 46 47 // attributes 48 private: 49 int lightNumber; //!< The number of this Light. 50 GLfloat diffuseColor[4]; //!< The Diffuse Color this Light emmits. 51 GLfloat specularColor[4]; //!< The specular Color of this Light. 52 float constantAttenuation; //!< The Factor of the the Constant Attenuation. 53 float linearAttenuation; //!< The Factor of the the Linear Attenuation. 54 float quadraticAttenuation; //!< The Factor of the the Quadratic Attenuation. 55 GLfloat spotDirection[4]; //!< The direction of the Spot Light. 56 GLfloat spotCutoff; //!< The cutoff Angle of the Light Source 57 57 }; 58 59 60 58 59 60 61 61 //! A class that handles Lights 62 62 /** 63 63 A Light is a source that emits light rays (photons) 64 64 65 66 67 68 69 65 <b>Usage:</b>\n 66 First you have to get the Light Manager up and running by using LightManager::getInstance(). 67 This automatically initiates the GL_LIGHTING, and sets some default stuff about the light.\n 68 Then you will create a new light using: 69 \li new Light(); 70 70 71 72 71 if you want to operate on this Light just apply the following functions onto it. 72 (You can also optain the Light-pointer with LightManager::getInstance()->getLight(lightNumber)) 73 73 74 75 76 77 78 79 80 74 now you can operate on the light as follows: 75 \li void setDiffuseColor(GLfloat r, GLfloat g, GLfloat b); 76 \li void setSpecularColor(GLfloat r, GLfloat g, GLfloat b); 77 \li void setAttenuation(float constantAttenuation, float linearAttenuation, float quadraticAttenuation); 78 \li void setSpotDirection(Vector direction); 79 \li void setSpotCutoff(GLfloat cutoff); 80 \li all PNode stuff also works 81 81 82 83 82 To redraw the light use 83 \li void draw() const; (this is automatically done by the LightManager) 84 84 85 86 85 for some nice output just use: 86 \li void debug() const; (either on LightManager for a resume or on any Light for single information.) 87 87 */ 88 88 class LightManager : public BaseObject 89 {90 89 { 90 friend class Light; 91 91 92 93 94 95 92 public: 93 virtual ~LightManager(); 94 /** @returns a Pointer to the only object of this Class */ 95 inline static LightManager* getInstance() { if (!singletonRef) singletonRef = new LightManager(); return singletonRef; }; 96 96 97 98 97 virtual void loadParams(const TiXmlElement* root); 98 void loadLights(const TiXmlElement* root); 99 99 100 void setAmbientColor(GLfloat r, GLfloat g, GLfloat b); 100 void setAmbientColor(GLfloat r, GLfloat g, GLfloat b); 101 // HACK: Assuming r = g = b values 102 inline GLfloat getAmbientColor() { return this->ambientColor[0]; } 101 103 102 103 104 Light* getLight(int lightNumber) const; 105 inline Light* getLight() const { return this->currentLight; }; 104 106 105 107 void draw() const; 106 108 107 109 void debug() const; 108 110 109 110 111 private: 112 LightManager(); 111 113 112 113 114 int registerLight(Light* light); 115 void unregisterLight(Light* light); 114 116 115 116 117 117 private: 118 static LightManager* singletonRef; //!< This is the LightHandlers Reference. 119 GLfloat ambientColor[4]; //!< The ambient Color of the scene. 118 120 119 120 121 Light** lights; //!< An array of Lenght NUMBEROFLIGHTS, that holds pointers to all LightValues. 122 Light* currentLight; //!< The current Light, we are working with. 121 123 122 124 };
Note: See TracChangeset
for help on using the changeset viewer.