Hi again, /* While typing this message, I got the one from Jeremy Booth, who seems to suggest a similar approach. Thanks Jeremy. Can you also help me with the additional questions (latter part of posting)? */
Even though the below suggestions would seem to denote a possible solution, I'm afraid they don't. You see in fact it has nothing to do with the size of things. What is important is the _ratio_ between far and near. It's really a hardware thing: When the virtices have been streamed to the hardware, it uses a so-called Z-buffer to hold the distances from each *as an integer* - and this is the real problem. Depending on the size of this buffer the variation between distances is limited. Sun recommends a ratio no larger than 3000 - but then again, it's hardware dependent. Distances are scaled to fit into this buffer. On my hardware I can use a ratio up to about 10M:1 which seem to imply a 24 bit Z-buffer - 0.00001LY becomes (int)1 and 100LY becomes 2^24=(int)16777216. If I were to scale everything from light years to meters would really make no difference since 100LY/1LY=100m/1m. One way of circumvent this, that I can identify, would be to render several views with different clipping regions to the same canvas. Using a minimum ratio of 10000: Far objects would be clipped from 100LY to 0.1LY Intermediate objects would be clipped from 0.1 to 946 million kilometers. Near objects would be clipped from 946 Gm to 946 Mm. ...or something like that... * Would that be possible and how could one do it? * Obviously the different renderings would have to applied in a certain order. Can that be controlled? * When every view is rendered except for the first, it would have to be applied to the previous image with the background colour (black) as transparent. Could one use an offline canvas for this? * Is Java3D smart enough to recognise that each view has the same transform and only the clipping changes and avoid a 1:N increase in rendering time (N being number of layers or clipping regions used). * By Jeremy's suggestion I could delay rendering of distant objects and use the previous rendering as a background, but to do that I would have to somehow project the whole world (the infinity sphere) onto something that could be used as a background. Is that really possible and how? Regards /Jørn From: Joachim Bratteli <[EMAIL PROTECTED]> Hva med å skalere modellen ned slik at den passer innenfor back clipping-plane? 1 enhet behøver jo ikke alltiv være lik 1 meter. From: Michael Pfeiffer <[EMAIL PROTECTED]> Thesolution for your problem is simple: scale the complete scene. E.g. you could use mm instead of km. You can't see any difference in the scene if you do that. =========================================================================== 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".