Speeding up raytracing?


That render takes upwords of around 45 minutes to render, the raydepth is set to 1, most everything as you can see is raytraced (smaller chrome items are faked using a texture that is mapped using “refl”). No lights are ray lights, only shadow buff lights. There’s quite a few lights in the scene (20+), but that shouldn’t slow it down that much.

It’s a little annoying now that I’m perfecting the lighting. :x

My experience is that Raytracing + OSA slows the thing down considerable.
So, test renders without OSA could help.

I’ll try that :smiley:

also, use as few polygons as possible

raytracing gets slower faster (yes, it makes sense) when you add more faces

I’ve also noticed some strange performance dependencies with the raytracer. I haven’t been able to nail them down, but if I’m using the ray tracer and it isn’t rendering as fast as I’d like, I start checking materials for settings. Last time I did this I was able to make a minute so of rendering happen in 15 to 20 secs. This was for some test animations.

The stuff I normally play with is bump mapping, mip mapping and the shadow stuff (TrShadows). There are some circumstances, like having TrShadows on on a surface that never gets alpha mapped shadows hitting hit, that sometimes seem to kill performance. Other times bump mapping that was fine in one scene and rendered quickly, will have a significant impact on performance in another scene. In most of these cases, the bump mapping won’t be visible, so I can turn it off and not notice its gone.

I believe I also came to the conclusion that procedural textures, especially some of them, musgrave maybe, were bad to use with the ray tracer. I haven’t looked at the code, but it seemed when I replaced some of the procedural textures I was using with images or different procedural textures, that noticeably sped up the rendering. It might be that the ray tracer asks for the results of the texture more times per pixel than non-raytraced rendering.

Turn most of your stuff off and try to get blender to render the scene quickly, then turn stuff on and see how much difference it makes to the render. You can identify what’s burning up the most time and maybe its not worth having in the image.

Raytracing is great but has always been a perfomance hog.

I’ve not taken a look a this part of the code yet, but from the Ton announce, I’ve seen that primary intersection is still given to scanline and only secondary rays are ray-traced, ant that all is octree-based.

That means that it should be better to have a collection of small objects than a big one.

Besides, if you have 20+ lamps in the scene, a ray should be fired to each from every pixel where the texture has reflexion with fresnel or specular. That can slow down quite a bit the render. Turning off reflexion when seting up the light should help.