Screen-space human skin implemented on V-Ray for 3ds Max that reduce render time 90%

The title says it all,

This guy : http://tw.linkedin.com/pub/chang-hung-liang/34/115/384

make it, I would be curious to see ant try what it can achieve!

Created a realistic and fast human skin shader featuring screen-space shading which reduces rendering time by 90% while preserving the same rendering quality. C++, 3ds Max SDK, V-Ray SDK, DirectX.

Vlado, did you were aware of this? If yes, give us some feedback, can you implement it,etc?

And if you never heard about, can you ask him to test it!? sounds really cool!
the only image we see is this one on his website: http://elianglab.appspot.com/

Jeez.. 90% faster… if it get the same quality (as he says) or even better, it’s more then a deal to me!

And to add in the same post, maybe you did not saw this : http://www.battlefleet.net/Hair-s2003.pdf
http://www.battlefleet.net/BRDF-s2003.pdf

Even if it’s not recent stuff, it’s still ahead of what we can get.
Is it possible to make a cloth shader like this for us vlado? or something similir, a shader dedicated for doing fabrics?

And those 3d hairs are the best rendered I never seen, the shader is ultra realistic! http://forums.luxology.com/discussion/topic.aspx?id=61780 it’s not a Modo hair shader.. it’s from an no officiel renderer, still not on sale..

No, I wasn’t aware of the particular V-Ray shader, but I had read the GPU skin article. You could perhaps contact the author and ask him to post more info.

And to add in the same post, maybe you did not saw this : http://www.battlefleet.net/Hair-s2003.pdf http://www.battlefleet.net/BRDF-s2003.pdf
Even if it’s not recent stuff, it’s still ahead of what we can get.I have seen them; for the hair results, you can actually get very good results now with V-Ray.

Is it possible to make a cloth shader like this for us vlado? or something similir, a shader dedicated for doing fabrics?This is a scanned shader that can do only one particular kind of fabric (the one that was scanned) without artistic control of any kind. We do have the technology to scan and render many real-world materials in V-Ray and they do look amazingly realistic, however this is not available for general use yet and I don’t know when it will be. On the other hand, we do plan a simplified cloth shader for general use.

And those 3d hairs are the best rendered I never seen, the shader is ultra realistic! http://forums.luxology.com/discussion/topic.aspx?id=61780 it’s not a Modo hair shader.. it’s from an no officiel renderer, still not on sale..They are indeed very realistic…

Best regards,
Vlado

Hi Vlado,

thank’s for the answer.

I think it’s better if you ask more info about his skin shader.. I guess he will not answer me, but you he will for sure. It may be interesting, if it work that well he says, it would be really cool… 90 % faster..

About the hair shader of Vray, it seems to be just specular on the hairs, no reflection right? Is it possible to have a gradient map that we can put in the specular slot or reflection slot that will work along the hairs depending of witch angle the light hit the hairs, it will react with different colors based on that angle of the hair? (If you don’t understand I can make an image to explain you, since I don’t feel it’s a clean enought explanation). that way we can make hairs with different shading color in the reflection.

----This is a scanned shader that can do only one particular kind of fabric (the one that was scanned) without artistic control of any kind. We do have the technology to scan and render many real-world materials in V-Ray and they do look amazingly realistic, however this is not available for general use yet and I don’t know when it will be. On the other hand, we do plan a simplified cloth shader for general use.----

Ok, wish we had this real world material! you can put online a material library of those already done :smile: plus adding that cloth shader and the simplified one, would be really awesome!

All the best,

Luc

by the way, it’s the website of those who rendered the realistic hairs : http://gfar.de/hair\_simulation.php

I didn’t think that skin shader looked that good. Maybe need to see more lighting tests.

Yeah it doen’t look ace, but maybe it’s the model and the set up.. when the set up is bad, any shader do not look good.
We need to try it to be sure :slight_smile: What about that Vlado ?

You should search for arnold’s skin shader. While not without its own problems its quite a nice shader and also is fast.

I know about Arnold skin shader don’t worry, ,it’s nice one of course, with Vray we get almost as good ( without the greenish effect..) but it’s much more slow in Vray, so if the skin shader of that guy can be 90% and has at least as good looking, it would be ace ot have it. If it’s less realistic, forget it, I prefer to wait longer and get more realistic result.

