ID 374275 - Hydra Viewer - Add type deduction for basic geometry.arbitrary.inputType: string, int, float and double

Follow

Problem summary:

When arbitrary attibutes are set on a location, it will fail to display in Hydra, and the following error will be shown in the terminal:

[WARN plugins.HydraViewer.Delegate]: Location: /root/world/geo/primitive has invalid geometry. Reason: Arbitrary Geometry has no input type

This is a problem when using OpScript, as users can set attributes without  explicitly specifying the type. The verification test should be able to deduce the type of the attribute from the values provided.

 Steps to reproduce:

  1. Open attached project:
  2. Fully expand the scene and verify that nothing is displayed in Hydra
  3. Disable the red coloured OpScript node.
  4. Verify that the Torus is now displayed in Hydra, disable again to see a print of the error message above to the terminal.
  5. Optionally, verify that the geometry renders in prman and 3delight without having to specify the attribute type via the 2nd OpScript.

Expected behaviour:

Torus is always visible in Hydra

Actual behaviour:

Torus is only visible in Hydra when attribute types are specified.

Workaround:

When creating an arbitrary attribute make sure that 'inputType' field is set to a correct value. Example:

Interface.SetAttr("geometry.arbitrary.myColorArray.scope", StringAttribute("primitive"))Interface.SetAttr("geometry.arbitrary.myColorArray.value", FloatAttribute({0.1, 0.2, 0.3, 0.4, 0.5, 0.6}))Interface.SetAttr("geometry.arbitrary.myColorArray.inputType", StringAttribute("color3"))
("color3" for RGB colors, or "color4" for RGBA)

Tested versions/platforms:

  • 3.0v4 - Unaffected
  • 3.0v5 - Affected

Customer version/platform:

3.0 and 3.1

    We're sorry to hear that

    Please tell us why