Chaos Corona Forum

Chaos Corona for 3ds Max => [Max] General Discussion => Topic started by: gleelash on 2014-06-22, 07:56:24

Title: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: gleelash on 2014-06-22, 07:56:24
Hey guys, my first post.

About that custom BRDFs and GGX reflections, I gave it a go for Gold, since it may be trickier than non colored metals such as Platinum or Silver.

SUPER cool looking gold setup for V Ray. As you can see you need to overkill and blend 3 materials (or more) with different glossiness: 0.8 + 0.9 + 0.99. It's what I call the Grant Warwick BRDF (although he compiled it from others on forums, etc, all credit towards everybody, can't remember their names), I was not smart enough to create this method though I made something similar (yet crappier) years ago for Maxwell Render.
How does he do it?

1.Wikipedia Red + Green + Blue (see attachments.) Those gives us the wavelength of these colors. You can use min or max values, or equal them out. (for my gold I used max).

2.Then go to http://www.refractiveindex.info, plug that in with a 1/1000 modifier (nm units vs µm, so 450 becomes 0.45 in the Wavelength parameter of the website). Then select AU (GOLD) under BOOK ( I kept Rakic method ).

3.OK then scroll all the way down to REFLECTION CALCULATOR. Yeah it's a graph, only diff between it and max is that this one is from 0 to 1 up, 0 to 0.9 left-to-right. So I multiplied everything horizontally with 1.11111. Yes I am a freak. ONLY USE THE GREEN GRAPH.

 4.Use WARD not BLINN (better for metals). In your material reflection slot, use a FALL-OFF map, use the GREEN only graphs for the RED, GREEN and BLUE calculations. That will give you a custom RGB fall-off like in this picture. I tried to be as close to reality as I could, but please take everything with a grain of salt, don't over tweak it! Minute differences probably can't even be sensed. You got the values roughly to put in 3ds max, a 0.05 difference won't kill your production. Just remember the 1.111 multiplier horizontally since the website goes from 0 to 0.9 and max goes from 0 to 1. See below:

(http://i60.tinypic.com/11980w1.jpg)

5.Ok you created a base custom BRDF. To get it to GGX status, since it's only a WARD now, blend 2 to 4 materials together. 4 might be overkill unless your machine is really into computing power. Make a V Ray Blend - change only the glossiness (BEWARE: Fresnel IOR turned off, you DON'T need it, you got a custom Fall-off born from physical calculations). So a 0.8 + 0.9 + 0.99 3 way blend should do fine. I used this as blend map:

