Changeset 8630 in orxonox.OLD for branches/water/src
- Timestamp:
- Jun 20, 2006, 2:34:28 PM (18 years ago)
- Location:
- branches/water/src/world_entities/environments
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/water/src/world_entities/environments/mapped_water.cc
r8628 r8630 234 234 // to our texture map size, then render the current scene our camera 235 235 // is looking at to the already allocated texture unit. Since this 236 // is a reflection of the top of the water surface we use clipping 236 // is a reflection of the top of the water surface we use clipping 237 237 // planes to only render the top of the world as a reflection. If 238 238 // we are below the water we don't flip the reflection but just use … … 318 318 if(pos.y > waterPos.y) 319 319 { 320 double plane[4] = {0, -1, 0, waterPos.y}; 320 double plane[4] = {0, -1, 0, waterPos.y}; 321 321 glClipPlane(GL_CLIP_PLANE0, plane); 322 323 322 } 324 323 // If the camera is below the water, only render the data above the water … … 326 325 { 327 326 glCullFace(GL_FRONT); 328 double plane[4] = {0, 1, 0, -waterPos.y}; 327 double plane[4] = {0, 1, 0, -waterPos.y}; 329 328 glClipPlane(GL_CLIP_PLANE0, plane); 330 329 } -
branches/water/src/world_entities/environments/mapped_water.h
r8628 r8630 26 26 class MappedWater : public WorldEntity 27 27 { 28 29 30 28 public: 29 MappedWater(const TiXmlElement* root = NULL); 30 virtual ~MappedWater(); 31 31 32 32 void loadParams(const TiXmlElement* root); 33 33 34 35 34 void draw() const; 35 void tick(float dt); 36 36 37 38 39 40 41 37 // function to prepare renderpaths for creation of refleaction and reflaction textures 38 void activateReflection(); 39 void deactivateReflection(); 40 void activateRefraction(); 41 void deactivateRefraction(); 42 42 43 44 45 46 47 48 49 50 43 // functions to set parameters for the water, usually they're called through loadparam 44 void setLightPos(float x, float y, float z) { this->lightPos = Vector(x,y,z); }; 45 void setWaterPos(float x, float y, float z) { this->waterPos = Vector(x,y,z); }; 46 void setWaterSize(float x, float z) { this->xWidth = x; this->zWidth = z; }; 47 void setWaterAngle(float angle) { this->waterAngle = angle; }; 48 void setWaterUV(float uv) { this->waterUV = uv; }; 49 void setWaterFlow(float flow) { this->waterFlow = flow; }; 50 void setNormalMapScale(float scale) { this->kNormalMapScale = scale; }; 51 51 52 53 54 55 52 private: 53 void initParams(); 54 void initTextures(); 55 void initShaders(); 56 56 57 58 59 60 61 57 private: 58 Vector waterPos; //!< position of the water 59 float xWidth, zWidth; //!< size of the water quad 60 Vector lightPos; //!< position of the light that is used to render the reflection 61 float waterAngle; //!< defines how much the water will be turned around the point waterPos 62 62 63 64 65 66 67 68 63 float move; //!< textures coords, speeds, positions for the shaded textures.... 64 float move2; 65 float waterUV; //!< size of the waves 66 float waterFlow; //!< speed of the water 67 float normalUV; 68 float kNormalMapScale; 69 69 70 71 72 73 70 int textureSize; //!< height and width of the texture 71 Material mat; 72 Shader* shader; 73 Shader::Uniform* cam_uni; //!< uniform that is used for the camera position 74 74 }; 75 75
Note: See TracChangeset
for help on using the changeset viewer.