Scripted 3Delight - Outline Compositor: Outline ID Color

FirePro9FirePro9 Posts: 456
edited May 2019 in Daz Studio Discussion

I start a scene then change to the  Scripted 3Delight rendering engine, then change the Render Script to Outline.

Then under Surfaces tab I change the Outline ID Color for each surface.  For example, for surface1 I assign the surface parameter "Outline ID Color"  to white and it displys 255 255 255.

I then change the Render Script to Outline Compositor and go back to my Surface and now the surface paramter reads "(2) Outline ID Color" and even though it is still white, it displays <?>.

Only if I double click on the parameter and confirm the white color and do an OK will the parameter properly display 255 255 255.

This is important as the Outline Compositor does not honor the Outline ID Color unless I do this for every surface.

Is this a BUG or am I doing something wrong?

NOTE: When changing render scripts from Outline to Outline Compositor the Surface parameter name changes from "Outline ID Color to "(2) Outline ID Color".  Normally this would indicate that I have two surfaces selected, however, this is not my case, I have only one surface selected.  Also, after I confirm the color the name does not change.

Any insights would be most appreciated.  Thanks!

 

Post edited by FirePro9 on

Comments

  • Richard HaseltineRichard Haseltine Posts: 107,889

    I can't check at the moment but it sounds as if both scripts are adding an Outline ID Color property to the surface, so you end up with two (initially with different values, hence the ?). Do you need to run both scripts?

  • FirePro9FirePro9 Posts: 456
    edited May 2019

    I am trying to run a script that only seems to work with Scripted 3DL eingine and the Outline script and not with the Outline Compositor script.  So I start with the Outline script, run the "MatID To Each Surface.dsa" script that came with the OSO Toon Shader for Iray product and I get a unique Outline ID Color for each surface.  Then when I switch to Outline Compositor the colors used for the Outline ID Color are present but the triplet numbers are replaced by <?>.   I have to double click each surface's Outline ID Color to fix this....a bit of a pain.

    Ideally the "MatID To Each Surface.dsa" script would work with Outline Compositor. 

    Another option may be to use the Outline script, provided there is a way to render the outline image as a .PNG rather than the defualt .TIF? 

     

    YES, it does sound like a second Outline ID Color property is being added.  I noticed that when I look at the Parameter Setting for the (2) Outline ID Color parameter that the Name value dropdown list shows two similar options that may be the source of the confusion, it shows :  OutlineColorID and then lists OutlineOutlineID

    When I look at the Outline ID Color property using just the Outline Script the Parameter Setting for "Outline ID Color" lists the Name value properly, i.e., OutlineColorID

    When I look at the Outline ID Color property using the Outline Compositor Script only the Parameter Setting for "Outline ID Color" lists the Name value properly, i.e., OutlineOutlineID

    Post edited by FirePro9 on
  • djigneodjigneo Posts: 283

    I'd have to look at the script in question to tell you precisely where to change and what to change it to, but what the script is doing is selecting the 'Outline ID Color' property by either name or label. So if the Scripted Renderers are creating different names for the Outline Color ID (which seems to be the case based on the above conversation), the script would need to be adjusted to have the expected property name / label then it should work.

    My suggestion would be to:

    1. Look at the Property settings for the property you'd like to be affected, and note the Name.
    2. Duplicate the MatID To Each Surface script (make a copy to work with Outline Compositor instead)
    3. Modify the script to set the property name to be selected to the Property name found in #1
  • FirePro9FirePro9 Posts: 456

    So I changed the script from this: var sOsoColorId = "OutlineColorID";

    to this: var sOsoColorId = "OutlineOutlineID";

    saved as a new script and IT WORKS!

    Thank you again djigneo for your help!

  • FirePro9FirePro9 Posts: 456

    Richard, it seems to me that the Outline script and the Outline Compositor script should be referring to the same surface parameter, either OutlineColorID or OutlineOutlineID.  If I am correct about that can you post a bug report?

     

  • Richard HaseltineRichard Haseltine Posts: 107,889

    That would depend what they were doing - if they are each setting the ground work for their own shader code they would use whatever name they required. That was why I was querying your use of what you later said was the Oso3D script for use with a different output. If the scripted render script adds the needed property with the correct name why not just use that?

  • FirePro9FirePro9 Posts: 456

    The only problem is there still may be  a need/desire to render both using the Outline script and the Outline Compositor script and in that case the OutlineColorID parmaeter or the OutlineOutlineID parmater will get hosed. In those cases I suppose I can save a separate scene to deal with it.  If it can be fixed then great, if not, I understand there are other more pressing issues to address.

     

Sign In or Register to comment.