Wednesday, September 30, 2009

Linear Workflow dedicated website

Master Zap have launched a site on linear workflow There is nothing much on there at the moment but it will surely gets filled with a good amount of great information in the near futur.

I thought it was worth talking about that site, you should check it out regularly...I know I will.

Monday, September 21, 2009

Physical Sun And Sky addon Update

I have updated the Physical Sun and Sky plugin for Softimage. This update fix the bug where if you pick a light source instead of creating a new one the script would crash.

You can grab the version 1.1 here

Thanks to Robert for finding this bug.

Thursday, September 17, 2009

Softimage 2010 demo

The Softimage 2010 version is finally out. You can download the demo on the Autodesk web site.

I was happy to see that it comes with Mental Ray version 3.7.55 ... Maya uses version 3.7.53.
It is nice that both software are finally using the same version. Softimage was always one Mental Ray version behind.

But at first glance there doesn't seem to be a whole lot of 3.7.5 features implemented in Softimage 2010. I will investigate more.  The nicest feature I can think that would be usefull is the map data which can be used to save particle information.  This could prove useful to pass particles system from Maya to Softimage. I will definitely look into that.

Saturday, September 5, 2009

Linear Workflow in Softimage

Softimage have great options to work in a Linear Workflow (LWF), in this post I will explain how to setup Softimage Preferences to work with the Physical Sun and Sky setup

By default Softimage is setup to render in a non-physical way, when using a Physical setup you need to change these option to make sure that all you color swatches and textures are linearized.

Here is the scene setup.
The diffuse value of the green sphere.

The texture connected in the diffuse slot of the sphere to the right.

In the preferences, the Color profile for the texture is set to Linear and the Color Management is not active. Rendering the scene with a gamma of 2.2 in the Photographic Exposure shader give you this.
Everything is washed out!  The typical non linear render. 
Notice how the green of the sphere doesn't match the color swatch of the shader and how the texture is washed out.

We can fix this quite easily.

In the Preferences, in the Rendering section, under the Image tab, set the Color Profile to Automatic.
The automatic Mode will linearize sRGB image and keep high dynamic range image linear. You can also change this in the each image clip.

You will also need to enable the Color Management in the Display section of the Preferences

In the Photographic Exposure shader you will need to set the gamma to 1.0. Since Softimage is now in charge of the gamma, you can remove the gamma from the exposure shader.

Now when you render you will get a a better result in the UI.

You might have noticed that the green color swatch in the shader now match the render result. This is exactly what we want, now the color you set in your swatch match the render... how wonderful!

But if you render the current pass to disk in a 8 bit format, when you look at the renders everything is darker...

This is because Softimage Color Management is only applied in the UI, when you render to disk the gamma is not applied to the output. This is quite useful when doing compositing because you are not dealing with baked-in gamma.  All you need to do is apply a 2.2 gamma at the end to get the proper result.

In a comment of my previous post, Edin pointed out that it is possible to apply the gamma when rendering out to disk. In the pass option, locate the Pass Gamma Correction section and enable the Apply Display Gamma Correction

You end up with this result.

For some reason the gamma not applied to the environment ... this is not a big deal because you will rarely use the physical sky as your background. But it is something to keep in mind when using this pass option.

I hope this little tutorial was helpful. Feel free to point out any errors or omission in this post ... or even suggest alternative methods.

Finally, here are 2 links that you might find useful. They discuss LWF in Softimage and in Vray

Friday, September 4, 2009

Physical Sun and Sky in Softimage

If you have used the Physical Sun and Sky in Maya and Softimage, you may have noticed that in Softimage the setup is halfway done. Only the sky is created, no lens shader is used and the Sun is using a soft light shader instead of the physical sun shader.

If you want to have a setup similar to Maya you have to connect everything manually. I got tired of connecting all the shaders manually so I have modified the Initialize sky shader script to include all those changes.

Once installed (see Softimage Help on how to install addons) you will have a new entry in the Pass > Edit menu : Initialize Physical Sun/Sky Shader
The Initialize window is similar to the default Initialize Sky Shader window. Choose your pass and you sun light then click Apply.
The plugin will create the physical Sky shader in the pass environment stack.
It will also add a photgraphic Exposure shader in the pass lens stack and set the pass lens stack mode to Add After Camera Lens Shaders.
And most importantly it will add a Physical Sun shader in the light shader, replacing the default soft light shader.

