Help - Search - Members - Calendar
Full Version: Unofficial Displacement Rendering Challenge
od[forum] > Art and Challenges > WIP
Pages: 1, 2
eetu
Hi all!

I ran into these nice 3delight test renders by Turin, and immediately got the urge to try and replicate them in mantra.

It has been a very illuminating learning experience this far for me - displacement, dicing, materials and all that jazz. I even found a gallery material bug in the process :)

Soo, I thought this might be a nice "challenge", I can imagine others also getting the copying urge.. ;)


RDG had a good idea; if this feels a bit overwhelming at first for some, this could be divided into 3 "levels"

- beginner level: get a basic scene with displacement working and rendered, no worries about materials and lighting
- medium level: try to copy the look and feel of the originals, or try to achieve a nice different look
- pro level: add hair and try to optimize the render times as much as possible


And don't forget to share your .hip-files for the better education of us all! :)


eetu.
eetu
Here's my first version:



The rendertimes got a bit high as I added raytraced soft reflections *drool*
These took 15 minutes on my macbookpro when updating shadowmaps, and ~6 minutes on a quad opteron without updating shadowmaps.

Regular micropolygons, predicing, 12x12 pixel samples, 3 shadowmapped spots, see .hip for the rest.
(Don't take the .hip too seriously, I am just learning this stuff and probably doing some stupid things.. smile.gif

Working on getting it cleaner and faster now..

eetu.
LEO-oo-
Nice renders and good idea! smile.gif
altbighead
I started playing because today is a holiday..biggrin.gif
I am still working on matching the same look .
Here is my first test.

The scene is very minimal with one spot light.
Micropolygon rendering
Mantra DOF
Render Time: 481.171u 3.140s
dual core with 2gb of RAM.

Click to view attachment

Click to view attachment

Edit.. Opps forgot to attach hip file. I will do it tomorrow!!
mark
good work getting a challenge going eetu. love the render too - it looks like a city smile.gif
eetu
Ah, the bug. (Might bite someone)

If you're using reflective_displace, the s and t are not connected in
simpleDisplace/ifScaleNotZero/if_useMapAndNotNull/ - between subinput1 and texture1.

This will cause the displacement map to not see the actual geometry uv's.

9.1.155

PS: a full HD render at http://eetu.iki.fi/hexadis/bigdisp9.jpg
zasid
Really Nice Render Eeto and thanks for the file.
wick3dParticle
Hey,
Great challenge!

At first I thought that this was way over my head to even try. But then I thought, eh...what the heck! So I gave it a shot...learned some new things along the way. I guess I will be entering the beginners challenge.
I will post my hip file along with a few questions tonight...because I only have my jpeg here with me.

Thanks,

Ilan

Marc
Nice challenge, thanks for starting it eetu
Jason
QUOTE(Marc @ Feb 20 2008, 04:52 PM) *
Nice challenge, thanks for starting it eetu


To throw some fuel on this fire, check out the "Re-dice Displacements" rendering property than Mantra can accept. At the cost of some speed (depending on your Shading Quality settings), it will redice long displacements and allow you to make multiple non-linear displacements. It results in your displacement shader needing to be run several times to determine displacements, but the result can be very interesting. Check it out:)

wicked3d, you might benefit from turning up your Shading Quality on your object to something like 3 or so.

eetu, cool renders!
MADjestic
QUOTE(Jason @ Feb 20 2008, 11:00 PM) *
To throw some fuel on this fire, check out the "Re-dice Displacements" rendering property than Mantra can accept. At the cost of some speed (depending on your Shading Quality settings), it will redice long displacements and allow you to make multiple non-linear displacements. It results in your displacement shader needing to be run several times to determine displacements, but the result can be very interesting. Check it out:)

wicked3d, you might benefit from turning up your Shading Quality on your object to something like 3 or so.

eetu, cool renders!


Hey Jason,

