Hi Matthew, Yes that is, unfortunately, expected behaviour.
The clipnode that is used for the reflections is set in OceanScene.cpp osg::ClipPlane* reflClipPlane = new osg::ClipPlane(0); reflClipPlane->setClipPlane( 0.0, 0.0, 1.0, _oceanSurface->getSurfaceHeight() ); _reflectionClipNode = new osg::ClipNode; _reflectionClipNode->addClipPlane( reflClipPlane ); The problem as you can see is the _oceanSurface->getSurfaceHeight(). In FFTOceanSurface this value is computed when the mipmap geometry is initially computed so that it takes the average height of all the tiles. Unfortunately I forgot to add a setter for this function to override the computed value. getSurfaceHeight() is also used for a variety of other effects like silt and switching on the underwater effects. I'm afraid I don't have time to fix this at the moment. But it should be quite easy to add a setSurfaceHeight( float height ) function to FFTOceanSurface which overrides the _averageHeight variable within it. However it will need to be set in the following order: FFTOceanSurface* ocean = new FFTOceanSruface( ... ); ocean->build() <- height is set to average wave height. ocean->setSurfaceHeight(1.f) <- override computed value. >Though I believe the problem with the reflection is because the bottom >of my landscape scene is transparent. Yes I believe you're seeing the underside of your terrain in the water there, a result of the clip plane being set too low. Sorry I can't be of more help. Kim. 2009/8/12 Matthew Lehner <[email protected]>: > I was attempting to transform the ocean surface along the z-axis as > described Kim using a MatrixTransform in the constructor of OceanScene > where OceanSurface is added to the Scene as a child node. The surface > is indeed transformed properly, but the reflection it completely > wrong. First off it gives the illusion the surface is still at the > original z-axis position, but it also seems to be reflecting the top > of my landscape onto the water which doesn't seem correct to me. > Though I believe the problem with the reflection is because the bottom > of my landscape scene is transparent. I am more interested in fixing > the z-offset reflection problem. I have attached a screen shot of the > reflection I am seeing. > > This is the code I am using to transform the ocean surface along the z-axis. > >> osg::MatrixTransform* mt = new osg::MatrixTransform( >> osg::Matrixd::transform(osg::Vec3d(0.0, 0.0, 1.0)) ); >> mt->addChild(_oceanSurface.get()); >> addChild(mt); > > Screenshots of the reflection can be seen here: http://www.xavia.org/osgocean/ > > Regards, > > Matt Lehner > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

