GPUOpen-LibrariesAndSDKs / BlenderUSDHydraAddon

This add-on allows you to assemble and compose USD data with Blender data and render it all using various renderers via Hydra.
Apache License 2.0
362 stars 37 forks source link

Translation error with Attic-Demo-CCBY scene #206

Closed pablode closed 2 years ago

pablode commented 2 years ago

Tested with latest master (1.0.77) and Blender 3.0.1.

To reproduce:

  1. open Attic-Demo-CCBY scene: https://www.blendswap.com/blend/25057
  2. set Render Engine to 'USD Hydra'
  3. activate 'Viewport Shading'
  4. nothing is rendered; observe error in Blender console

Error message:

2022-03-05 16:07:32,976 ERROR hdusd.engine [18376]:  '<' not supported between instances of 'NodeItem' and 'float', EXCEPTION:, Traceback (most recent call last):
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\engine\engine.py", line 111, in view_update
    self.engine.sync(context, depsgraph)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\engine\viewport_engine.py", line 200, in sync
    self._sync(context, depsgraph)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\engine\viewport_engine.py", line 385, in _sync
    object.sync(root_prim, obj_data)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\export\object.py", line 175, in sync
    mesh.sync(obj_prim, obj, **kwargs)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\export\mesh.py", line 229, in sync
    _assign_materials(obj_prim, obj.original, usd_mesh)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\export\mesh.py", line 235, in _assign_materials
    usd_mat = material.sync(obj_prim, obj.material_slots[0].material, obj)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\export\material.py", line 41, in sync
    doc = mat.hdusd.export(obj)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\properties\material.py", line 58, in export
    if not node_parser.export():
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\output.py", line 25, in export
    surface = self.get_input_link('Surface')
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 351, in get_input_link
    return self._export_node(link.from_node, link.from_socket.identifier)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 294, in _export_node
    node_item = node_parser.export()
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\shader.py", line 229, in export
    shader1 = self.get_input_link(1)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 351, in get_input_link
    return self._export_node(link.from_node, link.from_socket.identifier)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 294, in _export_node
    node_item = node_parser.export()
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\shader.py", line 166, in export
    color = self.get_input_value('Color')
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 356, in get_input_value
    val = self.get_input_link(in_key)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 351, in get_input_link
    return self._export_node(link.from_node, link.from_socket.identifier)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 294, in _export_node
    node_item = node_parser.export()
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\color.py", line 30, in export
    fac = self.get_input_value('Fac')
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 356, in get_input_value
    val = self.get_input_link(in_key)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 351, in get_input_link
    return self._export_node(link.from_node, link.from_socket.identifier)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 294, in _export_node
    node_item = node_parser.export()
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\color.py", line 30, in export
    fac = self.get_input_value('Fac')
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 356, in get_input_value
    val = self.get_input_link(in_key)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 351, in get_input_link
    return self._export_node(link.from_node, link.from_socket.identifier)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 294, in _export_node
    node_item = node_parser.export()
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\converter.py", line 24, in export
    in1 = self.get_input_value(0)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 356, in get_input_value
    val = self.get_input_link(in_key)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 351, in get_input_link
    return self._export_node(link.from_node, link.from_socket.identifier)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 294, in _export_node
    node_item = node_parser.export()
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\converter.py", line 53, in export
    in2 = self.get_input_value(1)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 356, in get_input_value
    val = self.get_input_link(in_key)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 351, in get_input_link
    return self._export_node(link.from_node, link.from_socket.identifier)
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\node_parser.py", line 294, in _export_node
    node_item = node_parser.export()
  File "C:\Users\pablode\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\hdusd\bl_nodes\nodes\converter.py", line 50, in export
    res = (in1 % 1.0 < 0.5).if_else(f, f + 1.0)
TypeError: '<' not supported between instances of 'NodeItem' and 'float
DagerD commented 2 years ago

Hi.

Thanks, confirmed as BLEN-57.

DagerD commented 2 years ago

Will be fixed with #215 and #214.