(http://i61.tinypic.com/2rfqxyu.jpg)

So the result is:

(http://i59.tinypic.com/mahu2o.jpg)
_______________________________________________________________________________________________________________________________________

BOOM. GGX super shader for gold. I apologise for using mister Warwick's renders but since my video card exploded my 4770k goes up to 95 degrees so I can't render, I will use his scene:
This is the comparison, this is why you want a GGX and not a simple WARD:
(http://i58.tinypic.com/11tr1as.jpg) (http://i59.tinypic.com/30rvh94.jpg)

6.I had slight problems recreating this with Corona, since I only got A6 literally 7-8 hours ago. But the script did translate to BLEND - 2 corona materials into a 2 way BLEND + another corona material. So I had all 3. So it looks like this:

(http://i62.tinypic.com/sl4aas.jpg)

Basically: BLEND-->BLEND-->Corona 1 glossiness minimum (still high, equivalent of V Ray's 0.8)
                                         -->Corona 2 glossiness medium  (still high, equivalent of V Ray's 0.9) 
                         -->Corona 3 glossiness medium  (still high, equivalent of V Ray's 0.99) 
So far so good, no problems, 3 gold materials with 3 different glossiness factors. Victory! But wait...

_______________________________________________________________________________________________________________________________________

What bummed me out:    

A. Can't turn off IOR. And it translated to IOR value of 999.999. That can't be right, since most specialised websites say IOR of Gold is 0.47. So yeah, minor tweaking. Copied a gold material presented on the forum for Corona with IOR of 100 (still can't be right...). So I need help here.

B. Reflection Color. I don't know why this is there. My custom RGB enabled Fall-off does a fantastic job, why do I need to add another color here? Feels a bit cheap and linear, when I put all that work for a calculated, really close to reality custom fall-off...  So I need help here.

C. For the blend map the falloff I made simply does not work.So I need help here.

Here are some screenshots of material previews so you can see what I'm saying here and maybe you can help me translate my bad-ass gold into corona:

1. Corona 3 way blend material: a.reflection level 0.95
                                                       glossiness 0.8
                                                       Fresnel IOR 4.7 and not 100 + Color + Fall-off RGB calculated above
                                                      b.reflection level 0.95
                                                       glossiness 0.9
                                                       Fresnel IOR 4.7 and not 100 + Color + Fall-off RGB calculated above
                                                      c.reflection level 0.95
                                                       glossiness 0.99
                                                       Fresnel IOR 4.7 and not 100 + Color + Fall-off RGB calculated above
2. Corona simple material: reflection level 0.95
                                           glossiness 0.8
                                           Fresnel IOR 100 + Color Black + Fall-off RGB calculated above     
3. Corona 3 way blend material: a.reflection level 0.95
                                                       glossiness 0.8
                                                       Fresnel IOR 100 + Color Balck + Fall-off RGB calculated above
                                                      b.reflection level 0.95
                                                       glossiness 0.9
                                                       Fresnel IOR 100 + Color Black + Fall-off RGB calculated above
                                                      c.reflection level 0.95
                                                       glossiness 0.99
                                                       Fresnel IOR 100 + Color Black + Fall-off RGB calculated above
4. Corona 2 way blend material: a.reflection level 0.95
                                                       glossiness 0.8
                                                       Fresnel IOR 100 + Color Yellow (as close as what my eyes tell me gold is)
                                                    b.reflection level 0.95
                                                       glossiness 0.99
                                                       Fresnel IOR 100 + Color Yellow (as close as what my eyes tell me gold is)

OK enough detailing, this is what they look like:
(http://i57.tinypic.com/2hg6yqh.jpg)

Off the bat:
Fresnel IOR can't be 1.47, it has to be as close to 100, but I feel is gets way too close for chrome so...I don't fancy it in my production. This fresnel IOR definately works way different than V Ray. But how much different?So I need help here.
Blending 3 different glossiness materials achieves absolutely nothing.2 and 4 look exactly the same. Except a longer rendering time.So I need help here.
A black color in the reflection lets my custom fall-off calculated map shade the reflections so yay! on that achievement.
A custom color in the reflection is very crappy when trying to produce real material shaders.

So you can use this custom fall-off calculated method in Corona Render A6, but still blending different gossiness materials results in nothing. So can't really mimic a custom GGX shader for materials, although the result is WAY BETTER in some ways compared to a simple WARD or BLINN. So you may not need to, although I grew accustomed to the level of control it offers.

I know this is a big ass post, I know at least some may find it confusing, but I know there people a lot smarter than me lurking on these nice forums, so help me put this together, so we can render unbiased REAL WORLD calculated METALS of ANY kind. I think this is important.

CONCLUSION:
That custom Falloff map that you can calculate on the website and recreate in 3ds max is really useful.
I am messing up something with my fresnel IOR or something, gold is no way near that close to chrome and my Camera IEV settings had to be dropped to -3 for this not to be nearly white renders.
I can't seem to blend 2-3 versions of the material to get that GGX flavored reflections, blending right now does nothing, all reflections are uniform which really pisses me off.
Here are some test renders, custom Falloff RGB calculated VS Simple Color in reflective slot, rest are the same: Fresnel IOR 100 / Level 0.95 / Glossiness 0.9:
(http://i58.tinypic.com/2s1u51w.jpg)

Let's ignite this conversation! And please message me if I posted in the wrong section, I just wanted to show how you can achieve a GGX style shader in V Ray then translate that level of control to Corona which for now I simply can't. We can figure this out!
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: rampally on 2014-06-22, 13:13:20
I think we all should ask for GGX shader in corona as its been implemented in vray3
so that  keymaster CAN and may be implement it in  beta version ?? or for final release ...........
any how i saw Grant Warwick  tuts i felt its another great achievement like when i found corona A5....i too have same question like you ..however solution will be GGX...so lets request GGX
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Ondra on 2014-06-22, 13:25:25
motivate me ;)

are they any comparisons showing some real difference, comparisons using anything more complex than one ball on one plane?
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: romullus on 2014-06-22, 13:39:36
There's a link from Juraj Talcik's post: http://www.shlyaev.com/rnd/37-cpp-category/54-ggx

https://forum.corona-renderer.com/index.php/topic,2782.msg20283.html#msg20283
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: lacilaci on 2014-06-22, 13:44:33
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-06-22, 14:02:17
Lol, dear god, I am glad to see these threads pop up :- ). Just yesterday night I told myself I will need write HUGE FUCKING BLOG why we want better shader, complex BRDF, layered speculars inside single materials, blended material, roughness affecting both diffuse and specularity or atleast complex IOR.
[rendering all those examples will give me headache probably...I wish someone talented could instead...but I really want this, like over9000 want this]

Yep, if Keymaster needs motivation, I will do so.

But frankly, Vray already has GGX in nightlies, countless of users have confirmed once starting to creating more complex materials, that this is the way to go.
I might test those two plugins from Sergey as well, for now for 3dsMax there are only GGX (Sergey's GGX has 'power' parameters for tail, Vray not yet), ABC (full peak/tail),
but he doesn't have time to convert the most impressive last one, ShiftedGammaDistribution which has all of above, plus 100 MERL Presets.

Almost every renderer has the same featureset now, or building towards it slowly. This is one thing that can mix the cards, bring back some new fun, and revolutionarize the workflow.
This should be much bigger priority imho than integrating bullshit from past.

When I have time I will show my examples of metals (layered metals such as Oxidized Blackneeded Steel,etc...), but in meantime I think Grant does awesome job (I have evolved the workflow a bit too though )
And of course...the above video !! Everybody throw some money on Sergey so he can port it to Vray for now atleast :- ) Or hire bit of his time so he can port them to Corona.
I mean come on, this stuff can definitely give brutal edge on competing renderers like nothing else can. It's already everywhere else ( Disney, Pixar, Unreal4,....).


Btw Gleash: What do you mean with the horizontal stretch ? If you refer to Refractive index, it goes from 0-90 angle of incidence, therefore it's ok to interpolate it identically between 0-1. Same stuff. Or maybe I don't understand you correctly.
I am surprised you mention regular blend doesn't work the same as VrayBlend. I will have to try mysel, did you put the fallof curve into mask slot ?
999 IOR in Corona should be equal to no-IOR in Vray. But I didn't try.
Using simple IOR (8-40) for Metals will always give shitty metals. It looked wrong to me eyes long before I've see Bertrand mix his metals 2 years ago (although he only eye-balled it, didn't give the scientific reason) and of course, Grant few months ago.
The difference can be from small, to drastic, the latter when material features quite strong "retro-grazing" reflection. So the curve (without doing the "Well, what random value will I put today into specular slot?") in reflective slot dealing with intensity from 0-90 angle is just superior. Chrome looks like Chrome, Gold looks like Gold.

Disney-PBS_BRDF white paper http://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf

Imho the best stuff on this. On page 9/10 is shows the correlation between albedo and specular in GGX/Roughness type of shader and the various curves fitted from MERL data.
Having their version of material would be a dream. What is funny it's like 90perc. identical to what I have in Unreal4 [metalness/roughness/GGX/base reflection]. If current realtime engines share the same model high-end
companies like Disney, MPC, ILM (all have PBR/PBS materials), yet we're still stuck with unlinked specular/glossy material harkening to prehistoric era.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: rampally on 2014-06-22, 17:15:42

companies like Disney, MPC, ILM (all have PBR/PBS materials), yet we're still stuck with unlinked specular/glossy material harkening to prehistoric era.
yes you are 100% correct Juraj
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: gleelash on 2014-06-22, 20:10:18

Btw Gleash: What do you mean with the horizontal stretch ? If you refer to Refractive index, it goes from 0-90 angle of incidence, therefore it's ok to interpolate it identically between 0-1. Same stuff. Or maybe I don't understand you correctly.
I am surprised you mention regular blend doesn't work the same as VrayBlend. I will have to try mysel, did you put the fallof curve into mask slot ?
999 IOR in Corona should be equal to no-IOR in Vray. But I didn't try.
Using simple IOR (8-40) for Metals will always give shitty metals. It looked wrong to me eyes long before I've see Bertrand mix his metals 2 years ago (although he only eye-balled it, didn't give the scientific reason) and of course, Grant few months ago.
The difference can be from small, to drastic, the latter when material features quite strong "retro-grazing" reflection. So the curve (without doing the "Well, what random value will I put today into specular slot?") in reflective slot dealing with intensity from 0-90 angle is just superior. Chrome looks like Chrome, Gold looks like Gold.

Yeah well like I said, mister Grant's method is great for result, bad for my CPU. Like I said mr. Talcik, I am not that great at this, I have been using V Ray for about 16-18 months, so a better method might be out there. Or buy the GGX kit, like people above stated. And since I'm a novice I didn't think mr. Warwick's method through so indeed I stretched the horizontal slides to be 0-1, didn't get that was a 0-90 degrees reference. Now I am left wondering what the result might look like.

3 materials in V Ray + different glossiness as stated in my post with the falloff map mentioned (need the blending to overlap shininess to create GGX and need it basically according to that curve, not everywhere, if that's a line not a curve then all we are doing is linear and whats the point, this curve blends the result of higher reflective angles). This is said curve:
(http://i61.tinypic.com/2rfqxyu.jpg)
But Keymaster, rendering those rings with GGX 3 way blend (to compare to simple) is literally overkill for my machine. Not only I have no GPU at the moment, as stated, my CPU goes to 96-98 when rendering. Yes, unfortunately, even in Corona. Need liquid cooling before I can do anything. I\ll definitely pop to a friend tomorrow to render some examples. I am willing to go to every length to get GGX for Corona implemented! It is that important!

I am happy to see I got some responses, from people I actually follow and whose body of work I respect so much. No names, you know who you are.

I WILL supply the any type of scene, as complex as Keymaster wants it, with this "calculated" fall-off 3 way blend gold and maybe some platinum or copper. 6 materials, 3 complex blends 3 simple for comparison. I JUST CAN'T render anything at the moment, so I apologize. Please message me if you want a scene with these materials, or to get my e-mail/facebook/skype for further info, if someone does not understand what the hell I kept on writing at 5:30 AM.

STILL my problem is: can't recreate that gold. OK no blending, but that fall-off seems nice. Useful. BUT still looks like chrome. I'll check mr. Talcik's post maybe I'm thick and I don't get his solution to it yet. I get stuck at that Fresnel IOR and the other field for diffuse. Tried using the fall-off as a map for Diffuse or Fractive (?) slots, but since I have no idea what those do...I'm still lost.

AN IMPORTANT NOTE to KEYMASTER: you removed the FAQ section explaining what every setting does, and I'm afraid my 3ds Max 2014 doesn't pop up anything so I am left blind. It's frustrating because I want to use Corona so badly it hurts. Someone please enlighten me how to get the pop up explanations while hovering in 3ds Max. Thank you.

Also please let me know how am I to bump up a metal shader's own color, since this Fresnel IOR business tends to create really dark spots on my renderings. I need to bump it's diffuse color to show, which is a bit of a hassle considering pure metals usually have 0 diffuse component, and since nature provided us with no such pureness, their diffuse component tends to be the amount of impurities it has, a very, very low fraction.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-06-22, 20:55:51
Hi Gleash, I didn't doubt you :- ) I didn't try to translate multiple blended materials with VrayBlend into nested material in Corona. I will do so as soon as I can ! Maybe it really doesn't work, which would be sort of odd.
I create all my materials in Grant's way since I follow him early and very much enjoy the results. I did it before too, blending metals, but not with additional curve to glossiness as he shown. Not scientific, but nifty !

Also weird that you get different energy for metals using 0 diffuse between Vray and Corona. I think I found it to be consistent but I didn't check.
Did you try comparing both unclamped ? Vray with Subpixel OFF and Corona with MSI 0 ? Just to see if you're not loosing some highlights.

But first, definitely use the full 0-1 spectrum :- ). At 90angle incidence, almost all of them (not all, some retrograzingly fall close to 0, very funny, like some fabrics,etc..) get there.

I sadly don't have much free time to test it, I am waiting for Corona's blend material, once that will be done, we can do full 100perc. comparison and I am greatly looking forward to that !

[btw,off-topic: Grant's materials are harder to render because 3 blended materials create 3 times more sampling (each VrayBlend compoment samples separately), but it's survivable. With today power.
But definitely doesn't cook your CPU, 90+C are overkill for long time, you don't need water cooling, just well sitting AirCooler. I have 40C top with simple Noctua NH-D14]
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: gleelash on 2014-06-22, 22:58:28
Can't provide the best comparison today BUT I did render in V Ray till my CPU reached about 93 degrees. Short video, the fact that the quality is what it is and you can still see the BIG differences between GGX and Simple is a plus for my crusade.

Sorry Keymaster, I'll get better stuff done tomorrow, on a friends machine. To be clear, the simple one has the most black and plain reflections, looks like it's made of candy wrapper-meets-chrome. And since this is the case, I just realized that the blending in Corona does not work, so I am getting the same simple chrome-like result. Well at least I figured something out.

https://www.youtube.com/watch?v=UD08ERMM2SI&feature=youtu.be (https://www.youtube.com/watch?v=UD08ERMM2SI&feature=youtu.be)
OR
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: rampally on 2014-06-23, 04:56:17


[btw,off-topic: Grant's materials are harder to render because 3 blended materials create 3 times more sampling (each VrayBlend compoment samples separately),
I think for this reason we all need to request keymaster to implement GGX in to Corona ........ASAP

(off-topic keysmaster yestarday  i meet one of my friend he is working  with maya and arnold ...and he is so proud about arnold that no other render can achieve  this level quality with less render time...and the image that  he has rendering  took 28H to complete..... 2k res
and i just told him that it will take less then 3H with much more Q  in corona....he told me to do it i just showed him WHAT IS CORONA he was shocked  and final render just took 2.16 H to complete 400 passes ..........with MUCH MUCH more Quality ...he was Totally shocked
so keymaster i think A7 will rock 3d rendering  and with final release  3d world . )
YOU diverse BIG award for you effort
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Ondra on 2014-06-23, 10:25:14
I would still like to see something like "here is a render + scene with a nontrivial object with GGX, you cannot reproduce this in corona - because I would like to try to reproduce it ;)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: gleelash on 2014-06-23, 10:46:56
Well I did not buy the GGX shader for V Ray, but I can sure fake it. I'll prepare a scene, something "non trivial"(? like you could actually see it better in action on a metal bridge rather than jewelry?) with the 6 V Ray materials I talked about in my original post.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Ondra on 2014-06-23, 11:36:42
I think for example the dragon statue is ok. It is just that on a simple sphere it is very simple to see any difference that you would not notice in real scene.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: ktulu on 2014-06-23, 12:04:13
Thanks for starting this interesting discussion guys. Since I watched Grant Warwicks’ tutorial on blending materials in Vray I wanted to try and implement this workflow in Corona.
Don’t get me wrong – it would definitely be great to have a shader model, which wouldn’t require us to blend 3 different materials to achieve a realistic metallic effect. Since we don’t have it at our disposal yet, it’s good to have a decent workaround.
So I went on and prepared a simple falloff curve with different RGB values and tried recreating the base coat material to make sure I knew, how a more complex shader would behave. There are a couple of points I would like to clarify before moving on to layering additional coats on top of this one.

Ok, and last but not least: which method is the 'correct' one to reproduce the metallic effect? Plugging the Falloff map solely into the Reflection color slot (as suggested by the MaterialConverter script), or having them plugged in into both Reflection slots?

I would appreciate your input on this matter.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: ktulu on 2014-06-23, 12:21:05

Corona 3 way blend material:

a.reflection level 0.95
glossiness 0.8
Fall-off RGB calculated above

b.reflection level 0.95
glossiness 0.9
Fall-off RGB calculated above

c.reflection level 0.95
glossiness 0.99
Fall-off RGB calculated above


Blending 3 different glossiness materials achieves absolutely nothing.2 and 4 look exactly the same. Except a longer rendering time.So I need help here.

I think what is happening here is that in each case you are overriding the Reflection glossiness value with the same map, hence you are blending 3 materials that are looking exactly the same.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: GestaltDesign on 2014-06-23, 12:27:00
Hi all,

Hope you do not mind me throwing in some of my own experimentation as I also think this is a great topic!
Another signee here to Grant Warwick's course I was also curious how I could implement this very logical approach into Corona.
I have reasonable CPU power so was not concerned with the mutli sampling.
As I think as Juraj had mentioned I multi layered the Blend Map and was very satisfied with the results.
Quickly this morning I put together a comparison model comparing single vs multi layer in vray and corona. Only observation was that I found that the Vray and Corona Glossiness values were not like for like so reduced the Corona value to approx half. I considered that Ward contributed to this on the Vray side. You can see in my comparison the single layer material starting point.
So in my ignorance am I missing anything in this approach as it appears to be working fine, cheers!

Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: GestaltDesign on 2014-06-23, 12:44:11
Hi Geelash,

Sorry if I misunderstood your post but as far as IOR is concerned on the 999 setting, this is correct as it is the Corona setting for OFF,
then your  falloff map in the reflection colour is controlling the IOR.
Therefore you are correctly representing gold when dialing in the physically correct falloff map.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: gleelash on 2014-06-23, 13:32:45
GestaltDesign, your result seems like a good starting point.
Way better than my tests so far.

Keymaster, I'm rendering 3 human skulls off of a Z Brush model, with some modeled cracks, one frontal and some spinney ones aside (so it's not a symmetrical scene). Hope it is complex enough I scoured the internet to quickly model something but...not much in this world made out of platinum, gold or copper. I will render these "blindly" by sending them to a friend, the copper might feel a bit de-saturated, we'll see. I will update ASAP when there done tonight.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Ondra on 2014-06-23, 14:10:00
ok, this is nice example. I am not sure you would reproduce the same material, but the gold statues definitely show enough improvement for me to start investigating the possibilities.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: GestaltDesign on 2014-06-23, 14:12:09
It's cool once you start getting creative with it, such as darkening the falloff and adding into AO and adding dirt layers, I had a quick go now and attached setup :)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: agentdark45 on 2014-06-23, 15:01:09
Wow that tarnished gold material is really good! Would you mind uploading the material here for us to test?
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-06-23, 15:01:58
You deserve many beers Gestalt !
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Chakib on 2014-06-24, 00:30:57
I'm waiting for that baby, really nice effort & examples !
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: nehale on 2014-06-24, 02:15:52
GGX Yes.... was just coincidentally also watching grant's advanced shader tutorial today and was about to start experimenting to see how i can recreate it in corona then i find you Gestalt.

WELL DONE
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-06-24, 07:50:44
I´ve tried to reproduce Grants materials with Corona, and I think it works really well but GGX would be great to have!!
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: nehale on 2014-06-24, 09:48:10
I´ve tried to reproduce Grants materials with Corona, and I think it works really well but GGX would be great to have!!

do you mind sharing some renders of them Daniel
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-06-24, 11:04:41
Sure, I will do that as soon as I get home!
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: GestaltDesign on 2014-06-24, 11:14:22
Keymaster - Very exciting news, sure something amazing will come of it!
Juraj - Beer is always good, glad to be of service :)

I have just uploaded the base gold material to play with on CML, thought that was the easiest option.
I will upload the Tarnished Gold when I find time to make a custom map as yesterday I just banged in the first dirt map available and it may not be freely distributable, just want to be sure.

Have to flag up Grant's course, it really is that bloody good, totally recommend signing up and completely transferable to Corona. 
Bit like Corona in it's intelligent, no nonsense, "if you're gonna do it, do it properly" style!





Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: GestaltDesign on 2014-06-24, 12:12:59
Tarnished Gold uploaded to CML.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: rampally on 2014-06-24, 14:25:11
Tarnished Gold uploaded to CML.
can not find iton CML ...........can to provided the link please???
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: GestaltDesign on 2014-06-24, 15:43:57
Sorry, yep you will have to wait for CML to administer them.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-06-24, 19:44:01
Here is a render of my attempt at copper, not 100% satisfied with the result.

I hope it is ok that I used Grants shaderball hehe..

The reference images showed several types of copper, some more pink and some more orange. So I went for a more orange type.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-06-24, 19:58:48
Nice :- )

I kept his ball too btw, no reason to change it. It's the nicest ball I've seen to date so why even bother.
Seems like great HDRi you used there, mind say what is it ?
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: rampally on 2014-06-24, 20:33:10
Sorry, yep you will have to wait for CML to administer them.
Ok
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: rampally on 2014-06-24, 20:50:03
Here is a render of my attempt at copper, not 100% satisfied with the result.

I hope it is ok that I used Grants shaderball hehe..

The reference images showed several types of copper, some more pink and some more orange. So I went for a more orange type.
(not 100% satisfied with the result) That's why i jut REQUESTED for direct  implementation of GGX in corona
and also  as juraj said many gaming programs are implementing PBR/PBS (Physically Based Rendering/Shading) why Not we can  expect ggx in CORONA ???
as we all know how well corona is made ......believe me i am using it since one year not even one crash till TODAY...
HOWEVER .....IT WILL TAKE SOME TIME ....Ondra Karlík can Do it
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-06-24, 21:24:33
Nice :- )

I kept his ball too btw, no reason to change it. It's the nicest ball I've seen to date so why even bother.
Seems like great HDRi you used there, mind say what is it ?

Thanks! :) Yes his shaderball is great! Sure, I used "Chelsea Stairs" from hdrlabs.com, tried a few and found that it gave a pretty good result.

(not 100% satisfied with the result) That's why i jut REQUESTED for direct  implementation of GGX in corona
and also  as juraj said many gaming programs are implementing PBR/PBS (Physically Based Rendering/Shading) why Not we can  expect ggx in CORONA ???
as we all know how well corona is made ......believe me i am using it since one year not even one crash till TODAY...
HOWEVER .....IT WILL TAKE SOME TIME ....Ondra Karlík can Do it

I was asked to upload a render with a material created the way Grant explains in his tutorials, it was not my intention to say that the request was not useful or anything.
I agree that GGX would be great to have implemented in Corona.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-06-24, 22:19:38
Thanks Daniel, I totally forget about HDRLabs existence. The way the one you chose shows the highlights completely rocks.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: agentdark45 on 2014-06-25, 02:36:23
The materials being produced in this thread are amazing. That's probably the most realistic CG copper material I've ever seen!
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: nehale on 2014-06-25, 07:03:50
Here is a render of my attempt at copper, not 100% satisfied with the result.

I hope it is ok that I used Grants shaderball hehe..

The reference images showed several types of copper, some more pink and some more orange. So I went for a more orange type.

do you mind also posting the shading network for this material, really amazing
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-06-25, 18:14:09
Very quick test of mine, Blackened steel.

Layering works fine. Although, slightly differently than VrayBlend, but I can't put my finger on how.

Some observations: Corona keeps really nice highlight energy in corner almost unnaffected by glossiness. This seems almost strange, but maybe more correct actually. This can be seen on page 1 too, on the lion,
which looks better in Corona even with single layer. So I can confirm this. Same curve and eye-balled glossiness behaves differently in Vray.

The glossy curve in Corona is so much more linear than in Vray that it's almost hard to produce 'rough' (low gloss number) surface haha. With Glossy parameter 1.0 in Vray, driving only with textures, I kept the material contribution
in Vray 0.2 to equal almost 0.8 in Corona. I sort of don't know how to convert these to even remotely match. Not bad, just different, and puts point that if the material matters, just build it straight up, don't convert stuff.

Anisotrophy is so different. Seems like what is by default in Vray (Z-Axis, 0 angle) equals to Corona 90 angle (no axis can be chosen), but it still behaves differently. Can't stay bad or better, just, different, so I couldn't manage to match it well.

Overall, I think I am satisfied and can't wait for more advanced BRDF like GGX !
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-06-25, 19:28:36
Thanks Daniel, I totally forget about HDRLabs existence. The way the one you chose shows the highlights completely rocks.

Thanks! Yes they have som nice HDRI´s there!

The materials being produced in this thread are amazing. That's probably the most realistic CG copper material I've ever seen!

Thank you!!

do you mind also posting the shading network for this material, really amazing

Sure, I´ve attached a screenshot of the material in this post.

Very quick test of mine, Blackened steel.

Layering works fine. Although, slightly differently than VrayBlend, but I can't put my finger on how.

Some observations: Corona keeps really nice highlight energy in corner almost unnaffected by glossiness. This seems almost strange, but maybe more correct actually. This can be seen on page 1 too, on the lion,
which looks better in Corona even with single layer. So I can confirm this. Same curve and eye-balled glossiness behaves differently in Vray.

The glossy curve in Corona is so much more linear than in Vray that it's almost hard to produce 'rough' (low gloss number) surface haha. With Glossy parameter 1.0 in Vray, driving only with textures, I kept the material contribution
in Vray 0.2 to equal almost 0.8 in Corona. I sort of don't know how to convert these to even remotely match. Not bad, just different, and puts point that if the material matters, just build it straight up, don't convert stuff.

Anisotrophy is so different. Seems like what is by default in Vray (Z-Axis, 0 angle) equals to Corona 90 angle (no axis can be chosen), but it still behaves differently. Can't stay bad or better, just, different, so I couldn't manage to match it well.

Overall, I think I am satisfied and can't wait for more advanced BRDF like GGX !

Nice one! :) I´ve noticed too that there is some difference in both how the blending and the reflection glossiness behaves, I often use about half the value in refl. glossiness with Corona when creating a material in comparison to vray.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: maru on 2014-06-25, 19:46:32
Ok, I like doing things my way so here is a really CRAZY way of making a glossy material that has "various glossy values at the same time". Remember, I am doing this purely for fun. :)

Here is my process of thoughts: real metal has some given "characteristic" of surface because of micro-bumps on it. Why not recreate this as close to reality as possible by adding micro-bump map? But adding micro-noise as a bump map caused a lot of noise that didn't want to go away and really crazy things when it's size was very small (below 0,0001) so I simplified this by using micro-noise in glossiness slot. I don't like using layered materials with different glossiness because.... well... it is just few mixed layers with different glossinesses....

Why would this work?

Procedural noise, by using "threshold" parameters is capable of producing:
-uniform noise
-noise with larger or smaller "flat" areas
-noise with larger or smaller "slope" areas
And it has two colour parameters that will serve as minimum and maximum allowed glossiness.

My extremely quick tests are in the attachments. As you can see a proper setup will produce sharp+glossy reflections + all the other possible glossinesses between them. I hope it is understandable. :)

It is also vital to disable texture filtering or things get bad.

Maybe it would be possible to create such texmap for Corona that would be capable of producing infinitely small noise? :)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Tanakov on 2014-06-25, 21:41:14
I think Im quite too low, to join in and have a good impact on this conversation. Yet I think that this is purely the moment to say

THIS WILL MAKE CORONA THAT STANDING OUT PRODUCT
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: greysheep5 on 2014-06-28, 12:26:12
Nice sharing of your findings and materials, very cool and much appreciated!

and on a sidenote, thanks for the tip with CML. coming from vray i didn´t know that such a site exists already before you guys talked about posting your materials there...

cheers,

christoph.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-08-02, 22:23:42
Ok, I like doing things my way so here is a really CRAZY way of making a glossy material that has "various glossy values at the same time". Remember, I am doing this purely for fun. :)

Here is my process of thoughts: real metal has some given "characteristic" of surface because of micro-bumps on it. Why not recreate this as close to reality as possible by adding micro-bump map? But adding micro-noise as a bump map caused a lot of noise that didn't want to go away and really crazy things when it's size was very small (below 0,0001) so I simplified this by using micro-noise in glossiness slot. I don't like using layered materials with different glossiness because.... well... it is just few mixed layers with different glossinesses....

Why would this work?

Procedural noise, by using "threshold" parameters is capable of producing:
-uniform noise
-noise with larger or smaller "flat" areas
-noise with larger or smaller "slope" areas
And it has two colour parameters that will serve as minimum and maximum allowed glossiness.

