Solaris Hair houdinihairprocedural node fails

   1927   6   1
User Avatar
Member
68 posts
Joined: Sept. 2018
Offline
I am learning the document's houdini_hair_procedural node example, and I almost replicate every parameter in this node.
But it only works in my first render, and then it fails.
Then I didn't do anything, the problem become problems.

Problem1
In the document's houdini_hair_procedural sample, if we use generate mode we actually import the hair curve and the skin primitive, then we get animated hair. That works.


I basically copied this layout. But it works only once, I can render hair in the karmarendersettings node, but I cannot get that effect in its down-stream usdrender_rop1 node

My scene layout
Step1. I put a grid and a shader ball inside it. Then I put a sphere in the scene and rig it, put hair on it as if I am giving hair to a character in a traditional kineFX character and hair way.



Step2. I go to solaris and sopimport everything, add lights and a camera.
Step3. I tried to use viewport karma render in the nodes down-stream of the houdinihairprocedural node.

Result:
I got a correct rendering of hair and animation in the first render.
After I've moved back to obj level and played with obj level hair generate node's properties, I cannot get hair rendered correctly in stage anymore.
The material is not working, the hair generation is not working.





Then a more confusing problem happens.


Problem2
I hit the render to disk button in the USD render ROP node dozens of times.
Then the console pops up an error message:

No cameras found in the USD file

Then I cannot render anything at all.
I believe that I've checked the parameters in the nodes from both my learning scene and that document's tutorial scene. There should not be many differences.

I mean, this is not a very happy look-dev experience..


The project file->
Image Not Found
Edited by goose7 - Dec. 5, 2022 14:05:03

Attachments:
kp1.png (888.6 KB)
kp2.png (705.7 KB)
KP3.png (989.3 KB)
kp4.png (1.0 MB)
kp5.png (930.4 KB)
USD_Camera_Missing.hip (1.5 MB)

User Avatar
Staff
451 posts
Joined: June 2020
Offline
For the camera issue, I've replied to your other post (https://www.sidefx.com/forum/topic/81674/?page=2#post-378694).

I'm looking at the hair issue now.
User Avatar
Member
68 posts
Joined: Sept. 2018
Offline
robp_sidefx
For the camera issue, I've replied to your other post (https://www.sidefx.com/forum/topic/81674/?page=2#post-378694).

I'm looking at the hair issue now.
Greetings sir, thanks for the help.
I didn't know solaris has that difference than Mantra from usd saving files.
I managed to get a render in Mplay.

