Displacement trickery.
Displacement trickery.
Hey y'all!
I've been linked by a friend with something very interesting and as it happens I pondered over it a few times in the past.
Have a look at this:
The original thread is this:
http://forums.newtek.com/showthread.php ... n-Progress
Now the 10 points question: is it possible to do something like this in XSI through the power of ICE (I'm assuming)? Note that the way it's acomplished in Lightwave is by using a "compound" not at the shader level. Looking back at how I was trying to blend displacement maps with a mix shader when I tried to do something similar in XSI (a while back not very recently ), a wave of shameful silliness engulfs me.
I hope this is the right section to post something like this. Now, let the ICE brainiacs talk!
I've been linked by a friend with something very interesting and as it happens I pondered over it a few times in the past.
Have a look at this:
The original thread is this:
http://forums.newtek.com/showthread.php ... n-Progress
Now the 10 points question: is it possible to do something like this in XSI through the power of ICE (I'm assuming)? Note that the way it's acomplished in Lightwave is by using a "compound" not at the shader level. Looking back at how I was trying to blend displacement maps with a mix shader when I tried to do something similar in XSI (a while back not very recently ), a wave of shameful silliness engulfs me.
I hope this is the right section to post something like this. Now, let the ICE brainiacs talk!
The society that separates its scholars from its warriors will have its thinking done by cowards and its fighting done by fools.
-Thucydides
-Thucydides
Re: Displacement trickery.
Any deformation and displacement you see done with lightwave can be achieved far far easier and elegantly with xsi and ICE. When I see Chris's work in LW I can't help but imagine what he'd do with some software that he isn't constantly fighting.
What specifically do you want to know? The tension map aspect is easy to make in ICE and you can feed the resulting scalar in to the render tree if you so wish.
What specifically do you want to know? The tension map aspect is easy to make in ICE and you can feed the resulting scalar in to the render tree if you so wish.
Re: Displacement trickery.
I was hoping Paul would come take a look.
Yeah, I was sure XSI could do this much easier (by itself ).
The tension map - what is it actually and what is it driven by? I' assuming it's a weightmap which changes values based on... tension. But how do you define that tension?
Then there's the matter of having a # of disp. maps and how you mix/drive them by the weightmap/s but we'll cross that bridge when we get there.
Yeah, I was sure XSI could do this much easier (by itself ).
The tension map - what is it actually and what is it driven by? I' assuming it's a weightmap which changes values based on... tension. But how do you define that tension?
Then there's the matter of having a # of disp. maps and how you mix/drive them by the weightmap/s but we'll cross that bridge when we get there.
The society that separates its scholars from its warriors will have its thinking done by cowards and its fighting done by fools.
-Thucydides
-Thucydides
Re: Displacement trickery.
You have a duplicate mesh in neutral face pose. Measure the edge lengths. Compare them to the deforming version and use the difference to drive a value which you feed into whatever.
I'll try and do a tutorial in the morning.
I'll try and do a tutorial in the morning.
Re: Displacement trickery.
I didn't get an "aha!" moment since I'm in the dark when in ICE and I'd have to roll up my sleeves to armpits before I could put in practice what you said, therefore I hope you do find the time and mood to do the tutorial.Pooby wrote:You have a duplicate mesh in neutral face pose. Measure the edge lengths. Compare them to the deforming version and use the difference to drive a value which you feed into whatever.
I'll try and do a tutorial in the morning.
Thanks for listening.
The society that separates its scholars from its warriors will have its thinking done by cowards and its fighting done by fools.
-Thucydides
-Thucydides
Re: Displacement trickery.
Ha, my 'aha' moment here was that I'd have done the same! I must be getting just as good as Paul at ICE
(never mind that I'd have taken half the day to get it done, fumbling around for the right nodes etc but still)
Anyway, I saw that video too last week and wondered what Chris had been doing in LW to get it working like that, thanks for the link to the newtek thread. Is it all tensionmaps driving morphs?
(never mind that I'd have taken half the day to get it done, fumbling around for the right nodes etc but still)
Anyway, I saw that video too last week and wondered what Chris had been doing in LW to get it working like that, thanks for the link to the newtek thread. Is it all tensionmaps driving morphs?
Re: Displacement trickery.
Thanks a bunch Paul!
Will take a look soon and follow up with anything I might have unclear.
Edit: Watched it, very useful. I have lots of unknowns at the moment but I won't bother anyone for the moment with any questions that could be a case of RTFM.
The society that separates its scholars from its warriors will have its thinking done by cowards and its fighting done by fools.
-Thucydides
-Thucydides
Re: Displacement trickery.
This looks very similar to what Kevin Margo ( Blur ) did using Facerobot and custom tools in order to trigger the displacement deformations
http://2009.kevinmargo.com/behind-the-scenes/
Second post, look at Dante's Inferno
He's "rendermapping" an animated mask of weighting and CAV which trigger the displacement.
You can do that with Facerobot using the Game Export pipeline, but unfortunately I haven't figured out how to bake the animated mask from there, but using Paul's tutorial ( thanks for sharing! ) that should be achievable easily using ICE to get the data and bake it to a texture map.
EDIT: Just watched the Making a Displacement map writer made by Paul, Pixel Particles looks like is the way to go!
http://2009.kevinmargo.com/behind-the-scenes/
Second post, look at Dante's Inferno
He's "rendermapping" an animated mask of weighting and CAV which trigger the displacement.
You can do that with Facerobot using the Game Export pipeline, but unfortunately I haven't figured out how to bake the animated mask from there, but using Paul's tutorial ( thanks for sharing! ) that should be achievable easily using ICE to get the data and bake it to a texture map.
EDIT: Just watched the Making a Displacement map writer made by Paul, Pixel Particles looks like is the way to go!
Re: Displacement trickery.
http://www.si-community.com/community/viewtopic.php?f=12&t=4000
Re: Displacement trickery.
Did you do the example you are prersenting here with the skin wrinkles? If yes, how do you get the wrinkles from the stress computation? Are they prepainted and only their influence is changing or are they dynamically generated?
Cheers!
Cheers!
Re: Displacement trickery.
I'll show my demo in 1-2 weeks, not because its complicated but I have too much to do right nowPancho wrote:Did you do the example you are prersenting here with the skin wrinkles? If yes, how do you get the wrinkles from the stress computation? Are they prepainted and only their influence is changing or are they dynamically generated?
Cheers!
Anyway to get the wrinkles showing while the character makes expressions what you need to do is use a static mesh and an animated mesh, then follow the tutorial Paul Smith did on the tension map.
Then, if you take a look at the displacement map tutorial you notice that Paul uses the pixel particles plugins, which allows you to write an animated map to disk.
Basically you need to bake the animated weightmap done with the tension map tutorial, then import that into the render tree.
What I'm doing is to create a "static" normal map ( face not moving ) and an "expression" normal map ( wrinkles on the eyes, forhead... ) and the animated mask need to be blended ( add ) with the normal map, and the animated mask you baked are driving the white areas of the masked animated map, allowing the "expression" mask to kick in and get the wrinkles showing
Hope its clear ;)
Thinking about not using pixel particles and not baking the weightmap I'm looking if there is a way to drive the blend between the normal maps using the arrays values in ICE, but with the mask you have a smooth and good result...needs some testing but I think that could be done easily ;)
Inside the Unreal Development Kit I'm using a different technique that is doing the same thing, but with the animated mask there is too mumch memory consumption, so I ended up using an alternative technique which works great...but sorry, I'm not sharing that one
Re: Displacement trickery.
https://www.youtube.com/watch?v=os61y6p9MvI
Quick test.
This is based on the Tension map technique, I've created the same technique using the pixel particle plugin, but unfortunately seems that I'm not able to bake out the images from ice, it render just one single image, even if I try to run the animation it doesn't render out the image sequence
As you can see, using this technique, the area surrounding the mouth are basically not considered due to the large distance between the static mesh and the animated mesh.
Anyway I used the game export tool to see the normal maps in realtime, unfortunately the OGL shader looks like ass, so I'll export everything out into UE4 to show then in realtime
Quick test.
This is based on the Tension map technique, I've created the same technique using the pixel particle plugin, but unfortunately seems that I'm not able to bake out the images from ice, it render just one single image, even if I try to run the animation it doesn't render out the image sequence
As you can see, using this technique, the area surrounding the mouth are basically not considered due to the large distance between the static mesh and the animated mesh.
Anyway I used the game export tool to see the normal maps in realtime, unfortunately the OGL shader looks like ass, so I'll export everything out into UE4 to show then in realtime
Re: Displacement trickery.
THen you made a mistake with your ICE tree. The distance between the two meshes never plays a role. It's the realtive distance of the neighbouring points which counts, compared between both meshes. You somehow measure the distance between both meshes. At least that's what I guess.
Re: R: Displacement trickery.
The distance is not base on the mesh distance but by the point and neighbourghs so the ice tree should be correct (quite the same as shown in the videotutorial)
I think that the main problem is the actual distance of the points,where.on the forhead is very small and on the mouth area is quite big,so I guess I have to make clusters or try to separate the two main areas
I get pixel particles to write the texture to disk,but it needs some tweakings
I think that the main problem is the actual distance of the points,where.on the forhead is very small and on the mouth area is quite big,so I guess I have to make clusters or try to separate the two main areas
I get pixel particles to write the texture to disk,but it needs some tweakings
Re: Displacement trickery.
I see. Then you could animate the most extreme poses and store all the stretching values per point in an array (each point one array). On your last frame you could get the maximum value in the array and write it into a weight map. Freeze the weight map. Afterwards this weight map could serve in a rescale compound as the maximum value. The effect could be to get something like a "normalized" stretch value for each point.
Who is online
Users browsing this forum: No registered users and 31 guests