POV-Ray : Newsgroups : povray.beta-test : Differences from 3.6 to 3.7 : Re: Differences from 3.6 to 3.7 Server Time
29 Jul 2024 00:28:56 EDT (-0400)
  Re: Differences from 3.6 to 3.7  
From: Chambers
Date: 7 Feb 2006 13:55:02
Message: <43e8ed06$1@news.povray.org>
Thorsten Froehlich wrote:
> The major problem though is that your scene is just to 
> complex to be of much use for saying what could be wrong by just looking 
> at it.
> 
>     Thorsten

OK, here is a much simpler scene which demonstrates a similar speed 
difference between 3.6 and 3.7.  Both again rendered on a P4 2.8 gHz, no 
antialiasing, this time at 512x384.

This scene constructs a number of concentric spheres in the middle of 
the scene, with full transmittence, and varying IOR values.  Surrounding 
the scene is a box with the default checker colors of blue and green. 
Ambient light is set to one, to avoid light computations.

This scene demonstrates the devastating effect that refraction has on 
the speed of 3.7 versus 3.6.  In fact, it seems to be around 8 times 
slower!  I would venture another guess that reflection could have the 
same effect on a scene's rendering speed, but I have not tested for this 
yet.

In the beginning of the scene, I list times for various recursion 
levels.  The first time is for 3.6, the second time for 3.7, and 
following them are a ratio of 3.7 to 3.6.

The actual times aren't important, but the ratio of times.  I fully 
expected multithreading to involve some overhead, making it slightly 
slower on a single-processor machine (w/o hyperthreading), but 8x 
slower?  Something is obviously wrong here.

(I also tested w/ light buffers and vista buffers turned off in 3.6, but 
the effect on the ratio was negligible).

...Chambers

--- Cut here ---

#declare recursion = 5;

// Recursion 1: 1s; 4s; 4x
// Recursion 5: 2s; 15s; 7.5x
// Recursion 10: 4s; 29s; 7.25x
// Recursion 20: 9s; 1m 15s (75s); 8.3x
// Recursion 50: 37s; 5m 9s (309s); 8.35x

global_settings {
	max_trace_level 256
	ambient_light 1.0
}

camera {
	location -z*19
	look_at 0
}

box {
	-20, 20
	pigment {checker}
	finish {ambient 1}
}

#declare sp = sphere {
	0, 8
	texture {
		pigment {color transmit 1}
	}
}

#declare c = 0;
#while (c < recursion)

	object {sp interior{ior (recursion+c+1)/(recursion+c)} scale 
(recursion-c)/(recursion)}

#declare c = c + 1;
#end

--- Cut here ---


Post a reply to this message

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