Jump to content
Tato

Edge Displacement on fractured pieces

Recommended Posts

Almatea, by all means you´re welcome to add your input (and example files :PB) ) to the discussion

  • Like 3

Share this post


Link to post
Share on other sites

Wow. Nice to see this topic!

 

The question on first page was about my setup. I did not see this topic before, and I just surprized why nobody noted me about this topic because I am always open to explain any of my techniques.

 

It is just very cool research about several steps displacement for curved surfaces. I did not check current setup of Rayman, but I can suppose that it would be useful to calculate width of each step by original polygon size. Because each step means one access to pointcloud so we want to minimize that.

 

Also I use quaternions instead of matrix because it is vector4 versus vector9 or 16 for matix

 

Please do shed some light on your approach to this! :)

Share this post


Link to post
Share on other sites

I was able to get this working on a sphere with a radius of 1 but when i scaled it up to 100 i wasn't able to get any displacement?  Thanks for sharing this example hip, its awesome!

Edited by m_pyro

Share this post


Link to post
Share on other sites

Inside displacement wrangle there is a multiply attribute as well as noise function that has to be tweaked to make your displacement works correct.

Another trick you can do is to scale matrix vectors to be 100x times larger, so when noise is computed it will be transferred back to small scale and you may use the same noise function this way.

Share this post


Link to post
Share on other sites

How would I go about using this with wall of separate bricks? I've tried playing with it a few different ways but it always has issues.

 

I've attached a file with some Geo locked in a Null. Each brick is assigned the variable "class" and only certain bricks are fractured (these have the "fracture" variable)

 

I would also like to use this on an inner and outer wall ( The Wall geo is locked in a Null as well)

 

The geo is a bit messy but it's more for proof of concept than final product

SOP_SHOP_EdgeDisp_v12_Test.hipnc

Share this post


Link to post
Share on other sites

Probably, not the best case to use with this setup, but still, you can remove most of the artifacts, using more iterations and smaller displacement multiplyer.

Also, don't forget that you need to connect unshattered geometry to boundary input, and then cache file nodes.

SOP_SHOP_EdgeDisp_v12_Test_Fix.hipnc

  • Like 1

Share this post


Link to post
Share on other sites

Thanks rayman

 

Which one of the multiplier variables should I be changing exactly? I've plugged a pre-fractured and post fractured set of bricks into the network and it is definitely better than before.

 

As the bricks will be simmed without displacement, and the sim exported as points and applied back onto the geometry, would it be best to use SOP displacement on the first frame and write that geo out and have the sim data copied onto that geometry? , or should I use a displacement shader which would do displacement at render time each frame (the debris does fly some distance away from the rest position)

 

I have all my destruction and secondary sims sorted out, but this is my first time delving into displacement, and I would like to get a more realistic look to my fractured debris rather than the typical straight edges that Voronoi gives you by default

SOP_SHOP_EdgeDisp_v12_Test_2.hipnc

Share this post


Link to post
Share on other sites

I'm trying to make my own version of this as I wanted to simplify the SOPs version (i'm ignoring uvs for now). I think my method could work and if so it would be a lot simpler - however equally I may be completely wrong!

 

I'm transferring the (un-smoothed) normals from the the outside to the inside faces then using this as a vector mask for the displacement, however this step doesn't quite seem to be working so i'm losing the shape of the outside geometry.. I can always re-project the points back onto the bound geometry at the end but i'd like to avoid this if possible.

 