For the hair things,
I've got this error message after I did something.
Failed to run preframe procedurals script:
 Traceback (most recent call last):
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 207, in <module>
    runProcedurals(stage, stage.GetSessionLayer(),
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 143, in runProcedurals
    new_layer = runProcedural(proc_path, prim, args_dict, proc_expand_dir)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 50, in runProcedural
    geo = fn(prim, args)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/husdplugins\houdiniprocedurals\invokegraph.py", line 48, in procedural
    invoke.execute(result, geos)
  File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs\hou.py", line 79811, in execute
    return _hou.SopVerb_execute(self, dest, inputs)
hou.OperationFailed: The attempted operation failed.
Verb invokegraph generated errors: Warning:     The node "<internal>: /stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "<internal>: /stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
             Invalid attribute specification: "<internal>: pscale not found".
Error:       <internal>: Couldn't find integer attribute for primitive number..

It is strange, it says it cannot find pscale.
I know that solaris changed traditional names of point attributes, but now the hair generate node in obj level is using @width as its parameter. Solaris uses width as well. How can it look for pscale?

Another thing I noticed that rendering in USD render rop node causing significant more time than rendering in viewport. Despite I've assigned same karma render settings via viewport and USD render rop.

Their sampler limit settings should be exactly same.

Is there any things missing for this difference?
Edited by goose7 - Dec. 6, 2022 13:15:41
User Avatar
Staff
451 posts
Joined: June 2020
Offline
goose7
robp_sidefx
For the camera issue, I've replied to your other post (https://www.sidefx.com/forum/topic/81674/?page=2#post-378694).

I'm looking at the hair issue now.
Greetings sir, thanks for the help.
I didn't know solaris has that difference than Mantra from usd saving files.
I managed to get a render in Mplay.

For the hair things,
I've got this error message after I did something.
Failed to run preframe procedurals script:
 Traceback (most recent call last):
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 207, in <module>
    runProcedurals(stage, stage.GetSessionLayer(),
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 143, in runProcedurals
    new_layer = runProcedural(proc_path, prim, args_dict, proc_expand_dir)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 50, in runProcedural
    geo = fn(prim, args)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/husdplugins\houdiniprocedurals\invokegraph.py", line 48, in procedural
    invoke.execute(result, geos)
  File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs\hou.py", line 79811, in execute
    return _hou.SopVerb_execute(self, dest, inputs)
hou.OperationFailed: The attempted operation failed.
Verb invokegraph generated errors: Warning:     The node "<internal>: /stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "<internal>: /stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
             Invalid attribute specification: "<internal>: pscale not found".
Error:       <internal>: Couldn't find integer attribute for primitive number..

It is strange, it says it cannot find pscale.
I know that solaris changed traditional names of point attributes, but now the hair generate node in obj level is using @width as its parameter. Solaris uses width as well. How can it look for pscale?

Another thing I noticed that rendering in USD render rop node causing significant more time than rendering in viewport. Despite I've assigned same karma render settings via viewport and USD render rop.

Their sampler limit settings should be exactly same.

Is there any things missing for this difference?

Sorry for the delay, I was unfortunately ill the last few days. Can you please post your latest hip file for me to investigate?
User Avatar
Member
68 posts
Joined: Sept. 2018
Offline
robp_sidefx
goose7
robp_sidefx
For the camera issue, I've replied to your other post (https://www.sidefx.com/forum/topic/81674/?page=2#post-378694).

I'm looking at the hair issue now.
Greetings sir, thanks for the help.
I didn't know solaris has that difference than Mantra from usd saving files.
I managed to get a render in Mplay.

For the hair things,
I've got this error message after I did something.
Failed to run preframe procedurals script:
 Traceback (most recent call last):
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 207, in <module>
    runProcedurals(stage, stage.GetSessionLayer(),
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 143, in runProcedurals
    new_layer = runProcedural(proc_path, prim, args_dict, proc_expand_dir)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 50, in runProcedural
    geo = fn(prim, args)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/husdplugins\houdiniprocedurals\invokegraph.py", line 48, in procedural
    invoke.execute(result, geos)
  File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs\hou.py", line 79811, in execute
    return _hou.SopVerb_execute(self, dest, inputs)
hou.OperationFailed: The attempted operation failed.
Verb invokegraph generated errors: Warning:     The node "<internal>: /stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "<internal>: /stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
             Invalid attribute specification: "<internal>: pscale not found".
Error:       <internal>: Couldn't find integer attribute for primitive number..

It is strange, it says it cannot find pscale.
I know that solaris changed traditional names of point attributes, but now the hair generate node in obj level is using @width as its parameter. Solaris uses width as well. How can it look for pscale?

Another thing I noticed that rendering in USD render rop node causing significant more time than rendering in viewport. Despite I've assigned same karma render settings via viewport and USD render rop.

Their sampler limit settings should be exactly same.

Is there any things missing for this difference?

Sorry for the delay, I was unfortunately ill the last few days. Can you please post your latest hip file for me to investigate?

Oh, I'm sorry to hear that. Hope you're feeling well.
Image Not Found

I've marked the node branch that causes this error in red.
The message of the error has been changed a little bit and I have no I idea how it becomes that.
Oh, and I've ticked a PrimID render var and it shows a new error
[01:49:44] Failed to run preframe procedurals script:
 Traceback (most recent call last):
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 207, in <module>
    runProcedurals(stage, stage.GetSessionLayer(),
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 143, in runProcedurals
    new_layer = runProcedural(proc_path, prim, args_dict, proc_expand_dir)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs/husd/runprocedurals.py", line 50, in runProcedural
    geo = fn(prim, args)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/husdplugins\houdiniprocedurals\invokegraph.py", line 48, in procedural
    invoke.execute(result, geos)
  File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.368/houdini/python3.9libs\hou.py", line 79811, in execute
    return _hou.SopVerb_execute(self, dest, inputs)
hou.OperationFailed: The attempted operation failed.
Verb invokegraph generated errors: Warning:     The node "<internal>: /stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairlen_parms" was not found or was the wrong type for this operation.
             The node "<internal>: /stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
             The node "/stage/sop_graphs/hairgen/setup_hairgen_parms" was not found or was the wrong type for this operation.
Error:       <internal>: Couldn't find integer attribute for primitive number..


[01:49:48] Pixel filter 'minmax' - Mode idcover requires PrimId channel

This error messgae is really hard to interpret because it does not point the path of the stage, instead it seams that it is using a secret path that is not visible in solaris network view
Edited by goose7 - Dec. 14, 2022 12:51:20

Attachments:
USD_Camera_Missing_b.hip (2.0 MB)

User Avatar
Staff
451 posts
Joined: June 2020
Offline
Yes, I agree that error message is not very helpful. The warnings ("node not found or wrong type") are a distraction, and the error ("Couldn't find integer attribute...") could be more verbose.

Ultimately I believe the issue with your setup is that the guide curves don't have skinprim & skinprimuvw attribute data on them. Have a look at the attached image for the change you can make on the /obj/hairgen1 node

Attachments:
hairgen.png (61.2 KB)

User Avatar
Member
68 posts
Joined: Sept. 2018
Offline
robp_sidefx
Yes, I agree that error message is not very helpful. The warnings ("node not found or wrong type") are a distraction, and the error ("Couldn't find integer attribute...") could be more verbose.

Ultimately I believe the issue with your setup is that the guide curves don't have skinprim & skinprimuvw attribute data on them. Have a look at the attached image for the change you can make on the /obj/hairgen1 node
Hi Robp, I also get bad luck this time.. I just recovered from Omicron..

I found that there might be a bug.
I've added "skinprim " and "skinprimuvw " to the prim attribute, but it does not help.
However, I created a new houdinihairprocedural node and I leave everything blank, than it works (of course the generation parameters does not work)


And furthermore, it looks like that the rendering speed of directly importing hair as sop geometry and the rendering speed of using houdinihairprocedural node is very similar.

Attachments:
hou_hair_p.png (1.1 MB)
USD_Camera_Missing_c.hip (2.0 MB)

  • Quick Links