POV-Ray : Newsgroups : povray.general : How to speed up rendering of complex CSGs? Server Time
8 Aug 2024 08:14:41 EDT (-0400)
  How to speed up rendering of complex CSGs? (Message 1 to 8 of 8)  
From: Yadgar
Subject: How to speed up rendering of complex CSGs?
Date: 16 Feb 2001 17:33:36
Message: <3A8DAB79.55BC7FD8@ndh.net>
Hi Tracers!

I recently started to build an animation containing several thousand
primitives in eight CSGs (only three levels deep nested), and when I
started rendering, I was somewhat surprised by the slow progress - about

30 minutes for an image of 400 by 300 pixels, on an AMD K6-II running at

380 MHz!

Then, I started to think of methods to speed up the rendering... but
whether I disabled auto-bounding or not, it did not work faster. How can

I speed it up unless I don't use a lower quality level?

Hoping for replies,

see you in Khyberspace!

Yadgar


Post a reply to this message

From: Francois Labreque
Subject: Re: How to speed up rendering of complex CSGs?
Date: 16 Feb 2001 20:30:04
Message: <3A8DD377.C4833F9@videotron.ca>
Yadgar wrote:
> 
> Hi Tracers!
> 
> I recently started to build an animation containing several thousand
> primitives in eight CSGs (only three levels deep nested), and when I
> started rendering, I was somewhat surprised by the slow progress - about
> 
> 30 minutes for an image of 400 by 300 pixels, on an AMD K6-II running at
> 
> 380 MHz!
> 
> Then, I started to think of methods to speed up the rendering... but
> whether I disabled auto-bounding or not, it did not work faster. How can
> 
> I speed it up unless I don't use a lower quality level?

Try to change the hierarchy in which the different parts of the CSG are
put together.  From what I understand of the POV innards, is that
differences and intersections are killers.  For example, creating an
I-beam consisting of the union of three slender boxes should be faster
than if you had the difference of a square box and the two sides.

-- 
Francois Labreque |   //\\    Wear an ASCII ribbon!
    flabreque     |  ||  ||   
        @         |   \\//    Support the campain
   videotron.ca        \\     against HTML e-mail
                      //\\    and news!


Post a reply to this message

From: Dan Johnson
Subject: Re: How to speed up rendering of complex CSGs?
Date: 19 Feb 2001 06:30:21
Message: <3A910552.1A239A41@hotmail.com>
Francois Labreque wrote:

> Yadgar wrote:
> >
> > Hi Tracers!
> >
> > I recently started to build an animation containing several thousand
> > primitives in eight CSGs (only three levels deep nested), and when I
> > started rendering, I was somewhat surprised by the slow progress - about
> >
> > 30 minutes for an image of 400 by 300 pixels, on an AMD K6-II running at
> >
> > 380 MHz!
> >
> > Then, I started to think of methods to speed up the rendering... but
> > whether I disabled auto-bounding or not, it did not work faster. How can
> >
> > I speed it up unless I don't use a lower quality level?
>
> Try to change the hierarchy in which the different parts of the CSG are
> put together.  From what I understand of the POV innards, is that
> differences and intersections are killers.  For example, creating an
> I-beam consisting of the union of three slender boxes should be faster
> than if you had the difference of a square box and the two sides.
>
> --
> Francois Labreque |   //\\    Wear an ASCII ribbon!
>     flabreque     |  ||  ||
>         @         |   \\//    Support the campain
>    videotron.ca        \\     against HTML e-mail
>                       //\\    and news!

I managed to cut 3/4 off the time of some renders by doing manual bounds.
POV-Ray is very bad at autobounding plane intersections.  I discovered this
when I noticed 4 infinite shapes in the messages of a scene that had no
infinite shapes.

--
Dan Johnson

http://www.geocities.com/zapob


Post a reply to this message

From: Francois Labreque
Subject: Re: How to speed up rendering of complex CSGs?
Date: 19 Feb 2001 08:00:09
Message: <3A91181C.FF7E04F@videotron.ca>
Dan Johnson wrote:
> 
> Francois Labreque wrote:
> 
> > Yadgar wrote:
> > >
> > > Hi Tracers!
> > >
> > > I recently started to build an animation containing several thousand
> > > primitives in eight CSGs (only three levels deep nested), and when I
> > > started rendering, I was somewhat surprised by the slow progress - about
> > >
> > > 30 minutes for an image of 400 by 300 pixels, on an AMD K6-II running at
> > >
> > > 380 MHz!
> > >
> > > Then, I started to think of methods to speed up the rendering... but
> > > whether I disabled auto-bounding or not, it did not work faster. How can
> > >
> > > I speed it up unless I don't use a lower quality level?
> >
> > Try to change the hierarchy in which the different parts of the CSG are
> > put together.  From what I understand of the POV innards, is that
> > differences and intersections are killers.  For example, creating an
> > I-beam consisting of the union of three slender boxes should be faster
> > than if you had the difference of a square box and the two sides.
> >
> I managed to cut 3/4 off the time of some renders by doing manual bounds.
> POV-Ray is very bad at autobounding plane intersections.  I discovered this
> when I noticed 4 infinite shapes in the messages of a scene that had no
> infinite shapes.

That was Yagdar's problem actually (He sent me his file, by e-mail).  He
had a "bounded_by" statement that was far too inclusive and caused every
single ray to be tested against his CSG structure.  I removed it and the
renders went from 25 minutes at 160*120 to 41 seconds at 800*600!!!

Unless you know what you are doing, it's sometimes best to let the
computer take care of things.

-- 
Francois Labreque |   //\\    Wear an ASCII ribbon!
    flabreque     |  ||  ||   
        @         |   \\//    Support the campain
   videotron.ca        \\     against HTML e-mail
                      //\\    and news!


Post a reply to this message

From: Warp
Subject: Re: How to speed up rendering of complex CSGs?
Date: 19 Feb 2001 09:38:34
Message: <3a912fea@news.povray.org>
If you are able to model your object with a triangle mesh, the rendering
speed will increase quite considerably.
  Of course this is not easy in every case, but in many cases it's just
a matter of work to create a (smooth) triangle mesh that corresponds to
the object.
  An example: Suppose that your object is a coffee cup made with the difference
of two cylinders and the handle of the cup made with a half-torus. Now you
only have to create a mesh that corresponds to the "hollow" cylinder
representing the body of the cup and another representing the half-torus
representing the handle. Then just put all those triangles into a mesh and
that's it. All this can be done in povray itself (with #while-loops and
some math).

  Just an alternative...

-- 
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

From: GrimDude
Subject: Re: How to speed up rendering of complex CSGs?
Date: 20 Feb 2001 16:29:11
Message: <3a92e1a7@news.povray.org>
The day I figure out that math is a day I am happy! :)

Grim
"Warp" <war### [at] tagpovrayorg> wrote in message
news:3a912fea@news.povray.org...
>   If you are able to model your object with a triangle mesh, the rendering
> speed will increase quite considerably.
>   Of course this is not easy in every case, but in many cases it's just
> a matter of work to create a (smooth) triangle mesh that corresponds to
> the object.
>   An example: Suppose that your object is a coffee cup made with the
difference
> of two cylinders and the handle of the cup made with a half-torus. Now you
> only have to create a mesh that corresponds to the "hollow" cylinder
> representing the body of the cup and another representing the half-torus
> representing the handle. Then just put all those triangles into a mesh and
> that's it. All this can be done in povray itself (with #while-loops and
> some math).
>
>   Just an alternative...
>
> --
> char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
> main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
> c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

From: Warp
Subject: Re: How to speed up rendering of complex CSGs?
Date: 21 Feb 2001 06:47:49
Message: <3a93aae5@news.povray.org>
In povray.general GrimDude <gri### [at] netzerocom> wrote:
: The day I figure out that math is a day I am happy! :)

  Povray is a very good reason to learn math.

-- 
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

From: GrimDude
Subject: Re: How to speed up rendering of complex CSGs?
Date: 21 Feb 2001 10:56:54
Message: <3a93e546@news.povray.org>
Agreed. I know math, but sometimes the eloquent solutions elude me. ;)

Grim
"Warp" <war### [at] tagpovrayorg> wrote in message
news:3a93aae5@news.povray.org...
> In povray.general GrimDude <gri### [at] netzerocom> wrote:
> : The day I figure out that math is a day I am happy! :)
>
>   Povray is a very good reason to learn math.
>
> --
> char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
> main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
> c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

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