Jump to content

Proper Displacement


abvfx

Recommended Posts

After all the years i have been tinkering with Houdini one thing i still do not understand properly is displacements. The setup, the workflow.

I understand the way to connect it with materials and applying them to objects. I have no problem understanding to get it work. I just cant get it to work properly.

I dont understand when you render an object with displacement, how do you create more polys at render time? (surely there must be a better way other than using a subdivde sop (with the render flag on) .)

Thanks guys, i really have looked around and opened alot of files and still dont get it. (even in these files, they dont use a subdivide sop yet its very smooth.)

-andrew

Link to comment
Share on other sites

ive been through that option.

Im not looking for something like maya where you specify the min and max subdivision and give the appropriate length of an edge etc. But i cant find anything. once the displacement shader is applied there is no where for me to control how the model appears. Refined, rough?

come on surely some experienced users should know? :)

-andy

Edited by phrenzy84
Link to comment
Share on other sites

I assume you have increased your displacement bounds for one thing.. that will allow geometry to be rendered correctly when the displacement amount pushes the micropolygon outside the bounding for the object when it is being tessilated at render time. Increase your overall displacement you need to increase the displacement bound as well.

after that, you are stuck to use the Shading Quality level to make the object render with more micropolygons. Historically Houdini's values are 1/value the Renderman value.. so a houdini shading quality is 4 == 0.25 in Renderman speak which is the lowest you should really go.

after that look at your map.... the bit depth of your map and the gradations in the map will dictate how smooth your displacment will be.. so a heavily aliased ramp will be equally bumpy in your render... you can you use the -short option with txmake when using renderman to ensure a 16bit image is used properly.

after that you should follow the golden rule that if you are relying solely on the displacement map to define your final topology you are in danger of getting bad results (example would be a mountain range from a grid).

Your geometry should be as closely modeled as possible to the desired shaped.... of course there are some other rules to help lessen the detail in physical geometry's level of detail... things like screen space, and closeness to camera, rendering requirements to name a few.

after that you are stuck with the adding more samples to the renderer directly which will just slow everything down overall and will most likely just get you a sharper bumpy image (mantra and renderman will allow for samples to sharpen with the micropolygon, but if you are raytracing there are other widgets to spin upwards for sharper images)

good luck

-k

ive been through that option.

Im not looking for something like maya where you specify the min and max subdivision and give the appropriate length of an edge etc. But i cant find anything. once the displacement shader is applied there is no where for me to control how the model appears. Refined, rough?

come on surely some experienced users should know? :)

-andy

Link to comment
Share on other sites

after that, you are stuck to use the Shading Quality level to make the object render with more micropolygons. Historically Houdini's values are 1/value the Renderman value.. so a houdini shading quality is 4 == 0.25 in Renderman speak which is the lowest you should really go.

Just a little correction - AFAIK, In PrMan, a Shading Rate of 0.5 will produce 4 micropolygons per pixel, and 0.25 will produce 16, etc, an exponential response. This total micropolygons is the number that Mantra's Shading Quality tries emulate - the actual number of micropolygons that the Mantra will produce per pixel. So Mantra's is actually: shading_quality=1/(prman_shading_rate^2).

:)

Link to comment
Share on other sites

thanks for the info guys. I have followed them and played about with it.

So really. If i had a model, say 2000 polys. I bought that into Zbrush and made some changes (nothing crazy like the model was folded in on itself, but in the end it ended up having 5/6 levels of subdivision), and then generated a displacement map from level 1.

There isnt really anyway for me to import that 2000 poly model and render it with the displacement map?

Link to comment
Share on other sites

Just a little correction - AFAIK, In PrMan, a Shading Rate of 0.5 will produce 4 micropolygons per pixel, and 0.25 will produce 16, etc, an exponential response. This total micropolygons is the number that Mantra's Shading Quality tries emulate - the actual number of micropolygons that the Mantra will produce per pixel. So Mantra's is actually: shading_quality=1/(prman_shading_rate^2).

:)

standing corrected sir.

thanks for the detail..I guess is that is what I get for not using the last 8 months.

-k

Link to comment
Share on other sites

So really. If i had a model, say 2000 polys. I bought that into Zbrush and made some changes (nothing crazy like the model was folded in on itself, but in the end it ended up having 5/6 levels of subdivision), and then generated a displacement map from level 1.

There isnt really anyway for me to import that 2000 poly model and render it with the displacement map?

You should still be able to render, just depends what the map looks like. but that is a serious amount of polys you are adding (notice I'm avoiding the exact math.. :) but that is 1.5 million and change in polygons...so that is a substantial difference)

Anyway you can post visuals?

-k

Link to comment
Share on other sites

Just a minor correction on shading quality (Mantra) vs. shading rate (PRMan). It is just an inverse relationship.

Shading quality sets the number of subdivisions on the micropolygon where 1 = 1 pixel, 2 = 4 micropolys, 3 = 9 micropolys, etc...

Setting Shading Quality values of 16 where you really wanted to use a value of 4 (4x4=16) would use up quite a bit of memory and cause a huge amount of shader calls per pixel.

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