imageworks/OpenShadingLanguage — pull request #303 by lgritz (2013-12-03 00:39:49+00:00)
Title: ShadingSystem::ReParameter() lets the app send a new instance param value

ShadingSystem::ReParameter() lets the app send a new instance param value after the shader group has been declared, if the group has not yet been optimized OR if the param was marked lockgeom=0.

An interesting use of this is in an interactive system that allows adjustment of shader parameters. If you mark the parameters that you wish to adjust as 'lockgeom=0' (via the original Parameter declaration), then you can use ReParameter() to replace the parameter instance value and rerender immediately, without needing to re-declare and re-compile the shader network. It will not have turned the parameter value into a constant when optimizing, since it was marked as lockgeom=0.