Saturday, July 12, 2008

MOSAIC feature ramblings - part 5

Part 5 - The Project Setup tab and render passes:

The "Project Setup" tab presents a series of controls for setting aspects of the current project. The term "project" is unique to MOSAIC since Blender has no project settings or internal datablocks (the lowest structures in Blender are scenes).

Since scenes are render passes to MOSAIC a project tab is necessary to have a global place for scenes to be managed as passes. This is also a convenient place to put settings global to all exported RIBs.

Before I begin outlining the controls for this tab I need to talk a little about render passes and RIBsets.

Render Passes:
We've learned from earlier posts that render passes are Blender scenes to MOSAIC. We've also hinted that these scenes can be managed by MOSAIC, so let's expound on that.

There are essentially 3 types of render passes to MOSAIC:

  • Generated map autopasses recognized by their names and extensions.

  • Generated user autopasses recognized by their extensions.

  • Manually linked scenes as passes (no special naming).

Generated map passes are automatically made by MOSAIC and are for things like shadow maps, occlusion maps, etc. They are created and edited by various controls in MOSAIC's interface and are named using the name of the object they are made for with an added special extension. So for example if you use the "Enable Shadow Mapping" dialog in the "Lights Setup" tab for a lamp called "mylamp", MOSAIC would generate a scene called "" and add its entry to the render pass list.

MOSAIC recognizes five scene extensions for map autopasses:

  • ".sm" - shadow map scene

  • ".cm" - caustic map scene

  • ".om" - occlusion map scene

  • ".em" - environment map scene

  • ".wm" - world environment map scene

Generated user autopasses are created by a tool in the "MOSAIC Utilities" tab and allow the user to create a pass that's maintained by MOSAIC, but can be crafted for custom use (such as building an occlusion cache pass, etc). These passes are identified by MOSAIC because they have the ".ap" extension.

Manual passes are nothing but normal scenes linked to the render pass list and contain no filtering or automation. They are very flexible because MOSAIC does not mess with them (so anything is possible), but do not always update properly when the beauty scene is updated (such as adding objects to the beauty scene).

I've mentioned several times that autopasses are "maintained" by MOSAIC. By "maintained" I mean that the contents of these scenes are automatically updated according to filter settings before they are exported. This "filter" concept is the corner stone of autopasses. How this works is every scene can have a series of settings applied to them that tell MOSAIC how to filter the scene, these filters contain things like which scene this pass is to be updated from, which object will be the active camera, only link objects in certain groups, block all lights, block all objects, use a particular RIBset, etc. Before MOSAIC exports a scene it will look to see if it's an autopass (by its extension) and if so then filter its contents according to its filter settings before it's exported (unless you disable the "Export Render Passes" toggle in the actions tab). Both map and user autopasses use the same filter mechanism but map autopasses have several filter settings automatically filled in.

Even though this all sounds very complicated in practice all you really need to do for most projects is hit the button for the type of map you want (depending on where you are in MOSAIC) and it'll all be done for you ;)

RIBsets are a simple mechanism to have multiple "sets" of RenderMan settings per MOSAIC tab (ergo "RIB" "set"). Scene, Camera, Geometry, Light, and Material tabs can all use RIBsets. RIBset controls are located at the top of each tab and have buttons for creating, deleting and selecting RIBsets. Any changes to any controls in the tab are applied to the current RIBset, all controls are updated by the selection of other RIBsets. All RIBsets have a "DEFAULT" selection that cannot be deleted, if a default RIBset is deleted all controls in it are reset to their default states. RIBsets have several purposes:

  • To allow the user to have multiple setups (such as multiple shader selections on one Blender material).

  • To allow multiple scenes with shared objects to use different settings (such as having shadow map passes with no surface shaders on shared materials).

  • To have potentially hundreds of settings in a single scene.


The last point is very important for occlusion mapping. Occlusion mapping involves having hundreds of spot lights in a hemisphere pointed at the center of the scene, each spot light needs to have its own render pass. Since we don't want hundreds of render passes entries we need a better way to do this. The best way to handle the setup for that many coordinated lights is by parenting a mesh to a light and using Blender's "DupliVert" feature thereby creating a light at every vertex of the mesh.

MOSAIC has a feature so that if a light is made an active camera and if that light is part of a dupli system then you can set the "Dupli Index" number in the "Scene Setup" tab to set which dupli light perspective to use for the camera. By itself this isn't very helpful but combined with RIBsets you can create hundreds of RIBsets for the "Scene Setup" tab for every index into the dupli system. Next if you set the render pass to use "RIBSETPASSES" then MOSAIC will export every RIBset (except DEFAULT) in the scene as a separate pass. Using this mechanism it's possible to create hundreds of passes in a single compact scene with just one render pass entry.

Again even though this sounds complicated all you have to do in reality is click "Enable Occlusion Mapping" in the "Scene Setup" tab and MOSAIC will build all of this for you ;)

Now let's outline the controls in this tab.

Project Folder:
This is the name of the folder to export the project into (this folder if created in the "Export Directory" set in "MOSAIC Settings"). Remember to change this for each project if you want multiple projects running (such as rendering one while you edit another).

Search Paths:
All options in this category allow you to control which paths are used in the RIBs, see your renderer's documentation for a more detailed description of searchpaths.

Note : If you blank a path it will reset to its default, if you type in "NONE" then it will not be exported.

Texture Export Options:
This utility allows you to set how a each texture is handled by MOSAIC. Their options are:

  • Completely ignore - Do not export or optimize this texture.

  • Export only - Simply export this texture, but do not optimize it.

  • Export and Optimize - Both export and optimize it for the renderer.

  • Export into Environment Map - Export map but optimize it as a lat/long env map.

Create Render Pass:
This button will generate a blank render pass. This control and everything below it are were render passes are managed in MOSAIC. When a render pass is added you will get a row of controls for managing that pass. Passes are exported and rendered from top down with the beauty pass normally being the last in the list. Render passes can be added manually or automatically created and ordered by autopass utilities throughout MOSAIC. When passes are automatically created they are stacked in this order:

  • occlusion map passes

  • shadow map passes

  • caustic map passes

  • environment map passes

  • world map passes

  • user autopasses

  • beauty passes

They are stacked in this order so that shadows are calculated before environments which are before final passes. Also note that MOSAIC can support multiple beauty passes. When a pass is created you will see a row of these controls for each pass:

  • "Use" - This lets you enable or disable the export of this pass.

  • "Select Scene" - This lets you select which Blender scene is used for this pass.

  • "Select RIBset" - This lets you select which RIBset to set for this scene for export. Use this to select a custom created scene setups or use RIBSETPASSESS to render every RIBset in scene as a separate pass (DEFAULT RIBset is ignored).

  • "Sta" - Set this to the starting animation frame for this pass (if 0 then uses scenes "Sta" control in Blender).

  • "End" - Set this to the ending animation frame for this pass (if 0 then uses scenes "End" control in Blender).

  • "Up/Dn" - Move this pass up or down the pass list to change its export and render order.

  • "Del" - Delete this pass entry (does not delete the scene however).

That's it for the project tab, next blog will be focused on the "Scene Setup" tab and will probably be broken into two blog posts (since it's such a large topic).

Thanks for reading, WHiTeRaBBiT

1 comment:

  1. mosaic_lover14/7/08 00:09

    keep writing and progressing