Material shaders rendering slow with GPU Cycles!

Hello, I seem to be having an issue with the following setup:


When used with a default uv unwrap, on a high detailed polygon plain being used as a snow terrain, it renders very slowly the more zoomed in, and more effects or other mesh objects, and lights and it is even worse. Does anyone know of a similar Material I can use that will simulate snow and shine of the sparkles of the snow, yet not take forever to render both in preview view-port and the final render?

It gets so bad, that in my scene, it can take 1-3 seconds for 1 cycle to render…

I tried using Ambient Occlusion by itself on this, and it did not lag btw.

SnowInTexas_test.blend (688 KB)

Is the attached file what you mean?

I have no problems with that (GTX 560 TI, 2gig and Blender 2.69 RC 1, Linux), rendering fine.

regards,
tencars

First, let me tell you that this node tree is nonsensical. I don’t know what you see on your screen but, on mine, your node tree produces just a dark greyish mess as material. Cycles may allow you to plug things this way but I don’t think it produces anything useful.

The Normal inputs really need some meaningful vector, not a color… which is a kind of vector, but with wrong values. To plug a Normal Map into the Displacement socket is a total waste of computer power. Cycles wastes its time doing calculations for a result which is hard to distinguish from what you would obtain if you simple plugged the noise into the Displacement socket. And don’t get me started on the “RGB to BW” node which I found to be the most abused node in the most useless situations in the Cycles world.

I re-plugged your node tree into something more… sensical. The material doesn’t look like much like snow to me but it’s closer than what I get with your node tree as shown in the snapshot.


As you can see, 2 seconds for a plane and Suzanne, both with a Subsurf at level 2 with Full Global Illumination. Using all the tricks to speed up the render (Static and cached BVH with spatial split) makes no measurable difference with such a simple scene. I guess it must be your landscape which is super heavy… Or else your GPU is an underpowered mobile version of a real one… I don’t know. :wink:

Here is a thread about snow from last year: http://www.blenderartists.org/forum/showthread.php?273948-Snow-material-in-Cycles

With that material, your GPU will have some good reasons to take its time. :wink:

Well I would upload my blend file, but I can’t seem to attach my file, it keeps failing, but the reason I am asking about this, is because render times drop by half when I use it. For instance, it takes 5 seconds for 200 cycles on a blank plane subdivided or not, and then with that material, or similar using glass, or gloss, it drops to 100 cycles per 5 seconds, and gets worse the closer I zoom in. I want to upload my blend file to see if others get the same issues I am getting…

Kaluura, I see it on my end, not sure why you do not. The reason for the normal mapping vector is to control the level of bump mapping, lower number values make it less bumpy, and higher make it more bumpy. I have tested this, and it is helpful for controlling the amount of bump I want. Without it having a direct connection is like telling it not to have any control, unless you know of a better way? For now this is the only way I been doing the normal mapping.

Ok, I took off all the normals and it still is slow rendering cycles.

I can only say the same Kaluura said in his first post.
You can do things differently and use nodes in unexpected ways, might work sometimes.
This is my interpretation of your node tree and small addition to get a bit more variety. If you want glitter i’d suggest dropping some icosphere particles with emission material in places yo want to see it.
Here’s how it looks - hope helps.


Well I feel dumb, I did a test, and found the cave walls in my build for some reason dropped the render speeds badly, I took off all materials and shaders, and the render times was still slow… for some reason the way the model was positioned and size, scale and such was at a way that it lagged and rendered very slowly. For some reason the render is slower with enclosed meshes, I am not sure why this is. I removed it for now to test other things, and see if I can replace the cave and not run into this issue again.

acesnownice4lagtest269small.blend (1.81 MB)
Here is the blend file compressed, see if you have the same problems with rendering in camera view or zoomed up close to the LAMP… Notice the rendering is slow? Why is this? Is it the model, the materials, or shaders, or what? I even removed textures, sky textures, and a few larger meshes that I thought might be the problem.

