Thanks, David.
Here is my source code.
Comments are in spanish, sorry.
Method setClippingPlanes get de viewers altitude (z), computes distance to
DEM and assigns clipping planes.
As you can see, front clipping plane is normal.
The results arent very satisfactory.
Thanks everybody, specially David Yazel for his help.
import javax.vecmath.*;
import javax.media.j3d.*;
public class DinamicZBuffer {
/**
* Ajusta los planos de clip para la View pasada.
*
* @param vista Vista a ajustar.
* @param viewTransform Transformacion actual de la vista.
* @param z Z respecto a la cual hay que ajustar los
planos de clip.
*/
public static void setClippingPlanes(View vista, Transform3D
viewTransform, double z)
{
// obtener posicion actual de la vista
Vector3d posicion = new Vector3d();
viewTransform.get(posicion);
// obtener distancia en Z desde la vista a la z pasada como parametro
double distancia = posicion.z - z;
if (distancia > 840.0)
{
vista.setBackClipDistance(3000.0);
vista.setFrontClipDistance(100.0);
}
else if ( (distancia <= 840.0) && (distancia > 700.0))
{
vista.setBackClipDistance(2500.0);
vista.setFrontClipDistance(70.0);
}
else if((distancia <=700.0) && (distancia >300.0))
{
vista.setBackClipDistance(1600.0);
vista.setFrontClipDistance(60.0);
}
else if ((distancia <= 300.0) && (distancia>150.0))
{
vista.setBackClipDistance(1400.0);
vista.setFrontClipDistance(20.0);
}
else if ((distancia<=150.0) &&(distancia > 100.0))
{
vista.setBackClipDistance(1400.0);
vista.setFrontClipDistance(15.0);
}
else if( (distancia <= 100.0)&&( distancia>20.0) )
{
vista.setBackClipDistance(1300.0);
vista.setFrontClipDistance(2.0);
}
else if (distancia<=20.0)
{
vista.setBackClipDistance(1300.0);
vista.setFrontClipDistance(1.0);
}
/* else if (distancia <= 1.0)
{
vista.setBackClipDistance(299.0);
vista.setFrontClipDistance(0.1);
}
*/
}
}
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".