Now you have all the proper shaders to create physically accurate renders.
But some of the default values in these shaders are not correct, the plugin will take care of adjusting them correctly.

In the Physical Sun shader you will notice that most properties are controlled by an expression, exactly like in Maya.

You can edit the shadow softness and shadow samples of the Sun in this shader.

Most of the values in this shader need to match the value of the Physical Sky shader exactly. Connecting these values with expression is the easiest way to keep these values linked.

In the Physical Sky shader, the multiplier values is set to 1 instead of 0.1 and the rgb Unit Convertion is set to 0.318

As mentioned in the Sun and Sky Mental Ray documentation:
When setting the rgb Unit Convertion values to 0.318, the final rendered pixels in the image are true photmetric luminance values in candela per square meter.

These true luminance values then fit perfectly as input to the photographic tone mapper.

For the Photographic Exposure shader, the plugin sets the F-Stop Number to 16 and the c/m2 Factor to 1.
Setting the c/m2 Factor to 1 is important to stay in true photographic mode. 
These setting represent the Sunny 16 rule in photography. As discussed in the Physical Exposure Mental Ray documentation.

To adjust the brightness of the image you can simply adjust the Shutter Time and the F-Stop.

Note that the gamma value is set to 2.2. It is possible to work in linear workflow in softimage, but I decided to keep the values to the Mental Ray default.

I will discuss linear workflow using the Physical Sun and Sky in a future post ... so stay tuned.

