Jump to content

Shaders And Render From File

Recommended Posts

Am I wrong or it is possible to use only one/object level shader when rendering object from a file? (Render from file option in render tab of object).

thanks for your commnet,


Link to comment
Share on other sites

Thank you Simon, but this doesn't work for me. I was supprised and that's why I asked :(

I can't force H. to render file with sahders specified on SOP level, only obj level shader works.

don't know why...

I've created geo, applied all UV, shaders and such , saved on disk and still see default shader when rendering from a file.



Link to comment
Share on other sites

Also you may need to turn on declare all shops on the specific tab on the render node, down at the bottom under SHOP references.

This could be the point, up to now still with no succes :(

I'll check this trick!



PS What does actually mean "Auto-archive" option in Object render Tab?

Link to comment
Share on other sites

Simon has one part right: On the Mantra ROP in the Specific folder for SHOP References turn on "Declare all SHOPs". Shaders by default are only written to the ifd file only if they are in use. If you are rendering from archives on disk then this optimization writing out ifd's will ensure that the shaders that your archive needs won't be there. This is why you have to force Houdini to declare all SHOPs in the ifd file.

The second part is how you bind the primitive geometry shader attributes with the Shader SOP then write out the geometry archive to disk.

If you are building a digital asset and the shaders are in a local shopnet directory in the asset then you should turn off "Use absolute SHOP paths" in the Shader SOP. Write out your geometry and use this as your archive. This will set up relative shader paths. Check out the geometry spreadsheet what is happening to the attributes.

If you are just working with a normal object, you should be able to get by with the defaults on the shader SOP. Just don't rename your object, collapse to a subnet or anything else that changes the absolute path to those shaders that your geometry archive has baked in to it.

There is a third option and that is to bake in the actual shader parameter string on the geometry and bake in the shader parameters. To do that, turn off "Use indirect references" on the Shader SOP then write out your geometry and use that as your geometry archive. Now all you need is the shader definitions (in an otl file) to be present in the HOUDINI_PATH when you render.

Again look at the spreadsheet and you will now see opdef:... which peers in to the shader as defined in the .otl file.

After all of that, it shouldn't matter if you have an object level shader defined. It will be ignored as geometry shader references have precedence.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...