|
![](/i/fill.gif) |
> Hi all,
>
> I'm writing up my lecture notes for a differential geometry class and attempting
> to render some of the more subtle graphics in PoVRay.
>
> Here are two samples:
>
> http://dl.dropbox.com/u/46424505/poinc_modelh.png
>
> http://dl.dropbox.com/u/46424505/octo.png
>
> The first example illustrates an issue. As you can see in the picture, there is
> a hyperboloid, and I'm attempting to draw some curves on the hyperboloid.
>
> I'm wondering what are some more effective ways to do this. One way to go would
> be to make the curve on the surface just another hyperboloid, but I could crop
> it by some planes to make it a thin-enough strip that it would approximate a
> curve. But ideally I want the curve to have a thickness. In the linked file
> poinc_modelh.png, the curve is a rather explicit parametric surface. But with
> radiosity, it can take my 8-core system 6 days to render an image like the one
> above. I'd like the render-time to be faster, just so tweaking the image
> doesn't take so long. Even with low quality the render time is still fairly slow
> with the parametric surface.
>
> One option would be to make the curve out a sphere-cylinder-sphere chain, with
> several hundred spheres. This is pretty fast, but is there a tidy way to
> automate the generation of that in PoV script? When I was younger I'd just
> write a C++ script to generate the PoV script but I'm hoping there's a tidy way
> to do this in PoVRay itself. Of course, a problem with this is I'd have to
> appropriately crop the spheres if I wanted the effect to be seamless (and the
> curves partially transparent).
>
> Are there any other good options I should be thinking of?
>
>
>
>
The parametric is possibly the slowest primitive. Using precompute with
the larger value possible can make things faster (the max is 20:
precompute 20 x,y,z). Use a max_gradiant as low as possible without
causing holes or steppings. Make the contained_by object as tight as
possible.
You may look at isosurface. They are often faster than parametrics for
the same actual shape. In your case, adding "open" should be preferable
so that the container don't show.
You may also look at the quadric. In "shapes_old.inc" you find some
predefined shapes like paraboloids and hyperboloids.
A sample:
/* y - x^2 + z^2 = 0 */
#declare Hyperboloid =
quadric {<-1, 0, 1>, < 0, 0, 0>, < 0, 1, 0>, 0 }
Alain
Post a reply to this message
|
![](/i/fill.gif) |