My extremely quick tests are in the attachments. As you can see a proper setup will produce sharp+glossy reflections + all the other possible glossinesses between them. I hope it is understandable. :)

It is also vital to disable texture filtering or things get bad.

Maybe it would be possible to create such texmap for Corona that would be capable of producing infinitely small noise? :)

Interesting! I´m kind of slow haha.. so if I understand correctly you only used a noise bitmap in the refl. gloss slot? :)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: maru on 2014-08-02, 22:33:10
Interesting! I´m kind of slow haha.. so if I understand correctly you only used a noise bitmap in the refl. gloss slot? :)
Hah, I'm not good at explaining stuff. :) I used procedural noise.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-08-02, 22:43:42
Interesting! I´m kind of slow haha.. so if I understand correctly you only used a noise bitmap in the refl. gloss slot? :)
Hah, I'm not good at explaining stuff. :) I used procedural noise.

Hehe alright! I will try playing around with procedural noise in the refl. glossiness slot and see what I can come up with :)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-08-03, 00:32:01
Sort of like this, not :- ) ?


It's from Thea render, hope nobody mind posting this here (I've never used Thea, not even once, it's fairly nice engine and team behind imho.
I quite like their material system from a look of it, seems like a compromise between the regular spec/gloss and more complex Maxwell system.
Esp. that is has 'roughness' and now 'micro-roughness' too.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: romullus on 2014-08-03, 10:18:39
Wouldn't it be the same as falloff map in glossiness?
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: maru on 2014-08-03, 10:27:36
Wouldn't it be the same as falloff map in glossiness?
Yes. It looks so.

At about 14:20 he is enabling another layer of reflections, so it's just a mix of 2 glossiness values. Definitely not what we want to achieve. :)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-08-03, 10:39:08
Interesting video Juraj!

So if I´m thinking clearly, by using micro noise and falloff curves together this could be achieved?

Must try! :)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: thebeals on 2014-08-04, 21:40:01
I am also a big fan of having some sort of ggx or microfacet shading model. imho these are key elements needed when creating photo-realistic materials. I've seen far too many architectural renderings where the floors/walls are reflecting overhead lights and they don't have this implemented-which is a dead give away it's cg. This implementation would also put Corona ahead of the curve in more areas :)

Maybe it doesn't even have to be a new material or customized phenomenon, but maybe set up in a similar way that Mental Ray is doing it's MILA layering library/Iray MDL materials. I don't want to seem like I am praising any other renderer here, since we all know just how amazing Corona is, but imho Mental Ray is really impressing me with how it is now handling the material process now and is ahead of the curve in this area.. for once. With the mila/mdl approach, I can combine tons of different reflection/glossy lobes and do not have to double the rays needed each time I add a new layer like I do with most other renderers, and it all fits into one easy to use phenomonon that doesn't need tons of blend nodes to hook everything up. If I wanted to, I could even have a bunch of glossy lobes layered over an SSS material all within one phenomenon and not incur massive render time penalties. This also makes sharing materials much easier :) (Obviously there are tons of other issues with MR atm though)