that multiple non-linear displacements thingy has been chasing me for some time. I think I need a little push, when speaking mantra, and non-linear disp. I mean as far as I am aware, I don't see a method to change displacement direction along the geo being displaced, or am I missing something obvious? Excpet for some esoteric stuff like displacing a geo, converting diplacement to geo and displacing it again.

For now I see 're-dice' feature only as an optimisation of long diplacements, but obviously you see further than me here. Could you eleborate on that a bit more?

I.e. displacement is basically a pushing of geo elements (points\micropolygons\etc.) along some vector. Is there a way to make that vetor change along the displacement distance, in Mantra-Houdini?

========================

Cool renders btw, eetu. I suppose that hair is also done as disp in those Air renders. Is it allowed to wire render those in Mantra, since wire rendering is so fast in Mantra and can be considered as it's own cool feature?

Thumbs up!
eetu
QUOTE(MADjestic @ Feb 21 2008, 04:15 PM) *
I.e. displacement is basically a pushing of geo elements (points\micropolygons\etc.) along some vector. Is there a way to make that vetor change along the displacement distance, in Mantra-Houdini?


I'd guess that the displacement is done along the surface normal. During the "2nd pass" the normal is recalculated from the first pass' displaced surface, and then displaced along that new one. Having some more control on the displacement direction would be nice, but it's a cool feature anyway!

QUOTE(MADjestic @ Feb 21 2008, 04:15 PM) *
I suppose that hair is also done as disp in those Air renders. Is it allowed to wire render those in Mantra, since wire rendering is so fast in Mantra and can be considered as it's own cool feature?


I'm pretty sure it's just hair in 3delight, not a displacement. Go on and wire-render them in Mantra!

