Jump to content

Compiled vs NotCompiled Shaders


Recommended Posts

When working with many shaders working with vexshaders that are not compiled, the ifd generation can take quite a while, especially when the shaders are quite complex, also the filesize gets quite big. When You compile it, mantra starts quite fast. what are Your way to deal with this, do You compile all Your shaders when you have a lot of shaders.

what's your workflow? as long as the shader is not compiled You can easily modify it's way of working, at cost of speed.

Do You have a vex/vop version for working on the actual shader and overwrite the compiled version, during development?

Another issue is for example if You compile the mantrasurface shader shipped with houdini, you get errors with the compiled version (Bad parameter reference: "envMap"... ). killing that expression is no problem but why is it there, after compling?

when using compiled shaders, ogl display does not work, too.

if You copy paste that shader, houdini gives a warning about a warning "about invalid channel "vm_dispacebound" and "vm_truedisplace". again it renders but there is that warning message appearing, how can one avoid it? it only appears when copy/paste that compiled shader

would be great if you share your thoughts / workflows

EDIT: when working developing shaders with vex/vop and compiling them You have to switch the material pathes to the compiled one, sometimes materials can be set in different subnets, on obects, on soplevel, even in different takes. is there a way to find dependent nodes in python? the dependency pane gives you that info, but would be handy to have that in python, too, but I guess it is impossible to the them in other takes than the active

Martin

Edited by sanostol
Link to comment
Share on other sites

  • 3 weeks later...

Compile the shaders.

If your scene has a single Mantra Surface shader in it and all objects reference it with parameter overrides, then you can get by without compiling.

If your scene has more than one Mantra Surface Shader, compile it to your own .otl file saved on disk in the $HOUDINI_PATH like $HOME/houdini12/otls and use the compiled shaders. No more compilation hits when you render.

There is an on-going discussion internally as to how to ship shaders. I toss my hat in to the shipping of pre-compiled shaders and if the user wishes to edit the shader, make a copy of the HDA and then allow editing of contents and make the modifications.

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.

Guest
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...