Finally the plugin sets 2 more things: it enables the Final Gathering and set the Ambiance Color to Black. (Don't forget to set the Final Gathering for the Region Render as the plugin do not set it) 

With this setup you will have the exact same setup as Maya ... If you downloaded the Maya modification script provided in the previous post and you create a physical sun and sky setup using the Photographic exposure.

Here are renders done in Maya 2010 and Softimage 7.5. Both renders are using the default Physical Sun and Sky settings mentioned in this post and mia_materials (architectural shader).

Maya 2010

Softimage 7.5

As you can see the result is similar in both application.

I hope you like this plugin.

Wednesday, September 2, 2009

mia exposure photographic AE template

Maya doesn't ship with an AETemplate for the mia_exposure_photographic so you end up with an Attribute Editor showing raw attribute without any logic.

If you read the Mental Ray documentation on the photographic exposure shader you can see that if the film_iso attribute is set to zero then the shader is in Arbitrary mode, then many attributes are ignored, like the camera_shutter and f_number for example.

I have created this AETemplate to add some logic in the Attribute Editor of the shader. The Template also group attributes logically and hides the more advance attributes.

Download the AETemplate here (View the readme.txt for installation)
EDIT (sept 04, 2009): I have update the script to force the automatic photon energy attributes of the physical sun shader to ON. This is usefull if you want to shoot photons from the physical sun.

It is also sugested in the documentation to set the rgb_unit_convertion value of the physical sun and sky to 0.318 when using the physical tonemapper.

To help you acheive this, you can download a modified render global script created by David Jonhson that will promp you with a choice of tonemapper to use when creating a physical sun/sky setup and set the appropriate rgb_unit_conversion value.

I have created a slightly modified version of David script.
David use a gamma value of 1 in both the simple and physical tonemapper and set the miDefaultFramebuffer at 0.45.
I prefer using a gamma value of 2.2 in both shader and leave the miDefaultFramebuffer value at 1.
This is purely a personal choice. I prefer controling the gamma in the tonemapper to avoid confusion.

My script also uses a promp dialog instead of a small window.
Again this is purely personal. I find this method simpler and more straightforward.

Both method are equaly good in my opinion, you can pick the one you feel more comfortable with.

Monday, August 31, 2009

Maya Ambient Occlusion tips

You may have notice 2 strange attributes in the mib_amb_occlusion texture in Maya Id Inclexcland Id Nonself.

If you look in at the mib_amb_occlusion docs in the mental ray documentations, you can see the description of those attributes.

So with these you can include or exclude objects with a given id... or even force given object to cast AO on other objects but themself... this looks cool! so what appends when you set a value in there? You lose the occlusion or there are no changes right?

That's because these values are mental ray ids and you need to assign a mental ray id to your objects ... but how can I do this do you ask?

You need to add an extra attributes named miLabel to the transform nodes of your objects and set the id in this miLabel attribute.
But I need to add this attribute on all my objects manually you ask again? of course not! Use this script (see the readme file in the zip for installation and usage)

Now you can take advantage of this feature!

In this example I have added the miLabel attribute to all the objects, I have set the miLabel of the ground plane to 1, the cube to 2 and the sphere to 3. All the obejcts are assign to the same constant shader using the mib_amb_occlusion texture as color.
Here are different results when setting each value in the mib_amb_occlusion texture.

Id Inclexcl: 0 Id Nonself: 0
(both feature disabled)

Id Inclexcl: 2 Id Nonself: 0
(include only objects with id 2)

Id Inclexcl: -2 Id Nonself: 0
(Exclude objects with id 2)

Id Inclexcl: 0 Id Nonself: 2
(Objects with id 2 do not cast AO on themself)

Note that the use of the number 2 is arbitrary, I could have used 34 as my id on the cube and use 34 or -34 as a id value in the mib_amb_occlusion shader.

I hope this tips can help you achieve some tricky Ambient Occlusion renders.

I would like to thanks Daniel Kvasznicza for pointing this out to me.

Sunday, August 30, 2009

Hotkey view changes, isolate select and Hidden line shade view

In Maya, I never really liked having to toggle my 3d view to perpspective, front, side and top using the space bar menu or to have to dig into a panel menu to isolate my selection (I hate doing hide unselected... but that's me) ... I prefer using hotkeys for those.

Unfortunatly there is no way to hotkey these without having to create the commands using mel.
Fortunatly creating a new hotkeyable command in Maya is really easy.

Here are a few hotkey commands I like to create for Maya:

Let's create the first hotkey command ... the toggle perspective view command.
First, open the Hotkey Editor.
1. In the Category section to the left, select the User Category.
2. Create a new entry by pressing New in the bottom part of the editor
3. Enter a name for the new command
4. In the command section copy paste this command: switchModelView Perspective;
5. Hit Accept to save the new command.
Now you can assign any hotkey to the command to toggle the current view to a perpspective view!

It should look something like this:

Repeat step 2 to 5 using the following commands for the front, side and top view
switchModelView front;
switchModelView side;
switchModelView top;

I personnaly assign each command to Alt+1, Alt+2, Alt+3 and Alt+4

Now for the Isolate selection hotkey ...
The process is the same a above. Here is the mel script you need to copy in the command section:
string $panel = `getPanel -withFocus`;
int $panelStatus = `modelEditor -q -viewSelected $panel`;
if ( $panelStatus == 0 ) {
enableIsolateSelect $panel 1;
isolateSelect -state 1 $panel;
isoSelectAutoAddNewObjs $panel 1;
} else {
enableIsolateSelect $panel 0;
isolateSelect -state 0 $panel;

I assign this command to the "i" hotkey ... select one or more objects then hit "i" to go to isolate selection mode, press "i" again to get out of isolate selection mode.
Works like a charm and is way faster than doing hide unselected.

Now ... for those of you that worked in Softimage, you are probably missing the hidden line shaded mode.

Lucky you... here is how to do it in Maya:

For this one you will need to create 2 commands, one that will set the view in Hidden Line, one that will put it back to normal Maya shade. And you will need to override the default shade hotkey with the later command.

First, create the hidden line command:
Create a new command like the example above ... enter displayHiddenLine as the name of the command ... in the command section enter this mel script (the tabing might get messy because of the copy/paste, but fear not the command will work) :
string $currentPanel = `getPanel -underPointer`;
if ("" == $currentPanel) {
$currentPanel = `getPanel -withFocus`;
if ("" != $currentPanel) {
string $panelType = `getPanel -typeOf $currentPanel`;
if ($panelType == "modelPanel") {
modelEditor -edit -displayAppearance "smoothShaded" -displayTextures off
-displayLights "none" -wos 1 $currentPanel;
} else if (`isTrue "MayaCreatorExists"` && `scriptedPanel -exists $currentPanel`
&& `scriptedPanel -query -type $currentPanel` == "dynPaintScriptedPanelType") {
dynPaintEditor -edit -displayTextures 0 -displayAppearance "smoothShaded"
-displayLights "default" $gDynPaintEditorName;
} else if ($panelType == "scriptedPanel") {
string $scriptedType = `scriptedPanel -q -type $currentPanel`;
if ($scriptedType == "referenceEditorPanel") {
global string $gReferenceEditorModelEditor;
modelEditor -edit -displayAppearance "smoothShaded" -displayTextures off -displayLights "default" $gReferenceEditorModelEditor;

You will also need to create the new toggle shade command to replace the default one:
Create another new command ... enter displayShadedNew as the name of the command ... in the command section enter this mel script:
string $currentPanel = `getPanel -underPointer`;
if ("" == $currentPanel) {
$currentPanel = `getPanel -withFocus`;
if ("" != $currentPanel) {
string $panelType = `getPanel -typeOf $currentPanel`;
if ($panelType == "modelPanel") {
modelEditor -edit -displayAppearance "smoothShaded" -displayTextures off
-displayLights "default" -wos 0 $currentPanel;
} else if (`isTrue "MayaCreatorExists"` && `scriptedPanel -exists $currentPanel`
&& `scriptedPanel -query -type $currentPanel` == "dynPaintScriptedPanelType") {
dynPaintEditor -edit -displayTextures 0 -displayAppearance "smoothShaded"
-displayLights "default" $gDynPaintEditorName;
} else if ($panelType == "scriptedPanel") {
string $scriptedType = `scriptedPanel -q -type $currentPanel`;
if ($scriptedType == "referenceEditorPanel") {
global string $gReferenceEditorModelEditor;
modelEditor -edit -displayAppearance "smoothShaded" -displayTextures off -displayLights "default" $gReferenceEditorModelEditor;

Now you need to assign the displayShadedNew command to the 5 hotkey so that it override the default Maya hotkey then assign displayHiddenLine to any hotkey ... i personnaly use Shift+5.

I hope that you like these simple tips, they are quite simple but they can surprisingly speed up your work.


mip shaders in Maya 2010

As you might know the mip shaders are not exposed by default in Maya, this is still true in Maya 2010.

I have modified the factory script mentalrayCustomNodeClass.mel to expose all the mip shaders in Maya.

Tuesday, August 25, 2009

Progressive Rendering script Update

I have updated the Progressive Rendering script. You can download the new version on highend3d by following this link:
Here is the link to download the script on the new sit (prev iously

The main change is the render window integration. I have added an icon directly in the render window to enable or disable the Progressive Rendering

You can also display the Options UI by right-clicking the icon

I hope you like this update.

Good progressive renders to you all :)

Thursday, August 20, 2009

Tutorial on mip shader in Softimage

Digital Tutors launched their new online tutorial library. This new learning platform is extremely well done, watching tutorial online beats buying DVD's in my opinion.

You can register for a free trial here

In the free tutorial you can watch 8 videos on using the mental ray production shaders in Softimage. I found these tutorials interesting.

I played with the mip shaders before, but I still learned a few thing in these tutorials.

Mental Ray Progressive Rendering in Maya 2010

Maya 2010 comes pakaged with Mental Ray 3.7.53
This version of Mental Ray have a really cool new feature called the Progressive Rendering.
This feature is not yet implemented in Maya 2010, but fortunatly for us Autodesk designed the string options.

With the string options, you can add any Mental Ray options and set it's value then Maya will pass this information to Mental Ray enabling the Mental ray feature! This is great because Maya users don't have to wait for Autodesk to implement new Mental Ray features.

Of course using the string options are not very user friendly ... that's why I have create this script to add the string options to enable Mental Ray's Progressive Rendering.

You can download the script here.

Install the script an execute it ...
This little window will appear, enable the Progressive Rendering and start a render or an IPR!
Adjust any of the options from this window instead of having to edit string options manually.

The Progressive Rendering works like a charm in IPR, tweak your lights and material faster than before!