Carrara's Use Of The GPU
Steve K
Posts: 3,232
I recall reading somewhere that Carrara uses the graphics card GPU only for previewing in the 3D view, not for rendering. In the just finished Houston 48 Hour Film contest, I used my laptop for some rendering while I did most of the work on my more powerful tower, with a much better video card. The render times on the two were not that much different (both are Core i7), but the laptop was pathetic in the 3D view. Just a small camera angle change would result in a "Creating Scene" (or something) message. So I could set up a scene on the tower and load it on the laptop for render, but avoided any scene changes on the laptop. Am I understanding this correctly?
Comments
HI Steve :)
Carrara uses OpenGL for scene display,. (just like most other applications) Rendering is done using the CPU (if your'e using carrara's own built in render engines).
there's also a "software" option in the Interactive Display Settings,. which may display things faster if you're having problems with Open GL. (maybe faster,. maybe not)
It's not really using the GPU or Video card ram...to hold, display or render,.. just the basic graphics chip OpenGL.
Unless you're using either Luxus, Luxcore,. OctaneRenderer ,. or another third party GPU enabled render engine,.
If you're using a laptop,. those all come with reduced power graphics chips,. (to extend battery life / usage time) although, they should still be more than capable of both displaying and rendering a scene.
Any camera movement would force a visual scene rebuild,. so all the geometry would be updated, (CPU) and redrawn from the new camera angle,..(Graphics card (openGL) ).
rendering is all CPU,. so where both systems have the same CPU and ram,. there should be little difference in render time.
I hope that makes sense :)
Thanks, 3DAge. I'm not using any third party render engines, just Carrara itself. A couple of clarifications:
"It's not really using the GPU or Video card ram...to hold, display or render,.. just the basic graphics chip OpenGL."
Not sure I understand the distinction. I thought OpenGL, GPU and Video RAM were all part of the video card.
Any camera movement would force a visual scene rebuild,. so all the geometry would be updated, (CPU) and redrawn from the new camera angle,..(Graphics card (openGL) )."
OK, so a camera angle change involves CPU *AND* the graphics card. I might try the "software" option in the Interactive Display Settings on my laptop, that's the only really slow part of my work.
It's a tricky distinction,. and one that's changing as the technolgy evolves
Yes,. Technically everything you see is being processed by the graphics card,. so yes, Carrara is using the graphics card to display what you see on screen,. just like any other application.
So, if your graphics card has whatever amount of CUDA cores,. and whatever amount of Video Ram,.. Carrara is using Zero of that,. to display or render your scene.
Carrara isn't capable of using any of that power. All the processing of geometry, surfaces, lighting etc is done by the CPU,. and the results of that calculation are sent to the graphics card,. which then dislpays it on screen.
With a "GPU" enabled render engine,,. all of the models surfaces, materials, lighting etc,. are held in Video Ram, and computed by the Graphics cards GPU.
your computers memory and CPU are almost inactive at that point. ...Unless you're doing something else,..
NOTE: to add to the confusion,. or dilute the distinction. and to allow larger scenes than the on-board Video Ram can store,. GPU renderers can also now use the CPU to lighten the load by holding models or textures in ram,.. the rendering is still done with the GPU but the scene information may be held in part,. in system ram.
hope it helps :)
Thanks again, I'm starting to see the light, although still a little dim (me and the light). As I mentioned before, I'm concluding as the user that I should only use my laptop to render scenes that need no adjustment in the 3D View, i.e. get the scene completely ready on the tower computer with its strong video card for OpenGL previews, then load and render (only) on the laptop. This lets me have the full power of the tower for getting the next scene ready (still thinking in terms of the 48 Hour Film contest). This requires saving the file with "Save All Internally", but I generally do that anyway to avoid problems in the short contest. I have not yet tried the software software display option on the laptop, that may change the plan if it helps a lot.
Well Carrara actually does GPU usage pretty well, even since RayDream days they used OpenGL display lists to render the geometry in Carrara, today Display lists are "faked" by the OpenGL driver but it generates everything it needs in VRAM and it's executed by GPU so even if display lists are stone age tech they are very fast on most modern OpenGL hardware to render static geometry, it's actually one of the fastest way to render geometry even today and Carrara will fall back on rendering from RAM if it runs out of VRAM (it cannot share VRAM/RAM though), where Carara loose is editing geometry as this cannot be done with display lists, I do not remember if it was ever added but Infini-D had some fanzy vertex array code for this that was going to be merged with the RayDram OpenGL code to improve on that (Infini-D+RayDream=Carrara), not sure if it was ever done though.
Carrara have textures, lighting and everything processed by the GPU just like any modern "GPU enabled" application, the difference is that Carrara use a "fixed" pipeline where you cannot modify the shaders and vertex processing much and there is a tiny little loop running on the CPU that calls a few OpenGL functions to execute the display lists to render the scene, but this is actually what happens on any modern OpenGL application also, it will still execute a number of CPU function calls to tell the GPU what VBO's and so on to render so no big difference there either, but it still running on the GPU and apart from the actual editing of mesh objects it's very fast and effecient and if you ever try to run Carrara using software only rendering you will notice that ;)
I don't understand most of that, but I do recall realizing long ago that Carrara's 3D View can play animations very nicely, a big advantage to avoid bad renders. I normally use Gouraud shading and have "Play Every Frame" turned off, so I get real time playback. Much better than, say, VUE, which I also use but is much less friendly for previewing animations.