displacement bound

   10237   6   1
User Avatar
Member
313 posts
Joined: July 2005
Offline
How can I adjust the displacement bound (for rman shader) in Houdini?

Also, how can I edit $HOUDINI_STPATH
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
Displacement Bounds is first set in each object's Render Folder. You have to toggle the feature on then set the value. Be warned. If you set large values for displacement bounds then your renders will take a very long time and consume much more memory.

A good rule of thumb for initial settings for displacement bounds should be approximately two thirds of the absolute displacement value in the displacement shader(2/3*displacement_value). If you see cracks, then increase the displacement bounds. If you have to set the displace bounds beyond the displacment shader's displace amount slider, then read below as the shader should have it's ui modified.

Rant on…
A well written displacement shader should have a single parameter that represents the absolute maximum displacement. I have seen many displacement shaders that have additive or multiplicative sliders that the artist has to mentally process to derive the ultimate displacment bounds value. Why oh why do shader writers do this?
Rant off….



How to set $HOUDINI_STPATH? Depends on platform and environment but essentially there are three ways:

1) Using shells, just set the environment variable on the command line. For cshell, setenv HOUDINI_STPATH my_full_path.
When I use windows, I use the cygwin (http://www.cygwin.org) [cygwin.org] tools. It's shells, commands and environment works equivallent to linux (with a couple caveats).

2) Using windows without shells, you have to set this in the enviornment gui. The location varies with windows OS. On winXP, rmb on My Computer icon on the desktop and choose Properties. The System Properties gui pops up. Select the Advanced Folder. Press on the Environment Variables button at the bottom. Set your environment variable and path here. If you have administrator privellages, then you can set the environment variable under System variables. If not, then use the User variables for My Name section.

3)Inside houdini, in the top menu option choose Settings > Aliases, Variables… to open up the Aliases/Variables/Expressions dialog gui. Now in the Variables folder, type in your variable and path in here. This is only good for the current houdini session. If you plan to generate ifd's or rib's, the environment variable will no longer be set.
There's at least one school like the old school!
User Avatar
Member
941 posts
Joined: July 2005
Offline
Hi Jeff,

jeff
Rant on…
A well written displacement shader should have a single parameter that represents the absolute maximum displacement. I have seen many displacement shaders that have additive or multiplicative sliders that the artist has to mentally process to derive the ultimate displacment bounds value. Why oh why do shader writers do this?
Rant off….

Additive makes no sense at all; agreed. But, in defense of some of us crazy shader writers , multiplicative does make sense in some cases. One of the biggest problems with displacement is that it is sensitive to the underlying object's world-space size. Meaning that a displacement designed for a 1x1x1 unit character will look different when that character gets rescaled for each shot. The “classical” way to deal with this (which doesn't work in all cases) is to express the displacement amplitude in some space other than camera space. And this in turn introduces a multiplication by the inverse of the length of a world-space unit-vector transformed to the displacement space. As a result, the shader's displacement parameter becomes a scaling factor under the covers (it becomes multiplicative).


Cheers!
Mario Marengo
Senior Developer at Folks VFX [folksvfx.com] in Toronto, Canada.
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
I didn't want to get in to different displacement spaces and in most all cases Mario, you are absolutely correct. I over-trivialized the issue. I was thinking that as I was typing out the original response. You want your shader to have the same look on wildy different scaled objects. Finding the correct displacement bound value does require some work by the lighter.

I have found that the overall multiplier still tends to be an excellent guide for the end user. If they use 2/3rds of that value, they should be in good shape unless they have a wacky initial overall displacement that has values much larger or much smaller than 1.

-jeff
There's at least one school like the old school!
User Avatar
Member
313 posts
Joined: July 2005
Offline
in the object's render folder.
There are so many options for me to choose from! Which one should I choose?

geometry as is
polygons as Subdiision surfacs
render only points
render from file
bounded file (explicit bounds)
bounded file (render sop defines bounds)
……………

I tried bounded file
-2 -2 -2
2 2 2

but the surface is still broken
User Avatar
Member
1631 posts
Joined: July 2005
Offline
Hey brucelay,

The parameter is “Displace Bound” & to activate it, turn on the toggle.

Cheers!
steven
User Avatar
Member
313 posts
Joined: July 2005
Offline
thanks! it is working now!
  • Quick Links