Softimage Forum (Read Only)
Welcome to Autodesk’s Softimage Forums. Share your knowledge, ask questions, and explore popular Softimage topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Wrong parameters access

3 REPLIES 3
Reply
Message 1 of 4
Anonymous
396 Views, 3 Replies

Wrong parameters access

Any idea why the parameters are not getting the correct values from the code?
In the following script, I am setting the dark color parameters to 0.5 and the bright to 0.1. For some reason it is always setting the last values (in this case 0.1) for both bright and dark.


o_obj = CreatePrim("Cube", "MeshSurface", null, null);
o_mat = o_obj.AddMaterial("$XSI_DSPRESETS\\Shaders\\Material\\XSIAmbientOcclusion.Preset", false, "ao_bake");

o_mat.Shaders(0).Parameters("dark").red.value = 0.5;
o_mat.Shaders(0).Parameters("dark").green.value = 0.5;
o_mat.Shaders(0).Parameters("dark").blue.value = 0.5;

o_mat.Shaders(0).Parameters("bright").red.value = 0.1;
o_mat.Shaders(0).Parameters("bright").green.value = 0.1;
o_mat.Shaders(0).Parameters("bright").blue.value = 0.1;

LogMessage(o_mat.Shaders(0).Parameters("dark"));
LogMessage(o_mat.Shaders(0).Parameters("dark").red.value);
LogMessage(o_mat.Shaders(0).Parameters("dark").green.value);
LogMessage(o_mat.Shaders(0).Parameters("dark").blue.value);
LogMessage(o_mat.Shaders(0).Parameters("bright"));
LogMessage(o_mat.Shaders(0).Parameters("bright").red.value);
LogMessage(o_mat.Shaders(0).Parameters("bright").green.value);
LogMessage(o_mat.Shaders(0).Parameters("bright").blue.value);


Logging the values, I am getting:

// INFO : cube.ao_bake1.XSIAmbientOcclusion.dark
// INFO : 0.100000001490116
// INFO : 0.100000001490116
// INFO : 0.100000001490116
// INFO : 0.75
// INFO : cube.ao_bake1.XSIAmbientOcclusion.bright
// INFO : 0.100000001490116
// INFO : 0.100000001490116
// INFO : 0.100000001490116
// INFO : 0.75


And when viewing the values in the PPG it looks like this (see the attached picture).

3 REPLIES 3
Message 2 of 4
Anonymous
in reply to: Anonymous

Using the commands instead of object model works.

e.g.


SetValue(o_mat.Shaders(0) + ".bright.red", 0.9, null);


Could this be a bug in the SDK? Working on SI 2013
Message 3 of 4
Leendert68
in reply to: Anonymous

It's definitively weird. I just checked SI2013 and SI2013SP1 and your script does indeed return "gibberish".
A translation to Python however gets me the correct values for "dark" (0.5) but still these long values for "bright".

xsi = Application
o_obj = xsi.CreatePrim("Cube", "MeshSurface")
o_mat = o_obj.AddMaterial("$XSI_DSPRESETS\\Shaders\\Material\\XSIAmbientOcclusion.Preset", False, "ao_bake")

o_mat.Shaders(0).Parameters("dark").red.Value = 0.5
o_mat.Shaders(0).Parameters("dark").green.Value = 0.5
o_mat.Shaders(0).Parameters("dark").blue.Value = 0.5

o_mat.Shaders(0).Parameters("bright").red.Value = 0.1
o_mat.Shaders(0).Parameters("bright").green.Value = 0.1
o_mat.Shaders(0).Parameters("bright").blue.Value = 0.1

xsi.LogMessage(o_mat.Shaders(0).Parameters("dark"));
xsi.LogMessage(o_mat.Shaders(0).Parameters("dark").red.Value)
xsi.LogMessage(o_mat.Shaders(0).Parameters("dark").green.Value)
xsi.LogMessage(o_mat.Shaders(0).Parameters("dark").blue.Value)
xsi.LogMessage(o_mat.Shaders(0).Parameters("bright"))
xsi.LogMessage(o_mat.Shaders(0).Parameters("bright").red.Value)
xsi.LogMessage(o_mat.Shaders(0).Parameters("bright").green.Value)
xsi.LogMessage(o_mat.Shaders(0).Parameters("bright").blue.Value)
Message 4 of 4
lucericr
in reply to: Anonymous

That script no longer runs correctly in Softimage 2013 although it works fine in Softimage 2010

The problem is not so much that's broken (though it is) but that the SDK allows you to write something incorrect that worked because of some implementation detail. And those details have changed.

Because "Dark" and "Bright" are actually a child object, the correct way to write to these parameters is this:

NewScene(null, false);
o_obj = CreatePrim("Cube", "MeshSurface", null, null);
o_mat = o_obj.AddMaterial("$XSI_DSPRESETS\\Shaders\\Material\\XSIAmbientOcclusion.Preset", false, "ao_bake");

o_mat.Shaders(0).dark.Parameters("red").value = 0.4;
o_mat.Shaders(0).dark.Parameters("green").value = 0.5;
o_mat.Shaders(0).dark.Parameters("blue").value = 0.6;

o_mat.Shaders(0).bright.Parameters("red").value = 0.7;
o_mat.Shaders(0).bright.Parameters("green").value = 0.8;
o_mat.Shaders(0).bright.Parameters("blue").value = 0.9;

LogMessage(o_mat.Shaders(0).dark.Parameters("red").value);
LogMessage(o_mat.Shaders(0).dark.Parameters("green").value);
LogMessage(o_mat.Shaders(0).dark.Parameters("blue").value);
LogMessage(o_mat.Shaders(0).bright.Parameters("red").value);
LogMessage(o_mat.Shaders(0).bright.Parameters("green").value);
LogMessage(o_mat.Shaders(0).bright.Parameters("blue").value);


Works both releases.
It still worth discussing this with the softimage dev team through support or beta, because the script should fail rather than return garbage

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report