So what if we simply make the V-Ray shader faster?

Best regards,
Vlado

The ultimate words of power!

Yes vray skin faster would be ace, but we also need : Opacity map pleaseeeee! I’m sick to have to blend it just to make an opacity..and it has problems doing it this ways.. complicated for nothing.. and we need full control over reflection and BACK SCATTERING plz. And if you can remove the bug of greenish.. the more we put a saturated red in the sss scatter color, the more the geenish effect appears ( and of course the more you increase the radius..) Arnold don’t do that.. so he has the edge on Vray here. Other then that (and the back scatter), Vray skin is very nice, one of the best.

Yes, this is on the “to do” list. Out of curiosity, what do you need it for?

And if you can remove the bug of greenish.. the more we put a saturated red in the sss scatter color, the more the geenish effect appears ( and of course the more you increase the radius..) Ah, yes. I’ve been looking into this more carefully recently and I found out that the “phase function” parameter can have a drastic effect on this. The default value is 0.8 and it does tend to give the material a more watery and diluted appearance. On the other hand, a value like 0.0 behave more like you would expect. I don’t know how that relates to the respective values in Arnold, but my guess is that changing the phase function of its shader would produce similar results.

Best regards,
Vlado




I use alpha for the eyes, always, (like most and most peoples do too :wink: ) and I may use it on other parts of a character too(or anything else..). So I hope in the next update you will add it, will be really really handfull :slight_smile: and a lot less pain in the a$$ to set up haha.

For the green effect, I just tried to put it at (the phase function) 0, but I founded that it gaved me no difference, I don’t know how you check it in your scene.. since it’s like a luminous dot, can I share you a scene to show you the effect ? Ideally it will be on a realistic head and with texture on it. that’s the best way to test a skin shader and see if it look realistic or not,what to upgrade etc.

And also having a lot of control on the reflection in the mtl is very important, you may want to create a fresnel effect parametrable specifically designed for simulating the reflections of the skin,etc

Sure, the more scenes the merrier :slight_smile:

Best regards,
Vlado

Hi vlado,

Please read all I wrote carefully to understand what I mean :slight_smile:
Here I did 2 montage images, trying to explain better all I said earlier, hope it help :slight_smile: And give me your email so I can send you the file so you can make test on these instead.

Also, we need control over the back scatter Vlado, plz, he’s really not powerfull enought, the effect is too much subtil.. it’s only not so bad when we have only one light source, and that is on the back of the head, and strong. Other wise, we have to put the back light SUPER strong to feel it a little bit.. Mentalray does the backscatter really well (the only thing the shader do well though ) so you can inspire yourself on it if you want, or better, on true life reference :slight_smile:

Let me know if you have any question about skin shading I will be very glad to help you if I can :slight_smile:

Regards

p.s. Just to add, you should program the shader that, when an angle is concave from let’s say 120 degrees and more, the bouncing between the 2 surfaces diminish linearly till let’s say 180 degrees, there it should be one bounce or something like that, you get the idea, so that way we will not have that red line of sss bouncing around the wrinkles,eyes,etc.


My email is vlado@chaosgroup.com, but if this is the model that you are experimenting with, I think I can get it myself online…

Also, the relation between the sss color and the scatter color is not that of interpolation; it is way more complicated physics behind them.

Since you said I should get inspired by true life, keep in mind that it has no “back scatter” control :slight_smile: We have to implement brute force sss at some point (it would handle the thin wrinkles much better, as the sss effect can jump between surfaces), and it needs to match the fast sss shader overall, so I’m somewhat forced to stick to physically correct things. So, if you want parts of the mesh to react stronger to back light (like the ears), you have to do what happens in real-life - map the scatter radius and increase it in those areas.

Best regards,
Vlado

Almost forgot; about the harsh shadows that you are getting when you set the phase function to 0 - these are due to the single scattering approximation; if that bothers you, just set it to “None” (or perhaps raytraced).

Best regards,
Vlado

Hi Vlado,

thanks for you answer.

