POV-Ray : Newsgroups : povray.beta-test : Povray 3.7 RC7, something strange with parametric surfaces? : Re: Povray 3.7 RC7, something strange with parametric surfaces? Server Time
26 Apr 2024 04:28:54 EDT (-0400)
  Re: Povray 3.7 RC7, something strange with parametric surfaces?  
From: Le Forgeron
Date: 27 Feb 2013 18:33:11
Message: <512e97b7$1@news.povray.org>
Le 27/02/2013 20:05, Ryan Budney nous fit lire :
> Greetings,
> 
> I'm a long-time PoVRay user and I'm encountering a problem with PovRay 3.7 RC7,
> when it comes to parametric surfaces.
> 
> I have a small scene that renders fine when the surface is *not* in it, but with
> the surface, the scene renders to 99% complete (rather quickly, using 8 cores),
> but then it just sits there, with only 1 core running (via system monitor) at
> 100%.    It almost appears as if PovRay is failing to collect a "rogue thread"
> but I can't really tell what's happening.   The scene is very small so I've
> copied it below.
> 

Thanks.
in 3.7, image is rendered in small square chunk. What you see is the
last chunk being very long (very very .... very ... very long) to trace.

> Are there any known issues with parametric surfaces and the PovRay beta?  I've
> seen a post concerning textures but my surface is not textured -- it's just
> partially transparent.
> 
> Thanks for any information.  The scene is copied below.
> 

> #declare C1 = function(r,A,l) { 1.0 - (r*sin(A)/sqrt(sinh(l)*sinh(l) +
> cosh(l)*cosh(l))) }

You could speed up a bit by replacing sinh^2(l)+cosh^2(l) with cosh(2l)

(+Q3 went from 28 seconds to 22 seconds with that change)
----------------------------------------------------------------------------
Ray->Shape Intersection          Tests       Succeeded  Percentage
----------------------------------------------------------------------------
Parametric                      119326             477      0.40
Parametric Bound                119326          119326    100.00

Function VM calls:        100309541



  Trace Time:       0 hours  0 minutes 22 seconds (22.167 seconds)

  Trace Time:       0 hours  0 minutes 28 seconds (28.655 seconds)


>      clipped_by { plane { <0,0,-1>, -2 } }
>      clipped_by { plane { <0,0,1>, 2.14 } }

Double clipped_by ? not sure it does what you expect
Use a single box instead. (but does it only appear at all ? as the
quadric is a duplicate of the previous one, clipped by a sphere)

The parametric can enjoy being clipped_by  sphere { <0,0,1>, 0.4 } }
Parametric                        8776             477      5.44
Parametric Bound                  9500            8776     92.38





You are also using radiosity with a parametric surface and a large area
light (16 x 16!). That's slow. (something like 256 slower)

Last: simplify your formula, C2(r,A)*sin(T) when T=0 is a waste of time
for Tx.
Same for Ty, the sinh(l)*sin(T)*C1(r,A,l) is also 0.
Just dropping these 2 zero rendered in 15 seconds at +Q3. (instead of 22)
And if you comment the cos(T) in Tx & Ty (because cos(0)=1), it drops to
12 seconds (with +Q3).

+Q4 push me at 51 seconds, and going +Q5 is far too long for something
that look like a small sphere at the bottom of the parabola.


Post a reply to this message

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