Friday, August 10, 2012

Blender Viewport Optimization

Hi, all!

Just wanted to share another neat trick to make your 3D Viewport more responsive.  Most useful when you're designing interactive assets and environments (games, walkthroughs, etc.).

Often (if using a not-so-high-end machine), during texturing, modeling, or other tasks involving realtime view of textures and shaders via the GLSL shading option on medium to large scenes, we experience a slow response of our 3D viewport which is just natural, especially given we have limited resources and graphical computing power.  This is often a cumbersome situation to get into, where we have to wait a couple of seconds which could even get to a few couple of minutes; we don't usually want that, especially on a tight deadline; we want something quick and responsive.  Even more so, this is annoying if we are working with only a single asset and had the surrounding objects linked in, just for reference purposes and other tasks like Ambient Occlusion baking, texture matching and alignment, etc.

Do a quick test by linking in grouped assets from a scene.  In the example below I will be loading in interior walls, floor, ceiling, door, door frames, etc. which are grouped accordingly in the source file.

Here are the steps I did (click images to enlarge):
  1. Link the group to the asset file you want that group to be in.  In the screenshot below, I loaded my sauna bench asset file and linked in the group 'one_floor' from my one floor house set which contains linked assets from different files as well.

  2. Now if we wish to enter GLSL shading in Textured View, we could simply press ALT Z in the 3D Viewport or click the 'Texture' button under the 'Viewport Shading' menu.  Aaaaaaaaand we have to wait until everything is loaded into memory, depending on your system, this can take awhile.

  3. But we don't want to experience the event in #2, we want something quicker.  Before proceeding to Textured viewport, select the linked group/object and under the 'Properties Editor', proceed to 'Object' context, then go to 'Display' panel, then finally, under 'Type:', choose 'Wire'.

Voila! Not only is your viewport more responsive, you also reduce the load that is carried by your machine, plus you can actively focus on the asset you are working on, while using the linked group's geometry as basis for your texture baking.

I hope this helps somehow.  :)



Pietro Grandi said...

Thank you guy, that's something I've been looking for months!

Pietro Grandi said...

Thank you guy! I've been looking for this feature for months :D

Spirou4D said...

Yes your tip is very usable!
Great Thanks for your generosity :)