It's likely that the floating point representation is biting you. I'm
guessing that you put the camera out at the coordinates of the terrain,
far from the origin. It's far better to have the camera near the origin
and translate the part of the terrain you're looking at back near the
origin so that you don't experience floating point roundoff errors. In
other words, put a transform node above the entire scenegraph, and
translate the whole scene back near the origin and leave the camera near
the origin as well. It doesn't matter if the original points are double
instead of float, by the time it hits the graphics hardware, you're
dealing with floating point values and the roundoff can be a problem.

For a description of the problem, look at pages 7-8 of the following
paper:

"Locales and Beacons: Efficient and Precise Support For Large Multi-User
Virtual Environments"
This paper discusses problems with rendering large distances from the
origin.

http://citeseer.nj.nec.com/barrus96locales.html

John B.


-----Original Message-----
From: Discussion list for Java 3D API
[mailto:[EMAIL PROTECTED]] On Behalf Of Erdei Mark
Sent: Tuesday, March 26, 2002 7:19 AM
To: [EMAIL PROTECTED]
Subject: [JAVA3D] rendering problems


Hi!

I am rendering a terrain in j3d which is a TriangleStripArray. The
problem is that if this object is located very far from the origin and
has a relatively small feature size (one corner of this rectangular
terrain is at 1621796,6588912 and it consists of 400*400 squares each
4*4 in size), the rendering contains a regular pattern of black holes.
If squares are larger (100*100 in size)  and the terrain origin is at
160000,300000 the rendering is correct. In the you can find a screenshot
of this problem.

Thanks,
Mark

===========================================================================
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".

Reply via email to