POV-Ray : Newsgroups : povray.general : POV-How-To : Re: POV-How-To Server Time
10 Aug 2024 11:18:07 EDT (-0400)
  Re: POV-How-To  
From: John VanSickle
Date: 4 Jan 2000 13:02:03
Message: <3872356A.50151468@erols.com>
Robert J Becraft wrote:
> 
> Now that all the IRTC submissions are in, I can reveal my technique
> for getting millions of POV primatives into a render without excessive
> amounts of memory to parse and render the image.  I was so excited
> with the technique and results that I built a web-site to describe it.

These are good techniques, but I have a minor nit to pick.  What you're
really doing is putting the *appearance* of millions of primitives
into the scene, by painting an image map onto a polygon, and placing it
appropriately.  More precisely, you're making one primitive do the
work of hundreds, and are arranging things so that the qualitative
difference is not easily perceptible.

I did a similar thing in three of my IRTC animations.  I modeled an
orchard of petrified trees, using a single mesh of smoothed triangles.
They are fully three-dimensional (which is needful for an animation).
There are three different ones, and they are rotated and scaled to
disguise their similarity.  The vertex data is only stored for the
first copy of each of the three trees; the other instances only have
texturing and transformation data attached to them.  I didn't put leaves
on them (they were petrified), but that would not have caused memory
use to rise all that much.

I also did the same thing for the Ant people a couple rounds back;
after modeling each part of the bug with bicubic patches, I converted
them to meshes (using a macro), and then simply copied the parts over,
texturing them differently from one creature to the next; using
bicubic patches for every part of each bug would have consumed
4.5 megs of memory for each bug.  Using meshes required about 3.5
megs for the first bug (since pieces on the left and right sides of the
bugs are mirror images of each other, they could be re-used within
each bug), and about 50K for each bug after that.

The tractor tread pieces on Rusty were first a CSG union of six boxes,
nine cylinders, and four spheres, for nineteen objects altogether.
There are 56 of these pieces in Rusty, and these 1064 objects were
taking up memory on my 16 Meg 486 system; I converted the same union to
a mesh of smoothed triangles, and got a vast savings in memory.

The memory savings available when making copies of meshes is one of the
chief advantages of using them.  I don't have a mesh editor, so the
meshes had to be generated through scene code, but the nature of the
objects to be modeled made this fairly simple.

Regards,
John


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.