btw thanks eppo, I tried your setup, but even it is making the render lag more as you can see in this blend file.

Hi TGA,

of course material settings etc have an influence, but in your case I would first change your render- and renderlayersettings.
I did a render of your scene:4min 21 sec (200 Samples to speed up testing and keeping it there)
then a second one (I just turned of the AO Pass): 3min 18sec. (same result!)
Check if setting diffuse/glossy/Transmission Bounces to reasonable numbers (more like 4/2/8) still look as good to you and compare the times.
that rendering would take 3min and 03seconds in this lineup (almost no difference to 128/128/128 in your scene).
AO in transparent objects takes some time…
Also the direct/indirect/color passes do take some rendertime, so if you do not use them in compositing later on, you can turn them off.

best regards,
tencars

And one more thing:

don’t get fooled by the integrator settings names “Full global Illumination”… does not mean only that looks good.
Always start with the “direct light” setting and see what you have to adjust in order to get reasonable and realistic results. Also your clamp factor of 1.0 prevents the possibility of fireflies, but also the fidelity of your lighting of your scene. (If you have to use it try 4 or 8.0 and see the results). I also almost get away with 400 to 800 Samples in my scenes, (of course there a many factors to achieve that).

just some thoughts and experiences, cheers and good luck,

tencars

Ok, tencars, I did what you said, and the render took 2 mins 32 seconds, but it did not improve preview rendering, and it is not the original blend file which I would need to tweak too… thanks for the tip, now I know not to have everything checked in the render layers.

For the preview render it coud help a lot if you use the “Border” feature and by that make the rendered Tile at once as small as possible.

rgards,
tencars

what you talking about full global illumination??? where is this at?

Border? I am talking about the preview as in, moving the camera around… it renders 1 cycle per second when I zoom in really close to the LAMP. Closer than the Cam does.

Ok, I rendered the original, and tried those settings as suggested, before I removed stuff and it rendered the 720P with 200 Cycles in 3 minutes and 48 seconds! :smiley: Which is awesome, because before it was rendering at 55 minutes and 55 seconds! This means I can render the video I wanted to render. However, I am wondering how I can get glow, shine, and light ray effects in the render passes? I know how I can get the light rays, but I do not want to do it frame by frame…


When rendering, the rendertiles optimize tho job for the GPU. When Previewing, us have a much bigger area for the GPU to render at the same time. Using “Border”, see the check-mark to the right in the dimensions section cut down the area for the gpu and your preview goes a lot faster.
(http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Output)
This works in preview mode too!

About the “global illumination” setting: it is an Integrator Preset under the Light Paths Section…Not important…
(that would bring your Bounce Values of diffuse, glossy, and transmission to 128… just reread my former Post…)

regards,
tencars

Please excuse this bad English:

it should say:

“Using “Border”, see the check-mark to the right in the dimensions section, cuts down the area for the gpu so that your preview goes a lot faster.”

Thanks for clarifying that, I thought it made a border around the whole movie, or picture when rendered… Well since the rendering is faster I am making a video now of my project, before I was worried that I would have to render each frame for nearly an hour at a time. But, now that I can render faster, it is no problem now. However, the border and crop thing is great, but I like to see my work on the fly all around, is there any tips or tricks to improve performance besides cropping and using border, or a good way to use materials without lag? I love being able to see the whole scene render live while I edit, that is the whole reason I got into Cycles in the first place, was the fact that I can view my work while editing, and see it before it is rendered. What I mean by the whole scene, is what ever window I am using, rather its a small or big window slides. I find this convenient, and the fact that it looks better in my opinion than internal render which I have to wait to render reflections and lighting effects.

Just to add - each face in the scene gets calculated and that takes time, seen or not by camera.
You can model all that spending much less faces.

Further you move camera less detail is seen so after a certain distance consider changing to yet more simplified geometries.