(The right stream of the second switch is taken from bits of pavels file and fxrod's updates and the left stream is my method)

 

I'd really appreciate it if someone could take a quick look! I think i'm close...!

 

Cheers,

Mike

fracture_detail_v4.hip

Edited by michaelb-01

Share this post


Link to post
Share on other sites

Ah I fixed that issue, I had to use an absolute on the flat vector in the displace vopsop. I think this method is quite simple now? It may be oversimplified as I haven't tried on many examples or curved surfaces, uvs etc. But I would be interested to see what people think, and if i'm missing something obvious??...

 

Here's the slightly newer version:

 

 

fracture_detail_v5.hip

  • Like 1

Share this post


Link to post
Share on other sites

Ah I fixed that issue, I had to use an absolute on the flat vector in the displace vopsop. I think this method is quite simple now? It may be oversimplified as I haven't tried on many examples or curved surfaces, uvs etc. But I would be interested to see what people think, and if i'm missing something obvious??...

 

Here's the slightly newer version:

Michael, i just tried your method with a sphere / curved objects, looks like its working great, only thing you have to change is instead of a subdivide to just use a divide for spherical/curved objects because of the rounded interior faces, then apply a subdivide after to increase that resolution. Use bricker polygons and you're good to go.

 

Great Work!

 

-A

Edited by A. Morales

Share this post


Link to post
Share on other sites

Hey Adad, thanks for having a look. I actually added the bricker polygons instead of the subdivide since posting that! I'll add uv functionality and a check for intersection with bound geometry similar to the other example files.

  • Like 1

Share this post


Link to post
Share on other sites

It's been a while since last input, I am reading through this thread for several days. Rayman you are really amazing. To be honest I am still a newbie and  can't make sense half of the code you wrote. Just wonder if you did any more experiment with this setup? And last time you said you fixed the normal calculation of the exterior, is there still chance that you can share some hip example with us?

Share this post


Link to post
Share on other sites

It's been a while since last input, I am reading through this thread for several days. Rayman you are really amazing. To be honest I am still a newbie and  can't make sense half of the code you wrote. Just wonder if you did any more experiment with this setup? And last time you said you fixed the normal calculation of the exterior, is there still chance that you can share some hip example with us?

Hi!

I actually didn't managed to fix the displaced normals inside the wrangle, but I made a hybrid solution masking normals produced by displace along normals vop and the ones imported from the boundary geo. Not the best solution but it works. Probably I should check how exactly displace along normals is implemented and will try to use something similar as it will be more straightforward than current setup.

I will attatch the hip later.

 

Cheers!

Share this post


Link to post
Share on other sites

Hi Pavel,

Thanks for your quick reply. I saw your latest add fracture detail demo on vimeo, which looks really great. I am working on my graduate thesis and really hope can get better detail for my fracture pipeline. Your files really helped me a lot. Also can't help to notice you are the author of RBD stress fracture (H14) with Time Machine too. The whole class here are trying to figure out how it was done. What you achieved are way beyond what we have learned in school haha. Thanks again and looking forward some new hip to dig in. :)

Edited by rGarfield

Share this post


Link to post
Share on other sites

After checking Pavel fantastic file, I think that at this point SESI should come with a couple of digital asset to make this much easier. As nice as Pavel results are, I find the method very convoluted and non-streamlined.

 

PS: by the way, in order to get Pavel file working I had to change the shader the Surface Model node with my own. Otherwise it kept on giving errors on H14.

 

Should I RFE this?

Share this post


Link to post
Share on other sites

Hello! I have read the whole thread and had a look at almost all the hip files but they are very complicated and I'm having trouble with understanding and applying it to my scene. I was wondering if somebody could help me with applying the edge displacement. Thanks a lot for any help

dam_test_v01.hipnc

Share this post


Link to post
Share on other sites

I got this partially working, or at least it looks like it's working at SOP level, however I cant seem to get this to render with the shader. I keep getting a black output render. I fixed all the errors I got in houdini 14, it was mainly complaining about the surface model. Any ideas how this might be able to work in H14

Share this post


Link to post
Share on other sites

After checking Pavel fantastic file, I think that at this point SESI should come with a couple of digital asset to make this much easier. As nice as Pavel results are, I find the method very convoluted and non-streamlined.

 

PS: by the way, in order to get Pavel file working I had to change the shader the Surface Model node with my own. Otherwise it kept on giving errors on H14.

 

Should I RFE this?

What did you change in the shader?  I put down a new Surface model but it still renders all black.  H14.0.361

 

EDIT: my mistake, missed the bound geometry path in the shader.  Awesome file.  Thank you

Edited by loudsubs

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×