When I mean get inspired by real life references, I mean, for the look only. You know better then me the maths behind the shader,etc. I just try to help with what I see can be improved, it’s you who knows how to make the changes in the shader to reflect that. Brute force sss seems good :smile: but maybe it gonna be slow(slower)?

I tried for the ears to use a map for scatter radius… ok the ears was looking not too bad when backlighted.. but in normal lighting, they seems to be in wax! because the radius was too big on them… Is that complicated to make the backscatter control like the one in Mentalray ?
The only way I got a not too bad effect while keeping it correct in other lighting, was to blend it with a Vraymat and using refraction with fog parameters.. but it only work with direct light, with indirect light the effect is not as good as it should be.

I tried what you said here : about the harsh shadows that you are getting when you set the phase function to 0 - these are due to the single scattering approximation; if that bothers you, just set it to “None” (or perhaps raytraced).

And then it gave me the exact same result has if I was not putting the phase function to 0 etc. I got the same result as the phase function at 0.9 and the approximation to single… with the greenish bug… so is there something that is breaked in the sahder? Try it yourself you will see, it gave the exact same result :S There is no workaround to do to not get the greenish bug… the only way to alter it, is to use a color scatter close to your sss color and use a map for the radius, where you have thin area like wrinkles and eyelids,etc and map those area a little bit darker…

The file is easy to find on the net ( but this model head is not the best to test a skin shader, too soft surface, better to have a realistic old man head with wrinkles..) , but you won’t have my set up though… I custom made glossy map and reflection map.. but anyway, don’t really need them, it’s more the SSS were talking about here but sure adding control of the `soft` fresnel reflection would be awesome instead of having to blend it.. and opacity map pleaseee :slight_smile: would take you 5 min to incorporate it and would be awesome for all of us :wink:

It’s really important to upgrade constantly as much as you can the skin shader, it’s one of the big things that made peoples switch to Vray :wink: like me haha. I was using Mr ONLY because he had a skin shader… so when Vray got a better one.. the switch was instantly lol like a lot of peoples are doing since 2 years..(and I knows studios that are testing it right now to see if the skin shader suit their needs ) since they saw that now we can make good looking skin in Vray.. it’s a VERY important factor. So if you can get the best skin shader out there.. the more customer and big studio you will attract.. now you got blur, since they saw that Vray had a nice skin shader but more will I believe :slight_smile: Vray is really cool :slight_smile: but don’t do like Mentalray and taking 5 years to upgrad shaders haha (they did a new sss2 with the latest Mental ray.. it’s better then the original..but it still have the same flaws.. looking plastic.. with some red in the shadows etc.. the bump suck, look like it’s not scattered by the sss,etc..)

The coolest thing about the SSS2 in Vray is the way it handle the front scatter (when you don’t have the greenish effect of course) we really feel the depth of the skin, and that is really cool! I think in that departement, Vray rules Arnold and all of them. but the other little bug make it more bad in some circumtansce, like low back scatter effect,greenish effect when scatter is a bit strong, reddish bounce of light,etc. So if you can correct these, I think you will have the best skin shader out there :slight_smile:

P.S edit : An other thing that is working really well in the shader, is the specular and the way the bump react with the specular and the sss, the bump is affected by the scatter wich make it well integrated togheter and flows naturally, like in true skin and.. it’s so simple to get the diffuse right :slight_smile: not like mr that you need 3 maps to get about the resutlt of your diffuse (while never really getting it exactly..) that in Vray sss2 work perfectly! the diffuse color are really well preserved and not diluted in the sss and also then displacement is not diluted.. in mr all the details goes out… so when upgrading the sahder, make sure these things are not broken along the way :wink: the good’s must keep as good as they are, just upgrading what need upgrad would be perfect :smile:

Hi Vlado,

me again,
I still think you should really look at this PDF closer : http://delivery.acm.org/10.1145/1970000/1964951/a56-d\_eon.pdf?ip=216.113.24.1&acc=AUTHOR-IZED&CFID=90941046&CFTOKEN=21747519&\_\_acm\_\_=1340395284\_54f754fdf1a95cb23733106054c48f08

It has solve the greenish problem of Vray and the boucing redish bug of sss in Vray sss2. Vray use a dipole I may guess because it look quite ressembling to the reference image on the left in the exemple… and on the right is the new Quantized-Diffusion method, wich is more accurate, you can tell already by seeing the lips, they look less waxy and the shadow are much better, I’m pretty sure this model work perfectly with wrinkles too ( no red bug in thin wrinkles..)