...All this to say is if we are thinking of implementing a ggx/microfacet shader, it would be amazing if it was customizeable and not locked into a set material phenomenon where we have to choose between a Corona Mtl or a ggxCorona Mtl... But I don't even know it's possible since there are so many specifics to a ggx material that are required to keep it physically plausible.

To sum all this up.. Layering library methodology is awesome, lightweight and incredibly powerful. Tons of different separate materials scattered everywhere is not so fun.

Lots of respect, and amazing work, as always Keymaster... Looking forward to seeing what you do next!


Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Javadevil on 2014-08-05, 10:36:12
Wouldn't it be the same as falloff map in glossiness?
Yes. It looks so.

At about 14:20 he is enabling another layer of reflections, so it's just a mix of 2 glossiness values. Definitely not what we want to achieve. :)

I kind of agree, its nice to have it all in one shader with out layering materials.
I think the blue wall in the video would only be one layer,  it wouldn't be layered,
its only a coat of paint not varnished or clear coat.


But I do like Thea's implementation, not that I use micro roughness much.

So looking at this GFX shader it could be used for more than just metal materials ?
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-08-05, 12:13:27
So looking at this GFX shader it could be used for more than just metal materials ?
[/quote]

No, it applies to broad range materials. Metals simply exhibit the multi-lobe specular easier due to their high specular reflectivity.
All the white papers demonstrate using paints, woods, and fabrics too.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Javadevil on 2014-08-05, 13:56:19
So looking at this GFX shader it could be used for more than just metal materials ?

