Jump to content

procedural stones/rocks


jwoelper

Recommended Posts

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
Link to comment
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

Link to comment
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

Link to comment
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

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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
Link to comment
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.

  • Like 2
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...