If I was you vlado, I would let the sss2 as is ( just adding opacity map ) since it’s more of a multi purpose SSS shader and create a NEW TRUE skin shader that is dedicated really for doing skin and I would based it on this PDF, on this Quantized-Diffusion method. That would be simpler for you I guess and better for us :smile: I cannot force you to do that but I speak in the name’s of many, let’s say that like this haha.

It’s interesting to read in the paper that they said this : The new diffusion solution accurately decouples single and multiple scattering. We then derive a novel, analytic, extended-source solution to the multilayer searchlight problem by quantizing the diffusion Green’s function.

I don’t know if there talking about the same green as I refer that I hate in sss2.. but sound’s like it is… so with this new shader you get rid of it.. as you can cleary see here in the rendering of this alien : http://www.eugenedeon.com/octoguyLarge.jpg from this webpage : http://www.eugenedeon.com/qd.html you can cleary see that, even with a BIG RADIUS, the greenish effect is not there, instead it’s yellowish, as I told you earlier.. and that is way much more accurate.

This shader combined to the superb GI quality of Vray will be the killer combo for realistic rendering of skin, believe me :smile: It will put Arnold and the other’s to the stone age in rendering realistic character haha :smile: In fact I think it will be so realistic that it will be hard to improve it again more. And lot’s of studios will use Vray for it’s ability to not just do archi viz (wich everybody know Vray rock at it), but hyper realistic rendering of characters,creatures, etc( don’t get me wrong here,sss2 is pretty cool, but it can be cooler and need to make it the top skin shader) , it’s a very big and important aspec for the big studios ( so you won’t just have mainly Arch viz client, but also VFX studios,etc ), even more for smaller one too.. since they don’t all have the budget to make their own shader.

Some other references on it : http://dl.acm.org/citation.cfm?id=1964951&bnc=1

You the man Vlado, it’s up to you to do a dedicated skin shader using this Quantized-Diffusion method, but in the end if you do that, your customers will be very happy.. and so much more to come :slight_smile: I try to help as I can and if you need me to test and give my input about a new skin shader (or upgraded sss2 ) let me know and I’ll be glad to give my artistic point of view on it while testing it. I have some models really realistic so it’s nice for testing the skin shader too.

All the best

I’ve read it in detail, yes. However, I would really rather fix the sss2. Since you seem perfectly happy with the Arnold shader, I’m sure we can make sss2 work for you as well :slight_smile: However if you have trouble controlling this relatively simple shader, then I can only imagine the trouble you’ll have to control the quantized diffusion shader unless you dedicate a lot of time on set up trials.

Best regards,
Vlado

Hi vlado,

I have no problem to set up the sss2, it’s pretty simple in fact ^^

What I mean, is we can’t get around some bugs or limitation of the shader itself, like the green effect etc.. no matter what you do.. you are limited to the shader..

Before using vray sss2, I was using mentalray one.. wich is way more complicated to use, I had generally at least 6 maps to 8… in Vray I have 4 , one diffuse, bump,(and displacement) spec and glossiness map. No need for more, maybe a scatter radius map to control some more it ..

Arnold skin shader is not perfect… as I had see, it do not scatter the bump with the sss,wich give it a harsh look.. a la Mr(for the bump) .. :S.. Vray does better here… as I said, in Arnold what is cool is the back scattering working better and no green effect in the front scatter.AND you can build your own,..that is amazing to me.. so you can customise it for your needs.. (but if you do the skin shader perfect, we don’t have to customise it haha) , other then that, I prefer vray sss2 :wink: and … Arnold is way much faster to render skin.. but not the rest lol (like GI haha) Vray skin is not so slow, but not so fast.. it became realllyy slow when I use scatter indirect light with GI… now that is slow.. can you make this faster? I try to avoid using GI with sss2 cause of that point, try to fake the gi with direct illumination.

Don’t bother with it, I can control very complicated shader, skin or not :wink: so if you have a Quantized-Diffusion shader ready for me to test it and show you what I got compared to the sss2 , let me know :smile: