No shadow cast onto toon surface

Article needs peer review

Symptom

There is no shadow where you expect to see one cast onto a Toon shaded object.

You have a shadow-casting light in your scene, a shadow-casting object and an object which you believe should render with a shadow cast onto it. If the shadow receiving object has a phong shader on it, the shadow is rendered. However no shadow appears on the shadow receiving object if that surface is given a Toon material.



Cause

This used to work in XSI 3.5, but the reason that the shadow was visible was an irregularity in the Toon shader.
This has been corrected in XSI 4.x and the shadow will no longer appear on the toon surface.
This new behavior fixes other problems which were identified with the Toon material.

It is possible to revert to the original behavior by adding an environment variable to the XSI environment (see below)



Solution

To revert to the original behavior for shadows on the Toon material you need to set a special environment variable to switch the shader to use the old calculations. Follow these instructions to set the environment variable:
</P>




Exit XSI


For a Windows installation:

<P>

Open the Softimage UserTools panel and open the setenv.bat [Environment Script] for editing. Add the following environment variable at the bottom of the file:

set XSI_LEGACY_USEBUGGYUMBRABEHAVIOR=1


For a Linux installation:

Open the Softimage XSI UserTools panel and open the .xsi_4.2 [Environment Script] file for editing. Add the following environment variable at the bottom of the file:

setenv XSI_LEGACY_USEBUGGYUMBRABEHAVIOR 1


Restart XSI

</P>



The shadow should now appear on the shadow receiving object.


If you still do not see the shadow, check the following information for possible reasons:

<P>

Within the Toon shader settings, ensure that the Ambience is enabled. If the shadow area is outside the main illumination region, you may also need to activate Shadows Only so that the shadow-casting light reaches beyond the main illumination region.

The shadow will only appear when no light is illuminating the shadow area of the Toon shaded surface.
The shadow-casting light must have its umbra intensity set to 0. If the umbra intensity is set higher than 0 then some light will be allowed through the shadow-casting object and therefore the shadow will not appear.

If you have multiple lights in your scene you will not see the shadow if any other light is illuminating the shadow area. If the other lights are not shadow-casting, that means that the light is not blocked by solid objects, and this may result in the shadow receiving surface being illuminated and the shadow will not be rendered. The default scene light is not set up as a shadow casting light - this is a hidden light which can be found in every new scene. This light would normally prevent the shadow from rendering and may need to be deleted or edited.



References For further assistance, please contact <A href="mailto:support@softimage.com">support@softimage.com</A>

Applies To: XSI 4.0,XSI 4.2 on NT,Win2K,Linux

Posted: 3/2/2005


This page was last modified 09:56, 22 Nov 2005.
This page has been accessed 96942 times.