help-3dldf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[help-3dldf] Re: Rotations


From: Laurence Finston
Subject: [help-3dldf] Re: Rotations
Date: Tue, 17 Aug 2004 00:36:07 +0200
User-agent: IMHO/0.98.3+G (Webmail for Roxen)

Hans Aberg wrote:

> 
> You have some conflicting requirements, exactitude and speed. My 
> guess is
> that speed will be the most important in graphics, and thus, you will be
> stuck with using 64-bit floats. 

It will depend on the particular task being done at a given time.   If it
happens to be real-time rendering, then (expressed loosely) speed will be more
important than precision.  However, one of my particular mathematical
interests is intersections (at the level at which I am able to pursue
mathematics), and I'd like to implement functions in 3DLDF for finding the
intersections of various curves and other geometric figures.  
So if this is the task, then precision will be more important than speed.

> And another is to simply use a small
> epsilon which defines what should be considered as graphically equal points
> (a suitable fraction of what can be graphically rendered). When I program
> with floats, I usually use such an epsilon.

I think it will certainly be necessary to use an epsilon.

> 
> An idea to find such an epsilon might be as follows: Your graphics will be
> printed by at most 2400 points/inch, and of largest size 10 inches, so this
> gives perhaps about 10^4 points in your graphics, say 10^5 to be sure. How
> many components will your graphics have? Probably not more than 10^5. Then
> your epsilon will be around 10^(-10) in relative error. Then 64-bit floats
> have an accuracy of 15-16 decimals, giving room for about 10^5-10^6
> floating point operations. So this should be enough even in heavy computing.
> 

The number of points and  components, and the size of the graphics could be
very much greater than what you suggest.  Reflections, in particular, can
cause the number of points and components to increase exponentially, so I'll
have to limit the "depth" of reflection, i.e., the number of times reflections
are reflected.  

For both `float' and `double', I use values of epsilon that seem to work, but
I've never had a chance to test them.  I've mentioned this in the manual and
asked for feedback about this, but I haven't gotten any.

> Or else, you will have to describe your problems more carefully.

I have a lot of work to do getting the next release of  3DLDF ready,
especially getting the parser to a point where a release is justified, and
rewriting the manual to account for it.  Unfortunately, it will be awhile
before I can get back to working on the aspects of the program we've been
discussing.

Laurence



reply via email to

[Prev in Thread] Current Thread [Next in Thread]