No, it applies to broad range materials. Metals simply exhibit the multi-lobe specular easier due to their high specular reflectivity.
All the white papers demonstrate using paints, woods, and fabrics too.
[/quote]

Thanks
I'll look into those papers.

Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-08-05, 15:25:53
I am afraid you won't find much info on those materials exactly (or how to re-create them), they simply try to 'fitting them' from MERL data to their BRDF of choice (GGX/SGD/etc..).

But in case you have Maya/Vray3 combo you can buy SGD plug from Sergey Shliaev and try those 100 MERL presets :- )
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: maru on 2014-08-05, 16:56:05
Wouldn't it be the same as falloff map in glossiness?
Yes. It looks so.

At about 14:20 he is enabling another layer of reflections, so it's just a mix of 2 glossiness values. Definitely not what we want to achieve. :)
I think the blue wall in the video would only be one layer,  it wouldn't be layered,
its only a coat of paint not varnished or clear coat.
I don't know what you mean by one layer. The objects is rendered on one layer and the material may be one layer, but he is clearly setting up another layer of reflection glossiness. You get two layers: one that is more "shiny" and one that is more "blurry". This is not what happens in real life. You would need A LOT (or preferably infinite amount) of layers with different glossiness levels.

Here is my visualization of what happens. Sorry if what I write and show does not make any sense, I'm having a killer headache. :>
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: nehale on 2014-08-05, 21:57:51
C4D R16 just implemented GGX and multi layer reflections: http://maxonexchange.de/pr/Cinema_4D_R16/Cinema_4D_R16_PS_Reflectance.jpg
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-08-05, 22:21:01
I looked at C4Ds new GGX and multi-layer reflections, looks nice. Would be really nice to have something like that with Corona and 3Ds Max!
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-08-05, 23:15:26
C4D R16 just implemented GGX and multi layer reflections: http://maxonexchange.de/pr/Cinema_4D_R16/Cinema_4D_R16_PS_Reflectance.jpg

