Skip to content

Overview of multi-output shader work #296

Open

Description

@pramsey1234

This issue is for organizational purposes only. No code should be promoted against this.

Currently Moonray shaders only have one output that doesn't have a name. Until recently the one output of Map shaders was always Color (RGB). Recently we added the ability to specify an output type but there is still only one and it still doesn't have a name.

To enable multiple outputs, shader objects need to allow for a list of named and typed outputs, there needs to be a way to bind a shader input to one of these outputs, and there needs to be a way for a shader to actually return those multiple outputs. We also need to update various tools to pass this information on to programs like Houdini.

Currently multiple outputs only seem to exist for what moonray calls map shaders.

Adding these capabilities will touch:

  • SceneObject and SceneClass in scene_rdl2 repo
  • scene_rdl2 python module in scene_rdl2 repo
  • introduce format changes to RDL files in scene_rdl2 repo
  • utilities for generating user interfaces for shader node (e.g. Houdini HDA files) in scene_rdl2 repo
  • defining how the actual .cc and .ispc multi-output shaders work
  • updates to shader definition json file format that ispc_dso_generate expects in cmake_modules repo
  • update the generation of attribute.cc and attributes.isph in ispc_dso_generate in cmake_modules repo
  • update evaluation of shaders at runtime in Map in moonray repo
  • update generation of coredata json files in rdl2_json_exporter in moonray repo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions