Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

jwoelper

procedural stones/rocks

23 posts in this topic

Hi all!

I am trying to implement something similiar to this (which is, at least for 3Dsmax, quite impressive proceduralism):

the example somehow seems to use a voronoi noise as base displacement to create a sharply dented surface. I am trying to do this in VEX; having tried cellular and voronoi patterns, i am far away from what can be seen at 0:25 - could someone enlighten me here?

I have attached my scene file and will, of course, share my results with anyone interested.

All the best

Johann

http://www.2shared.com/file/11959523/434e9be/rockGenTest.html

Edited by jwoelper

Share this post


Link to post
Share on other sites

I can't believe that those stones are shown in real-time! :o

You need to talk to this guy.;)

Share this post


Link to post
Share on other sites

:) easy, just drop a polygon sphere , set division to 10.. add a vopsop .. in the vopsop drop a displace along normal and a worley noise.. dist1 from worley -> amount of displace along norm.. connect all the rest correctly (p-> pos and such) and your done for a nice base stone shape :)

hope it helps

gunnar

Share this post


Link to post
Share on other sites

:) easy, just drop a polygon sphere , set division to 10.. add a vopsop .. in the vopsop drop a displace along normal and a worley noise.. dist1 from worley -> amount of displace along norm.. connect all the rest correctly (p-> pos and such) and your done for a nice base stone shape :)

hope it helps

gunnar

Oh, I was so close :) thanks a ton, the worley comes really close to what I had in mind!

Johann

Share this post


Link to post
Share on other sites

Good work!

I like the stone colors, I'm not sure about speculars, but colore are good.

Thanks!

I am just trying out different methods right now. The specular indeed looks bad... also the texture is a bitmap. Ideally it should be a procedural shader, too...

Here are some more images with various stones and different bitmaps:

post-2910-126823138468_thumb.jpg

post-2910-12682314077_thumb.jpg

post-2910-126823142215_thumb.jpg

cheers

Johann

Share this post


Link to post
Share on other sites

Hi all,

attached is a very rough basic version of the rock generator with some parameters to play around. Unfortunately no shader yet. A sample texture is attached.

Johann

rockGenTest.hipnc

post-2910-126839992955_thumb.jpg

1 person likes this

Share this post


Link to post
Share on other sites

jwoelper,

what a beautiful, procedural stone!

I like it and thanks to share.

Anyway, if I can suggest you something, it would be:

1. When creating parameter in VOP node, give them a yellow color in order to recognize them quickly: I see pros do it, so why don't we too? It's enough you click 'C' key on your keyboard and choose the third yellow from the right (if you don't know how do it! :))

2. I like the detail you put on the ground giving it a little height where stones are, but there are a lot of polygons under the ground that are unseen so they are not necessary for VOP and they are really expensive in term of CPU! So, you have a lot of choices now, the simple I think is to cut the subdivide box before VOP, maybe with a under-ground box (put it a little down of the ground to have more polygons as safety zone) that groups the under-polygons that have to be blasted. Then the cutted box can be processed by VOP to be a stone.

You can also randomize the Y-position of the under-ground box to have different heights.

Share this post


Link to post
Share on other sites

An additional approach is to create a bunch of highly detailed rocks and write them out to disk as begeo's then use point instancing at render time to duplicate the copy to points method.

or

Move part or all of this in to a displacement shader at render time.

You should also have a lower representation of your rock. Easy to do as you can just lower the subdivisions feeding in to the VOP network.

This is a very nice procedural boulder/rock generator.

Share this post


Link to post
Share on other sites

Hey that's some nice basalt you got there! The Vopsop approach is very good.

Share this post


Link to post
Share on other sites

Thanks a lot for the many useful tips!

I even colored all my parameter nodes :)

I also added some new logic and parameters that allow the creation of very different types of rocks as well as large stone surfaces (it should some day be able to do canyon walls and mountain sides).

Hip file follows after cleaning up.

Beware of the stone spam:

post-2910-12687749917_thumb.jpg

post-2910-126877500498_thumb.jpg

post-2910-126877531447_thumb.jpg

post-2910-126877542996_thumb.jpg

viewport display of the mesh:

post-2910-126877562052_thumb.jpg

this looks like the dinosaur turd preset:

post-2910-126877571438_thumb.jpg

Cheers

Johann

jwoelper,

what a beautiful, procedural stone!

I like it and thanks to share.

Anyway, if I can suggest you something, it would be:

1. When creating parameter in VOP node, give them a yellow color in order to recognize them quickly: I see pros do it, so why don't we too? It's enough you click 'C' key on your keyboard and choose the third yellow from the right (if you don't know how do it! :))

2. I like the detail you put on the ground giving it a little height where stones are, but there are a lot of polygons under the ground that are unseen so they are not necessary for VOP and they are really expensive in term of CPU! So, you have a lot of choices now, the simple I think is to cut the subdivide box before VOP, maybe with a under-ground box (put it a little down of the ground to have more polygons as safety zone) that groups the under-polygons that have to be blasted. Then the cutted box can be processed by VOP to be a stone.

You can also randomize the Y-position of the under-ground box to have different heights.

Share this post


Link to post
Share on other sites

WOW!!!

They are getting better time after time!

The "stone carpet" is very nice: there's something I don't feel good between one column and next one, but I cannot tell you what's wrong... maybe the aliasing...but I don't know...

The first and second stones are marvellous!

While the dinosaur turd seems to me two embraced men like in an Escher picture! :lol:

Thanks in advance for the hip file.

Share this post


Link to post
Share on other sites

Very nice rocks! I have to say that I am doing something very similar to what you are doing. Some kind of basalt. (After seeing Macha's thread, my interest in rocks has grown.) I look forward to seeing more.

Edit: By the way, do you plan on scattering rocks over terrain? I ended up going pretty low res for the geometry and then displacing. I suppose that you could point instance if you wanted to maintain your detail.

Edited by mightcouldb1

Share this post


Link to post
Share on other sites

Yeah, I guess I will go the displacement way too in the end... I just wanted to play with VEX a bit and I think it is a more intuitive way of visualizing the displacement instead of re-rendering every minute.

By the way, is there a way to easily include/port/paste the vex sop code into a shader displacement? (as in "switching the vex sop off and the shader on"?) If they could share the same code this would be perfect for visualization...

I have started working on the surface shader, it is included in the scene and visualized in the test rendering.

Cheers

Johann

post-2910-126893165205_thumb.jpg

stonemap.hipnc

Very nice rocks! I have to say that I am doing something very similar to what you are doing. Some kind of basalt. (After seeing Macha's thread, my interest in rocks has grown.) I look forward to seeing more.

Edit: By the way, do you plan on scattering rocks over terrain? I ended up going pretty low res for the geometry and then displacing. I suppose that you could point instance if you wanted to maintain your detail.

2 people like this

Share this post


Link to post
Share on other sites

You should be able to select your VOPs in the SOP context and then paste in a fresh VOP VEX Displace SHOP.

You will have to re-wire the outputs though as that does not map out properly.

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