That looks quite interesting to be honest. Cinema seems to fight hard these days, building Arnold plugin themselves, now this. A dev who listens to users and act too :- ) ?
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Javadevil on 2014-08-05, 23:39:38

I don't know what you mean by one layer. The objects is rendered on one layer and the material may be one layer, but he is clearly setting up another layer of reflection glossiness. You get two layers: one that is more "shiny" and one that is more "blurry". This is not what happens in real life. You would need A LOT (or preferably infinite amount) of layers with different glossiness levels.

Here is my visualization of what happens. Sorry if what I write and show does not make any sense, I'm having a killer headache. :>

Maru I am agreeing with you, in real life, that paint would only be one material, it shouldn't have to be layered to create it.
I thinking of layers in how many different types of coats are on the wall, like I said it doesn't have a clear coat of varnish to create the second specular reflection.
If it did then I'd layer the material.

cheers
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-11-14, 08:25:03
Hi,

Old topic and maybe the wrong place to post this but I saw Grant Warwick post this on his Facebook page and thought it might be interesting.

Does anybody know if this is some more advanced version of the ggx shader?

http://help.chaosgroup.com/vray/images/stuff/gtr_tests/gtr_render.html (http://help.chaosgroup.com/vray/images/stuff/gtr_tests/gtr_render.html)

/Daniel
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Juraj on 2014-11-14, 16:35:08

Does anybody know if this is some more advanced version of the ggx shader?


It's clearly written what it is on that page :- )

"Generalized-Trowbridge-Reitz BRDF as described in the paper "Physically-Based Shading at Disney". It is an extended version of the GGX BRDF"
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: daniel.reutersward on 2014-11-14, 16:42:47

It's clearly written what it is on that page :- )

"Generalized-Trowbridge-Reitz BRDF as described in the paper "Physically-Based Shading at Disney". It is an extended version of the GGX BRDF"

I must have missed that (using my phone), but that sounds interesting! Trying to get my head around the physically based shading world :)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: twoheads on 2015-02-22, 00:06:49
I did some random tests lately. Semi distressed copper is what I'm trying to create, quite happy with the result so far (but not super happy) I love Daniel's copper BTW.

TH

(https://farm9.staticflickr.com/8655/16605749995_b43c09d10f_h.jpg) (https://flic.kr/p/rioNWp)copper_test_distressed. (https://flic.kr/p/rioNWp) by twoheadscom (https://www.flickr.com/people/130237018@N06/), on Flickr
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Fluss on 2016-04-27, 00:22:59
I posted this in another topic (https://forum.corona-renderer.com/index.php?topic=9489.msg75492#msg75492) but i think here is a better place.
I found this today. It might interest you guys, if you have not seen it yet

and
https://eheitzresearch.wordpress.com/240-2/ (https://eheitzresearch.wordpress.com/240-2/)
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Siahpoosh on 2016-05-01, 11:38:32
I posted this in another topic (https://forum.corona-renderer.com/index.php?topic=9489.msg75492#msg75492) but i think here is a better place.
I found this today. It might interest you guys, if you have not seen it yet

and
https://eheitzresearch.wordpress.com/240-2/ (https://eheitzresearch.wordpress.com/240-2/)

really interesting solution , you should make a feature request topic for this , hope corona add this in future ,
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Fluss on 2016-05-04, 12:52:41
yup, that looks very promising, especially when it comes to energy preservation. But it looks like it should be quite intensive in terms of calculation. Would like to know Ondra's opinion about it.
Title: Re: GGX - best way to recreate it for all metals, problems translating to Corona
Post by: Jarda on 2016-05-12, 15:05:09
Hey guys,

I'm in charge of research in Corona so I took a thorough look at the paper. I came to the conclusion that it is not very useful for Corona at this point, for the following reasons.

First there is the overhead: for some rough refractive surfaces, the render time can get almost twice longer with the method in the paper - definitely not something we would want to see in Corona.

Second, what does the paper really has to offer in exchange for this overhead? In fact, nothing that Corona wouldn't already have.
What they use is the usual microfacet BRDF (such as GGX) but they can ensure that energy is preserved as the roughness/glossiness changes. In other words, the material does not get darker/brighter as you tweak glossiness.
But we already have a different solution for exactly the same problem in Corona which works just fine. Try to play around with CoronaMtl and you should be able to see that there is actually no darkening as you change the reflection glossiness.
Current version of Corona still has some issues with energy preservation of rough *refraction*, but we already have implemented a solution that works very well and we will release it in a daily build soon after 1.4.

So there's probably not much to get out of this paper for Corona.

Cheers,
Jaroslav