Page 1 of 1

realistic water

Posted: Thu Feb 17, 2005 5:38 pm
by Guest
In the special effects demo, the water looks fine, until you move the camera between the water, and the floor which is beneath the water. Is there any way of improving this, so there is an underwater style effect? If I include any swimming in my game, the water in the tutorial wouldn't be adequate.

Posted: Thu Feb 17, 2005 8:02 pm
by eXodus
At runtime, you will have to detect an "underwater" scene and react in accordance. Camera motions, distortions, bubbles etc.

How to detect if the camera is inside a water scene node will be a nice challenge though...

Hard-coded positions would be plain dumb execpt for testing purposes. If you'd be using a bsp mapper, then you might make use of entities.

Posted: Tue Mar 01, 2005 2:55 pm
by itguru80
I was also thinking......

Is it possible in Irrlicht to do animation of a body moving through water?

So say you wanted to put a boat on the water, move it along, and have some sort of wake flowing out the back?

I assume this woule require a physics or particle engine?

Posted: Tue Mar 01, 2005 4:20 pm
by eXodus
I'd suggest creating a nice looking effect with a particle system. A water physic engine would suck up a lot of resources.

FYI I don't think its implemented even in Havok, so doing one by yourself will be near impossible...

Posted: Tue Mar 01, 2005 5:53 pm
by Guest
You can also give to the scene a medium high and test your poition with this high. if your altitude is less than this value, then your camera is under water. I think i will use this technic to test if my ship is under water or not...

simple and fine water

Posted: Fri Mar 04, 2005 8:53 pm
by vorschau
check my water - whith backface culling you can get under it an remember the mesh u use - only the points whithin are animated


// Wasseroberfläche
scene::ISceneNode* wasser = 0;
scene::IAnimatedMesh* nass = smgr->getMesh("wasser.3ds");

if (nass)
{
wasser = smgr->addWaterSurfaceSceneNode(nass->getMesh(0), 3.0f, 300.0f, 30.0f);
wasser->getMaterial(0) .BackfaceCulling = false;
wasser->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);



}