eetu.
Jason
What I do is I use multiple displaceAlongNormal nodes, chained together - kinda how you'd do it in SOPs. I'm sure we could come up with a more obvious example (like look at IDgloop, Ivan DeWolfs non-linear displacement shader - which I haven't seen rendered with Mantra re-dice yet actually)

Anyhow, here is a little pic-
MADjestic
QUOTE(Jason @ Feb 21 2008, 08:25 AM) *
What I do is I use multiple displaceAlongNormal nodes, chained together - kinda how you'd do it in SOPs. I'm sure we could come up with a more obvious example (like look at IDgloop, Ivan DeWolfs non-linear displacement shader - which I haven't seen rendered with Mantra re-dice yet actually)

Anyhow, here is a little pic-


Oh, wow... no words. A moment of Zen again. Now everything is crystal and clear, but... I couldn't even suggest that mantra actually displaces the geo every time it sees 'Disp along normal'... I kinda de-facto assumed that it will displace the 'sum of everything' that it sees in the disp shader... wow.

Thanks Jason! It's the whole new world to play with actually!

Somebody wants to beat up those puny Air renders? now wink.gif
wick3dParticle
QUOTE(Jason @ Feb 20 2008, 11:00 PM) *
To throw some fuel on this fire, check out the "Re-dice Displacements" rendering property than Mantra can accept. At the cost of some speed (depending on your Shading Quality settings), it will redice long displacements and allow you to make multiple non-linear displacements. It results in your displacement shader needing to be run several times to determine displacements, but the result can be very interesting. Check it out:)

wicked3d, you might benefit from turning up your Shading Quality on your object to something like 3 or so.

eetu, cool renders!




Wow Jason! Thanks a lot...That made a huge difference.
I am going to do some looking in to the re-dice.


Thanks for the tip!

~Ilan
zoki
hi
nice challenge
I love displ in mantra and rm smile.gif
here are some of my pics for a start
Click to view attachment
Click to view attachment
Click to view attachment
Jason
QUOTE(zoki @ Feb 22 2008, 02:31 AM) *
hi
nice challenge
I love displ in mantra and rm smile.gif
here are some of my pics for a start
Click to view attachment
Click to view attachment
Click to view attachment


Beautiful!
Keep em coming!!
pbowmar
Now _these_ are what should be on the splash screen!
paul
QUOTE(pbowmar @ Feb 25 2008, 08:43 AM) *
Now _these_ are what should be on the splash screen!


yeah - lovely work guys! also agree with peter - lets have dynamic splash (as an option of course) with the best render submitted to sesi changing every 6 months...!
wick3dParticle
QUOTE(zoki @ Feb 22 2008, 02:31 AM) *
hi
nice challenge
I love displ in mantra and rm smile.gif
here are some of my pics for a start
Click to view attachment
Click to view attachment
Click to view attachment


Hey Zoki,
How did you get such great control over the direction and size of the displacement? Also ur shader is very nice! Is there any way you can teach the new guy here how to get those nice reflections?

Thanks,

Ilan
zoki
hi
thanks for nice feedback
shader is the same as in eetu's file
iam shifting normal direction with point sop expression , you can also comb them if u want
for base displacement-hexagons I am using custom map i made quickly in PS.
It is blended with noise function
As for renders my big inspiration is at the moment stop motion animation from quay brothers
http://www.youtube.com/watch?v=l7ppwV-2a40...feature=related
something like this i would like to do in 3d/2d houdini project
z
rdg
I still don't understand why my crystals got those grooves.






[click images for full size]

Georg
old school
Aliasing! You are actually seeing the pixels in your displacement shader plus the discrete displacement steps in the 8bits of info you are working with. You can see this very clearly in the large image. It looks like lots of little building blocks.

You need to increase the resolution of your displacement map.
As well, at these scales and resolution, you will want to make sure that your displacement map is at least 16 bit and that the color range spans the full image range.
Marc
QUOTE(old school @ Feb 27 2008, 09:44 AM) *
You need to increase the resolution of your displacement map.


Or not, 'cause it looks cool like that! smile.gif.
rdg
QUOTE(Marc @ Feb 27 2008, 06:52 PM) *
Or not, 'cause it looks cool like that! smile.gif.


Other people render such stuff smile.gif

But how large is large? I tried 4096x4096 but it didn't make much difference - if any.
stevenong
Hey rdg,

Did you convert the displacement map into .rat? After converting into .rat, you can use the Map Filter Type and Width to soften the map. I'm referring to the Simple Displace material.

Cheers!
steven
zoki
hi
great renders georg
for displacement it is better to use 16bit images and then convert them to rat.
for subtle displ. effects most of the time 8bit is not enough.
but as marc said it is cool like this also
maybe if you manage to get them to twist around axis upward it might look like real crystal growth- remember crystal cave in superman?
z
rdg
QUOTE(zoki @ Feb 27 2008, 08:20 PM) *
great renders


your's look like even smaller structures - very organized - cool.

I guess twisting displacements is not trivial task.
I changed the shader to blend between two normalsets: [0,1,0] for the floor and a noise where the crystals grow.
It's no twisting and the noise needs to be chosen carefully wink.gif



I also rewired the noise mask of the shader, so the noise just affects the ground. I am not sure if this was really necessary.
If I got it right the noise mask originally scales after the noise is added to the displacement.

I tried to recreate the last images with scale in mind - almost impossible - guess it was luck.
Last time even a 10000x10000 map had aliasing artifacts - rat or no rat did made no difference.
The new scale made it almost impossible to get the lovely bricks - thank god there is a quantizeCOP.

Click to view attachment

Georg
jason_slab
hey

here's one of my attempts, i'm using the AXIS_SSS shader smile.gif i did some CC in photoshop.


i'll upload the hip tmrw if anyone wants to look at it

jason
old school
QUOTE
I tried 4096x4096 but it didn't make much difference - if any

It's not so much the resolution but the bit depth of the image as I mentioned in the previous post. I bet if you inspect the image it will be an 8 bit float image. If it is 16 or 32 bit then inspect closer to see that the color values aren't in 8 bit steps. I bet they are.

Pushing pixels around to such great extents means purposely carving it with values in image maps. Working with 8 bits is like having a transform sop without any floating point values. Very discrete. If it's purposeful and understood, then you can control it even more. Clamping values in to 4 bit steps should get even chunkier with more discrete steps. smile.gif Run the image through a lossy converter. Heavy Jpeg compression followed by heavy posterization filter at 8 bits should do wonders as well. wink.gif

These images are stunning btw.
rdg
QUOTE
SSS shader


jason - the images look amazing!
Should give this shader a second try - I wasn't able to install it the first time.


oldschool: they were 8bit - you're right.
Jason
QUOTE(jason_slab @ Mar 3 2008, 07:30 AM) *
hey

here's one of my attempts, i'm using the AXIS_SSS shader smile.gif i did some CC in photoshop.


i'll upload the hip tmrw if anyone wants to look at it

jason



That looks damn nice! Well done. How are you scattering/displacing the point cloud for the SSS? Do you know about pcwrite() and Mantra's capability to disable hiding? (vm_hidden). Using these two things, you can scatter points on highly displaced surfaces and get the results you expect.
sibarrick
Oh yeah, those are really nice, get them into the gallery pronto! smile.gif
Marc
QUOTE(Jason @ Mar 3 2008, 09:33 AM) *
That looks damn nice! Well done. How are you scattering/displacing the point cloud for the SSS? Do you know about pcwrite() and Mantra's capability to disable hiding? (vm_hidden). Using these two things, you can scatter points on highly displaced surfaces and get the results you expect.


I don't know about them... explain yourself. Or post to a link wherein it is explained smile.gif.

P.S. Very nice Jason....er other Jason.
zasid
Jason this is some real cool work man I feel like I am in a salt Mine Thanks for taking me there M waiting for your hip file b.c i want to study how did u make use of that AXIS SSS shader as I have not been able to get it to work properly let see what I learn from you file.

regards,

Zohaib Ahsan
jason_slab
hey

thx guys!

jason I: i'm not generating point cloud (pcwrite)at all smile.gif, it seems to work without one, well as far as my needs go..

i picked up a problem in the shadow map, it seems to be creating a square(the darker area around the sphere in the first renders). for now i'm not worried about it, it kinda makes the image look more interesting!

i've attached the hip, it's a fairly simple scene, prob a bit messy smile.gif

cam angle 2, original rendered colour with a bit of levels in photoshop, bright SESI orange!!


jason
slade
Awesome work Jason!!!
aracid
nice dude smile.gif
Mario Marengo
QUOTE(Marc @ Mar 3 2008, 04:16 PM) *
I don't know about them... explain yourself. Or post to a link wherein it is explained smile.gif.


The VEX function pcwrite() lets you write out a point cloud file from inside a shader. This means that you can save out a dense cloud (up to all the shading points if you wish) complete with displacements and any other attributes (like area, irradiance, etc) in a separate shading pass, then use this cloud as input to, say, an SSS shader. This is a GoodThing™ because you then no longer need to generate these clouds in SOPs, where you'd have to go to some trouble to account for displacements, and where you can't gather irradiance and other shader-time-only quantities.

Search the on-line docs for "pcwrite" -- there's even an example shader to show usage. It can also be found here.

When writing the cloud you want to write one for the entire object, not just the chunk facing camera, so you want to make sure Mantra doesn't hide any back-facing or non-visible parts of your object -- i.e: you want to run your pcwrite() pass for the whole surface. That's what the vm_hidden (or renderer:hidden in the IFD) option is for: if set to "true" (the default), mantra will not compute geometry that's not visible from camera, whereas if set to "false", it will run everywhere. So, when doing a pcwrite() pass on some object, you want to set this option to "false".

Brief documentation on vm_hidden can be found in the "Mantra 9.1 rendering properties" page of the on-line help, or here.

HTH.

P.S: The management takes no responsibility for damages caused from using AXYZ:SSS in Houdini 9.0 and above, as it was written for Houdini8.0 and has not been adapted for v9.x. smile.gif Instead, we recommend you use the H9.x versions of the same functions, which are now bundled in the distribution (they've been reincarnated as the VOPs "SSS Single" and "SSS Multi").

P.P.S: Using AXYZ:SSS (or the H9-bundled equivalent) without a pointcloud, results in single-scattering only, which in some cases (such as in Jason's image) can be just-fine-thank-you-very-much. smile.gif
The H9 equivalent would be using the "SSS Single" VOP, and ignoring the "SSS Multi" VOP.

P.P.P.S: er... that's "AXYZ", not "AXIS" laugh.gif
Marc
awesome, thanks Mario. I'm sure it's all been posted elsewhere before, since it seems alarmingly familiar. Thanks for encouraging my laziness wink.gif.
zasid
Question for Jason.

Hi Jason.

Why are you using VOP Displament node with that expression on it .I didnt get it is there and alternative for this .I tried vex dispalcement with the displacement map but it doesn't seems to work .Can you shed some more lite on it Thanks .

regards,

Zohaib Ahsan
rob
Eetu :- In the mantra output Rop there is a property page with your name on. Whats this for and how do you add them .

regards Rob
kodiak
QUOTE(Mario Marengo @ Mar 4 2008, 07:43 AM) *
P.P.P.S: er... that's "AXYZ", not "AXIS" laugh.gif


Haha..Mario, just so that you know, we deliberately switched to Houdini at AXIS (Glasgow). Just for the sake of confusing the hell out of the community laugh.gif
eetu
QUOTE(rob @ Mar 9 2008, 06:57 AM) *
Eetu :- In the mantra output Rop there is a property page with your name on. Whats this for and how do you add them .


You can add your own generic parameters as well as tabs from under the gear icon on the top right of the parameters panel. These are a generalized version of the spare parameters of old.

I dropped in a tab of my own to test different rendering parameters that are not exposed by default. These can be added from under the same gear icon.

I'm still a bit confused about where each of the rendering parameters belong, in the object container or in the rop or somewhere else..

BTW, beautiful renders everybody!

Keep 'em coming (and don't forget the .hips :)

eetu.
SYmek
QUOTE(Mario Marengo @ Mar 4 2008, 04:43 PM) *
P.P.P.S: er... that's "AXYZ", not "AXIS" laugh.gif

Actually there is an AXIS_SSS shader and it works with raytrace/no_point_cloud mode so I thought Jason was refering to that one...
http://www.sidefx.com/exchange/info.php?fi...p;versionid=464

doesn't matter. The more the better.
rob
This is a great thread indeed. Learning lots and also poking around Lots . On the geometry node I added a displacement bound value and added some interesting properties on dicing which I have just been trying to find out about.There were more I could add but not got round to that .... Click to view attachment
jason_slab
QUOTE(zasid @ Mar 7 2008, 11:00 PM) *
Question for Jason.

Hi Jason.

Why are you using VOP Displament node with that expression on it .I didnt get it is there and alternative for this .I tried vex dispalcement with the displacement map but it doesn't seems to work .Can you shed some more lite on it Thanks .

regards,

Zohaib Ahsan


hey check ur pm smile.gif
j
michael
@rob
"That's no moon!"
Mario Marengo
QUOTE(kodiak @ Mar 9 2008, 01:25 AM) *
Haha..Mario, just so that you know, we deliberately switched to Houdini at AXIS (Glasgow). Just for the sake of confusing the hell out of the community laugh.gif


Hehehe.... oooops! Sorry everyone. I hadn't downloaded the hipfile... I just assumed.
My bad. Apologies to our friends from Glasgow!

Cheers.
rob
Well I am simply stunned to see how good Mantra is at displacement. This little ole rock is using noise to push points along their normals and then a displacment shader on top for added detail , such a breeze to do compared to MR and Maya
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.