Join Todd Kopriva for an in-depth discussion in this video GPU: OpenGL, part of Optimizing Performance with After Effects and Premiere Pro.
- View Offline
Aftereffects and Premiere Pro both use OpenGL on the GPU to accelerate some things. Premiere Pro only uses OpenGL for a few things, such as accelerating the drawing of some items to the screen. After Effects, however, can use OpenGL considerably more extensively. Let's look at the details. Similar to the way in which Premiere Pro can use CUDA to accelerate the rendering of some items. After Effects can use a separate render, the OpenGL render to accelerate the rendering of some items. As we'll see the OpenGL render is useful for speeding somethings up for previews, but in general should not be used for final output, and in fact should not always be trusted for previews. Let's look at where we can set the use of the OpenGL render. The bottom of the composition panel, we have fast previews, if we hold this button we can see that we have several different preview options, including wireframe, adaptive resolution, OpenGL interactive, and OpenGL always on. Let's put OpenGL always on.
Notice as I did that, these Noise layers that I have in the corners change in appearance. I'll change that Preference again, and watch the noise layers, especially the one on the upper left where the change is especially easy to see. I'll go back to off, and then back to OpenGL always on. And I'm sure that you saw the difference in the noise layers, see? In the upper left of the Composition Viewer, OpenGL. This tells us, for any view in a composition panel, whether the OpenGL render is being used or not. Because the OpenGL render doesn't have perfect fidelity with the CPU renderer, you'll probably not want to use it always on.
I tend to use it in OpenGL interactive mode. Notice the noise layer went back to looking the way that it normally looks when it's rendered on the CPU. That's because with OpenGL Interactive, if I don't have the mouse button down. So I'm not interacting with any of my layers or their properties the, CPU renderers used. The CPU renderer being the high quality renderer that you should use for your final output. That means, that my previews are going to match my output. But when I'm doing something like dragging a layer, as I'm doing now, you can see as I OpenGL renderer is being used, but when I let go of the layer, the CPU renderer is used again.
This makes interacting with elements in a scene, especially elements in a complex scene, or a 3D scene, much snappier, much easier. And when all you're doing is placing layers, you don't really care about the exact appearance of each of them. So the fact that the OpenGL renderer is a low-fidelity preview renderer, doesn't really matter. Let's see where else we can set OpenGL preferences. Its got a fast previews again and to note that fast preview preferences is the last entry in this menu. This is the same thing as going directly to the preferences dialog box through Edit Preferences and Choosing Previews.
This is just a faster way to getting there. You can choose whether to disable or enable OpenGL, with the enable OpenGL check box, if you have OpenGL enabled overall you can choose exactly how to have it enabled. For example, you can choose whether to use adaptive resolution together with OpenGL meaning that when the OpenGL render is used it also has the ability to use lower resolution as necessary to keep things real time. I will leave that checked since I only use OpenGL Interactive, I don't really mind if the OpenGL preview is a little bit lower resolution also. And also accelerate effects using OpenGL when possible, this means that the effects can be accelerated with OpenGL are not all effects can be accelerated with OpenGL.
And then, finally, OpenGL Info. This tells some details about my card telling me which features of OpenGL are supported, or rather, which features within After Effects are supported based on my OpenGL features and also, a texture memory setting. The default for this is 256 megabytes, that's very low. So, I recommend that you set this to 80% or so of the video RAM on your card. Since, I have 1 gigabyte of video RAM on my card, I can put this as high as 800 megabytes.
The higher this value, the more memory OpenGL will have to work with, and the better it can perform. So again, in general, I leave OpenGL enabled for previews, and then just leave it to OpenGL interactive. You can also use the OpenGL renderer for final renders, for final export. Let's add out composition to the rendered queue to see this. Go to the Render settings, we can see here use OpenGL renderer. I would recommend not using this except for quick, rough preview renders.
Let's cancel out of this, and that's OpenGL with an After Effects. In general, it's very useful for a preview renderer, but not very useful for a final output renderer. There are also some ways that After Effects uses OpenGL under the hood that I haven't touched on. For example, there are some effects that are accelerated on the GPU, such as the cartoon effect, and bilateral blur, and turbulent noise. These can all be accelerated regardless of what settings you set for using the OpenGL renderer. The technology that underlies these three effects, is the same technology that underlies pixel bender effects.
Pixel Bender is a very new effect creation language that's used by After Effects, Flash, and Photoshop. And there are a few other ways that OpenGL is used, let's go to Edit Preferences to see some of them, under display. Hardware accelerate composition layer and footage panels also uses OpenGL. One thing to keep in mind, I thinking about OpenGL and after effects. All of these features that I've shown really aren't crucial to using After Effects and all of them are made possible by even a middle of the road stock graphics card. So, when you're making buying decisions regarding graphics cards and After Effects you don't need to get a top of the line graphics card for After Effects. This is unlike the consideration for Premiere Pro where the CUDA acceleration features really make everything go much faster within Premiere Pro. So, if your buying for both Premiere Pro and After Effects make your graphics card buying decision based on Premiere Pro and whatever you get will be fine for After Effects.
- Planning your work, updating, and auto-saving
- Learning and customizing keyboard shortcuts
- Optimizing hard disks and CPUs
- GPU: CUDA and OpenGL
- Using "Render Multiple Frames Simultaneously" multiprocessing
- Pre-rendering and proxies in After Effects
- Lowering resolution for previews