0

WORKSHOPS ON REAL PHYSICALLY BASED SHADING ON SHADERFORGE

DAVID COOPER fa 10 anys actualitzat fa 10 anys 1


Hello ! My name is David Cooper ...
Im a Producer And Developer at the SPanish Pretty Unknown ALUNBRA GAME STudios..

Mail is Alunbra@gmail.com If you need any contact with us .... We are just starting as Indie Studio.

 
And .. I just Finished watching This Physically Based Substance Webminar : )

- Which i think is near very informative. And just gived me few ideas and workflows for shaderforge...
- - That i been deeply thinking And i want to share with all you in the SHaderforge Userbase some cool study conclusions i got ! 

If you seriously into Shaderforge and Realtime Physically Based Rendering Techniques .. 
The Information Bellow Beside a Personal Modified custom View on the subject might be useful in your production.


https://www.youtube.com/watch?v=LP7HgIMv4Qo
Physically Based Rendering in Substance 

Youtube video


Integrate SUbstance Designer And Substance Painter With Shaderforge Properly Which is not so easy as we might like to  ( Today would be ) a very fantastic way to get better results out of shaders in unity with always the proper Results ...


But as far as i tried and i am aware there is still no documentation ( or easy way ) to use results that Substance Painter Physically Based Rendering model Outputs to use with SHader Forge so they look identical in results .

SO i would like to give Everyone a KickSTart Ahead into This So much needed Direction.


So we already have now full Integration Of Marmoset SKYSHOP with SHADERFORGE  With latest versions of Skyshop ...

And Here are some WorkFlows of WHat it is to WOrk with SKYSHOP And Substance painter :

Youtube video


On overall : This videos iv been study and dabbling with contain some Amazing Uber Informative Workshops about the proper workflow of both Substance and SkyShop SHaders Set ... That got a hell lot of features mashed up ...

BUT : AND WHAT ABOUT MAKING PBR WITH SHADERFORGE ALONE ? 

What if you want to make "your own" Physical based "correct" Shaders ? Within SHaderforge ?

Lets just say you invested 80$ in SHaderforge ...
And you still don't want to invest +125$  in Skyshop ?
( And i sure highly recommend using skyshop for fast shaders ) 

But lets just say that you need something "More" That Skyshop Shader does not allow you to well.
Like for example allow a Multilayer feature, or a Triplanar But "skyshop like" Shader ...

And as of today for that now you have Shaderforge new SKYSHOP NODES ...



Despite that they Seam and sure are pretty handy ... They sure implement a lot new good features.
( Still not all As it should ... for example who would not want the Skyshop new Skin Materials in SHaderforge as nodes ? )

But there is no whatsoever information to "this" date on how to use those nodes above properly inside SHADERFORGE ...
As also they don't seam to work standalone without skyshop and are a little bit Code wise complicate as been introduced as beta for the first time A lot of new (on/off) Variables as:
  #if MARMO_BOX_PROJECTION_ON / #if MARMO_SKY_BLEND_ON 

And so forth ... But All the Options are there now and Skyshop is amazing .. Sure ! 

But ... lets go the Other more Customized Way / and hack it a Proper Custom Physically Based Shader By nail ! 
And for that we must ask and study deep on ...

WHAT DO WE NEED TO MAKE A COMPLETE PROPER PHYSICAL BASED SHADER IN SHADERFORGE THEN ?
So lets say that we want to make a :

EXTREMELY PHYSICALLY CORRECT SHADER JUST ON SHADERFORGE And Substance/Mary...



To STart ...

First Lets talk About PHYSICAL BASED SHADER MODES .

Substance painter uses the Disney BRDF  Model of  
( Diffuse / Roughness / Metallic / Normal / Occlusion )

While Shaderforge uses "Its own" Maybe more complex powerful and more difficult to tweak Physical based model of ..
( Diffuse / Diffuse power / Specular / Gloss / Normal ) + ( Emission / Transmission / Light Wrapping / Diffuse Ambient light / Specular Ambient light )

Which "if you dare to dial it together" You will see that all those values Deeply Affect "unrealistically" in many ways your model ... and therefore must be clamped and blended and basically worked all together .. with the proper minimal values to resemble reality ..
( Which is quite a insane type of work for at least just 1 man non payed ... )

But i Think we Can do this in a long run as Community TOGETHER .
So as today . When you try to Bring Substance Designer/Painter Maps is really difficult to have same results as in painter/designer we would...  

For everyone sake i think is really important to make samples to get a more strong the connection of physically based features of shaderforge with other applications that output physically based maps as ( Substance Painter / Foundry Mari ) in a Way that they look alike both in those applications and Unity ...   




Lets Talk and digest About Physically based Rendering : Methods and how to technically achieve them in SHADERFORGE ...



As a Talk Topic Request to ShaderForge Developer And other Members here .

Would be important to All SHaderforge Users To be Able to Setup ( just with shaderforge )
Physically Based Correct SHaders that look as Good as Marmoset Skyshop ..

And for that We have this attributes That a "Optimal" Physical Based Correct SHader To be Build In SHaderForge Must Use :

ENERGY CONSERVATION VALUES



The QUestion here is : How can we make a Realistic Physically Based Control Transition from ( Diffusion/Roughness) to (Reflective/Smoothness ) In SHaderforge ?

First you should take in account How much the influence of your lights is in your scene and how much the environment blends into that and influence both energy conserving realistically ...

For practical purpose, more diffuse and rough materials will reflect dimmer and wider highlights, while smoother and more reflective materials will reflect brighter and tighter highlights
Having us enabling to chose between two ways in Cook Torrance and Bling pong modes that Make conservation and scattering of light of the microsurface differently ...

So controlling all this "realistically" is not just a matter of a simple "withe to cubemap" reflection, as you can see medium values above are also blurred as the micro surface roughness makes the light scatter and blurs the highlights ...

So yeah we have a "energy conservation" Toggle on/off in SHaderforge ...
But we need to do alot more in order to control it all this values together realistically.

But Physically Based Shading is not just Conservation ...
There is a lot more to Dig in, in order to make a "Proper" Realistic
Physically Based SHader in SHaderforge ...

Lets see what are the other properties that we need to control ...

ALBEDO VALUES 



The question is : How can we control in SHaderforge A Albedo Transition Physically Correctly Knowing that Albedo Light Defines the Color of Difusion of light in the surface but "realisticaly" also mixes scattered Directional light And Ambient Occlusion Values into it . 

But not just : The albedo map will sometimes define more than the diffuse color as well, for instance, when using a metalness map, the albedo map defines the diffuse color for insulators (non-metals) and reflectivity for metallic surfaces.

MICROSURFACING



As we Seen above in a Uber Realistic physically Based Shader Together with the Energy conservation values control comes the how much Rough or smooth the surface is and therefore how much the surface ( Diffusion / Specularity / Reflection ) Blurs and Wraps Together with Realistic fresnel Falloff Values ...

 And for this a Roughness to Glossiness Map is involved But this map does not control Just The Environment mip map values .. But also Controls Amounts of Specular, how much that specularity blurs, and also how much there is a Light Wrapping involved within the Surface Diffusion to Simulate "more realistically" together the Light SCattering Across the microsurface ... which also involves the perturbed or not normals across the surface that influence the light wrapping ... Therefore Affecting Occlusion and mixing a little bit of relief mapping into it for a Extreme Optimal Realistic result ...

So a realistic MicroSurface Value Gauge is quite hard to achieve in node compositing and affects almost all parameters you can think of that shaderforge allow us ...

Also because this Parameter not just affect all above, but also mixes with the next part ...

THE REFLECTIVITY VALUE 



Again ... This is not just a Topic of Connecting a Cubemap With a Slider To Diffuse and Specular Ambient light And thats it ... Much in the contrary. 

Realistic Reflectivity is Affected by Realistic fresnel values that Act according the surrounding lights distance and fallof  Combined with the concept of energy conservation and roughness for surface variation which should generally be represented in the micro surface Roughness / Occlusion / Height Normal maps, that act together to bring us more or less anisotropic shiny sharp to blurred matte reflections, which is not achieved at all in the reflectivity map value just.

Also the Metalness Map color Affect together here not just the reflection color values as well were and how much the anisotropic speculars that come out of it ...

All this together does what we see above more realistically
 ...

Then we have the Holy Grail that controls and scatters all values according the object volume shading that is projected to our camera sight.

THE FRESNEL



Basically Grazy Angles Control how much The material Reflects the surrounding environment...

But again is not just a Question of Controlling the Fresnel Exponent ...

As both the "intensity" and "blurred" amount of Fresnel here is also controlled By the Microsurface Values that make the connection to all above maps and how they relate into it ...

So basically in theory you should be able to "Blur" the fresnel and perturb it with the microsurface below, and that value dim or augment the Reflectivity / Albedo / conservation values together ...

All this Fresnel values are interconnected automatically by the BRDF model which takes precise realistic light measures in acount to drive the effect ... But if we mix the BRDF fresnel with the Bling-Pong or Cook torrance modes, we should have extra control over the fresnel "intensity / Blur / Fallof" Relations ... 

WHIch again are by a certain degree perturbed by the normals and Dimed by the Ambient occlusion ...
Which Bring us to the Next Part of Building a Uber Realistic Physically Based SHader in SHaderforge.

THE AMBIENT OCLUSION & CAVITY


  
Lets be sincere ... A Phisical Based Model Shader That is not AFected by Ambient Oclusion ( Looks Flat and washed out ) And without Cavity Afecting the shader properties ( That Afect the materials properties transitions in albedo and reflection bend Need to be take in Consideration to a PBShader look good and not just "like all others" Phisical based shaders ...
 
So Ambient occlusion(AO) Defines not just the large scale occluded light affecting in the surface its Specularity and microroughness Values that afect all rest ...

Not just Multiply over the diffuse ( as doing it exactly the same as baking occlusion with diffuse from a 3d rendering application .. which we should avoid, otherwise the occlusion will make the model look flat wrong and not good "in realistic next gen rendering" modes .

So Adding AO as a separate map as opposed to baking it into the albedo and specular maps allows the shader to use it in a more intelligent way. For instance, the AO function Not only occludes ambient diffuse light (the diffuse Ambient light component of the image based lighting system in shaderforge), Also affects the map in its color also affects direct diffuse light from dynamic lights or specular reflections ( but that only in a very small Realistic Amount like 25% just ) .

AO should generally not be multiplied 100% on to specular or gloss maps.
( Despite that Multiplying AO onto the specularity and albedo and affecting directing the cubemap reflections map is also a common technique to reduce inappropriate reflections (e.g. the sky reflecting on an occluded object) but these should be only at 25% to affect in a proper way inter-object reflections.

THE CAVITY



A cavity map not just represents small scale occluded light and is generally baked from a 3d model or a normal map.

A cavity map should only contain the concave areas (pits) of the surface, and not the convex areas, as the cavity map is multiplied.

The content should be mostly white with darker sections to represent the recessed areas of the surface where light would get trapped. The cavity map affects both diffuse and specular from ambient and dynamic light sources.

Alternatively, for Uber Results a reflection occlusion map can be loaded Mixed into the cavity slot, but be sure to set the diffuse cavity values at user tweak disposal when doing this.

DOnt forget that Cavity, Occlusion, Maps should also contain Information about and be according the Surface Normals so it looks realistic ... And for that for example Using QUixel Ndo to convert Normals to Height, and or do directly Cavity from normals conversion is a most ...

WIch leave us to a last but not least Hidden Topic in PBR :

THE CONVEXITY



This is Quite a Often BLURED Not Talked Part of a "Ubber Realistic" Phisical Based Render pipeline ... But Also One of the Most Important .

Different From Normals ( that Defines Overall Mesh curvature ) 
Convexity Defines  How much Curvature There is in the MICRO SURFACE of the Object ANd how the Near More or less convex Surfaces Relate and therefore "microShade" WItH Each Others .

A Uber Realistic Physically based Model is all about Micro Shading of Convex Surfaces that then are bended Again by the Normals ... So basically the Convexity map MicroBends the Normals And Therefore affects Albedo Roughness fresnel and reflectivity ...

This also does  amplifies the effect of Cavity and occlusion within the model ...
So Basically Convexity drives Masks and clamps The WHole shader Tree into Realistic Values.



As a Extra Achievment Mixing Convexity With World Normals were you can also find the Object Convex Edges wholes and ridges That allow you to Tear / Rust / Grunge Textures in a Realistic Way .. Even Dynamically ...



  You can Learn About this Efect And how to convert & mix Cavity or World Normal Mapping in the Substance designer POD tutorials Right here bellow :

https://www.youtube.com/watch?v=rssO9AWcV9c



Youtube video


HOW TO USE PHYSICALLY BASED MAP DEVELOPMENT WORKFLOWS : THE EASY WAY.

There are today new tools that allow us to work with Physically Based Features Right out of the Bat:

ANd this are :

SUBSTANCE DESIGNER:

Youtube video


SUBSTANCE PAINTER :

Youtube video



THE FOUNDRY MARI :

Youtube video


This last one "miss Mari" workflows are little bit more complex .. as all every womans are ..  ... But If you Learn and go deep understanding it you will see there is nothing like it and Even SUbstance Painter have a lot to learn with the Always Unparallel Mari Features ...



WRAPING UP ! THE CHALENGE !

So people ! Theory Class being over ...
Lets try to WOrk Together This all out !



Taking all this and some more in account ... 
And i know its a "Bloody" a lot of work ...

I WOULD LIKE TO CHALLENGE THE COMMUNITY TO
BUILD AND SHARE TOGETHER A ULTIMATE REALISTIC PHYSICALLY BASED SHADER VARIANTS PIPELINE 
MADE OUT OF ALL POSSIBILITIES WITHIN SHADERFORGE !
 
I would like As well to Challenge SHaderforge Developer to give us some more features out of Shaderforge to Allows us to build a Ultimate PHYSICAL BASED SHADER / DEFAULT SAMPLE / Complex Full Featured shading workflow out of SHaderforge. 




But the challenge of building a complex / multi relations physically based attributes, nodes network: Is not easy task  ...

For sure : We need Proper Examples that show and share with us more physically based example shaders ! That work good with any values and any conditions.
Especially ones that convert the Disney All the above and ( DIffuse / Roughness / Metallic / Normal ) Features Into SHader forge Features .

If possible in a "Optimal Ultimate" Physical Based Shader made out of Shaderforge also would be good to chose mix Betwen both Phisical Based Models so we can have ( Difuse / Roughness / Metalic / Specular / Gloss ) Working Toguether .

To achieve this kind of Phisical based Shader Degree With SHaderforge : 
- And we also need to study and know better with examples and samples how can We Relate Betwen This and "Difuse Ambient" & "Specular Ambient" as well what value sto use very subtly with toguether all shaderforge other features so they can be there merged without breacking the PBR look.

We need also to know how we can Develop and make our own Custom physically Based Lightning

For example: If The Roughness Map In Disney Physical Model basically "Blurs The Surface" That Means That in SHaderforge That Roughness Map it controls a Mask in the cubemap MipMap to Blur Environment Reflection ... But We also would need control over the type of Specularity / glossiness / roughness be driven by map. .

We also need to control The "physical based" Fresnel amount together with roughness.
But were do we apply that Roughness in a physically based way inside shaderforge ?
Especially in a way that roughness affects exponentially as in reality all other shader values.

Basically we all sure need to study deep how can we control / Build a proper Physical based Lightning shader that clips clamps or normalize values in a proper physically based way .
As you just need to Dial some slight values off to lose the physical shading completely, or just apply some light wrapping or emission or diffuse power for example ...

SO a Proper Manual on "How to go Physically" And "stay there" in SHADERFORGE
Is something that the community really needs ... As there is no whatsoever information in this advanced topics so far .

But we are just starting to scratch the surfaces in Physically Based SHading with SHADERFORGE here ...

Lets talk about Another Hidden not Talked Taboo Feature that is :

-> Realistic PBR SHaders Must Control not just light but also Shadows independently and, Blur, bend and scatter them on its surface curvature.

So know that .. 


PHYSICALLY BASED SHADING RENDERING IS ALL ABOUT PHYSICAL LIGHT & SOFT SHADOWS SCATTERING ! 
Both Working Independent and together. In real time Means that the shader must emulate it as well !



And Going Beyond Advanced Things :

- One of the  big hiccups of PBR in any system is The Lack of Shadows ..
Results in Physically Based Real Time Rendering always looks Washed out Too much Brightness ... that even affects the model SHadows ...

The only "Possible" Most Easy way to compare really how your MODEL & MATERIALS & SHADOWS ->  SHOULD look like in all Physical Based Glory ...

Is no doubt to Render it Inside a Unbiased Phisical based Renderer like MAXWELL Render or THEA Renderers . (  maxwellrender.com / www.thearender.com )
There you can see Exactly how your model SHadows & Materials and all the blend of them should look like in "Near Reallife" Conditions ...  

And if you Do it / you will see that , Is not easy and not about One or Other Shader properties ... BuT All Them Mixed And Interacting Together for better physical Shading looks.
And that not even With The ACtual SkySHop Shaders or Shaderforge or Alloy SHader Framework :  http://goo.gl/5oy2Sy

( This last one Alloy / is a awsome made framework with Disney BRDF Model Right of the bat and at all its glory ... what makes it as good or better for PBR than even Skyshop ... inspite the fact that , there is no shaderforge interaction like skyshop ... soo )...

And the fact is that not in any of them You Got Physically based Shaders that really Merge All properties Physically interacting with each others as they should.
 
So the only BEST way to overcome that in UNITY4 Is Doing a Physical Shader By hand  WitH SHADERFORGE With the Introduction of some custom Code Nodes ... 

But we sure Need "As community" A lot of highlights or a "pure physical based shader" Example Setup ...

...

__
For a example The simple fact of using Ambient occlusion in a Physically Based Model : Should be easy right ?

But if you go deep Trying it Uber Realistically You might Ask yourself : 

- So How can we overlay Ambient Occlusion in SHaderforge in a Physically based Realistic way ?
Knowing that "multiply node darkens" but multiply the base values underneath ...  How is the proper way to Overlay Occlusion In Shaderforge ? Lerping together with Over Layering  ...
  
So we have to multiply Ambient occlusion map to all ( Diffuse / Diffuse Power / Specular / Emission / Transmission / Light WRapping / Diffuse Ambient Light / Specular Ambient light  )
All together at different values so that Ambient Occlusion is really on top of All the shader Attributes at once in some more than some others .. ( So that it behaves physically realistic ? And Lightning and shadows are also affected by other values as for the Roughness amount ... )  

The fact is that Ambient Occlusion maps should be processed and projected in the same way as "Diffuse Ambient & Specular Ambient" Light .
So to the shader be able to use it in a more intelligent way. And for that Would require Ambient Occlusion to be Hardcoded in the Main SHaderforge node for us to plug as one of the main inputs "optimally". Because Occlusion is Indeed the Lack of lightning... BuT That Absence of light Also Affects and should affect all other properties in the shader in a global way as much Ibl diffuse ambience does. 

For instance, in a Pure PBR Pipeline the AO function not only occludes ambient diffuse light (the diffuse component of the image based lighting system ), But just Degrade a little bit and gradually The Influence over direct diffuse light from dynamic lights or specular reflections of any kind that are dimmed but must be there for realistic physical setups. And that is just one of the near 12 Main Properties that we need to Mix Together in a full features shader Made from root in SHaderforge ... which all means that for a Pure Perfect Physical Based Shader ( As much or more Features that let say skyshop ) Made out of SHADERFORGE Alone implicates really large hundreds of nested nodes playing values relative working proportional to each other ...

You change a Little Roughness Value here and you must change Albedo and reflectivity and freshness values proportionally with nested conditionals that makes divisions or multiplications amounts on the power of all other values at the same time ANd make sure those values are linearly playing with others like Emission and light wrapping and diffuse and ambient ... Which is wicked if you think about doing it "by the book" but we actually need it and is the reality of the type of work involved in develop a True Physical Based Shader Made in shaderforge .. 

And so on and on ...

As you see there is a big LOT To be answered in the case of building Deeply Realistic Physically based Shaders Out of Shaderforge ..

As you can see by the extension of this Article Already ;) At this point: If not me... SOmeone should Sure Write the Physically Based Shading in SHaderforge Complete Book : )  Bundled with examples preferably .. Sure ..


REAL PHYSICALLY BASED LIGHTNING IN SHADERFORGE ! A topic for everyone to dabble into ...

I think all this is a very important topic to be discussed, and we sure need to have and share more and better examples of complete realistic physically based shaders out of Shaderforge ...

So everyone contribution is really needed in this topic here.


And Not everything is not about money and investment in Unity World - Gladly : 
There are as today some Other "Poorman" very RICH Physical based  Frameworks ... Even for free Outhere !




SOme of them like LUX That Are Open Sourçe : 

https://github.com/larsbertram69/Lux

http://forum.unity3d.com/threads/lux-an-open-sourc...


Would be Really Amazing if that Framework could be Ported / and even who knows INTEGRATED Its features as NODES Inside SHADERFORGE ..

As they Use cginc External Shader COnditional files, WOuld be just to Integrate them For example like with a custom code node.


Youtube video




THE BIG SHADER PROBLEM: DEFAULT LIGHTNING IN UNITY .




Some last things to think about: Physical Based Shader Base Lightning in UNITY 4 is that WHAT IT IS : Is all "Fake". Right ?

Have you Thought: "Why do Surface SHader Wrapup lightning in unity Always looks so awful ? "

Well Default Lightning Conditions in Unity Are Always Like the Example show above ... 
You splat a model into Unity EMpty scene Apply a SHader
ANd the kind of "puke" shading we see above is what happens ! 

Now let me Humbly say that This Still happens underneath : Even with a Shaderforge or Skyshop or any physical based shader applied ...
If you take off all the Maps ( and Ibl gimmicks ) even on a best physical based Shader The models in unity look like above and Terrible ..

And the fact is that sometimes even if you put the physical shading Wrap up above that "awfulness" of unity Base lightning / the fact is that the Real Physical Based Pipeline / is not "True / realistic / or Complete in Unity" Because basically what is called "physical based shader" is just "Over Layering a Effect" over a Awful base Shading of UNITY 4 ... That have a awful Interaction between "Model And Soft Light Diffusion" and Scattering of that Base lightning "That Never occurs" in a common base shader with the "holy grail" Ambient Specular lightning Disabled ...

Because of that we usually have the Non physical Flat Toon look even on so called PBR Shaders. 
But this Simple fact Make "any Unity SHader" that uses UNITY 4 default lightning "Not be Physically At all" ...
Because the "awful" Lightning and Shadow System of Unity4 Just Doesn't allow a proper better and more qualifying interaction between "unity soft lights / their soft shadows" That Blend and scatter over the shader and the model with its properties properties interacting properly ... not made on a Fx Overlayering The base Bad Default model mode ...  

But still on Unity 4 There are better Techniques wich make Phisical Based SHading in Unity 4 PBR Looks not just a Overlayer of fx on a bad lighning but Light / Shadow & Shaders more properly integrated like this bellow , Technique which only works with Dx11 by the straight facts:

  

JOVE 2: Replacing UNITY 4 Rendering ENgine For better Physical Lightning / shading Models .. http://goo.gl/GHlfvx

So its a consumed fact that Physical based Shading Results in Unity 4 Are always Off And Easily Degrade and get off and just do not look a like a proper physical Based Pipeline Made From Engine Root Or Without using a External Extra Render path Method that completely replaces Unity Lightning
... As in the More Proper case of JOVE 2 As it mixes A full Physical based Lightning / shadow / Shader SOlution All in one pipeline ...With therefore "more consistent" Results ...

Unfortunately Well ... Jove DOesnt have SHaderforge Interaction or maybe ever will ... 

But there is a Ray of hope that uses a Even More Evolved Deferred Shader Pipeline Called: UNITY5



WHICH HOPEFULLY UNITY 5 + SHADERFORGE MIGHT CHANGE IN THE NEAR FUTURE ALL THIS ...



As new Base SHaders in Unity 5 are on a new deferred lightning mode ... and its promised with all bells and whistles a proper Physically Based Shading Pipeline Should   ...

Or We could have the case of not even in unity 5  We could have a better "REALTIME" Deal with better proper dynamic Lightning soft shadowing for us to tweek and work ...
As they leave that "Global illumination / soft shadowing for Geomerics Enlighten ? Might be the Case that Well Unity Developers are just concentrating on the "Shader itself" ...

But the fact is that we all hope that the "REALTIME" Soft lightning Shadow..
Soft Shadows Without Baking / Could be upgraded so we can have Better SHading In realtime
So that we can tweak directly Base shader in SHaderforge Fully Without Gimmicks or fx Overlayering at all ...  ... We will wait and see..



But as far we can see Unity development Team really needs to put that up fully if they want us to confront UNREAL 4 Results ... Which actually Bring us a Full Integrated Shading pipeline "as any and all game engine should" by default with a SHader Node Interface as good or better as SHaderforge ... Inspite with less features Than SHADERFORGE actually maybe ...



We like to be Impartial on this things ... Thats the way we can learn the path of evolution. We need to Deeply Compare to see what lacks between systems.


REAL DEFAULT REALTIME PHYSICALLY BASED SHADING IN UNREAL ENGINE 4   Vs Unity 4 Hacked Methods ...



As today If we have so many Shader properties in Shaderforge : We must Ask Ourselves :

- > Why do Physical Base Shaders in Unreal4 look so good ( Smi global illumination like base shaded out of the bat ) with just 1 light ( without even need to add maps ) to shaders or Backing - that gives awsome near physical looks to materials that even don't have any maps at all ?
- >> And in Contrast in Unity 4 if you have a physical Based Shader ( without adding maps at all ) the shaders look awful / flat with 1 light ?

( Optionally we have to go around and fill the environment surrounding the model with many dim lights to achieve a similar effect ..
and even in that way is difficult to achieve proper results comparing to the default shader looks of Unreal 4 )

But Lets think ABout WHat is Underneath In Unreal 4 Default Shaders And compare to Unity 4   
-> Does that mean that in Unity 4 (without maps) the Physical base lightning Conditions in a SHader are just not Set ?
--> And Therefore we have to make Custom lightning Incidence fresnels With SHaderforge to wrap up the model lightning ?
---> If we Look Closer that GI look in a shader is all about a Proper multi Soft Fresnell That drives Light/shadow SCatering Across the surface ... 

So the question we should ask us is : How can we have a more decent Physical ( global illumination ) Base Look into Unity4 shaders even before adding any maps at all just with the model and 1 base directional light ?




AND UNTIL THERE .. WE MUST AIM THAT THIS IS WHAT A PROPER BASE DEFAULT SHADER ( NO MAPS SHOULD LOOK )
And target in our SHader creations that look without even adding any kind of Ibl or maps . 



To this We must concentrate in this few keys that open this UNITY 4  dilema :

-> How can we Go to the Root of the SHading in unity 4 And build a Soft SCatering Base Lighting with SHADERFORGE
--> And emulate a Realistic Physically based Soft lightning Freshnell That SCaters Both Light and Shadow and blurs it With Custom lightning within the surface :

And achieve that still Maintain the Phisical based Properties in The Base Default SHader.
Just With lights and Geometry / No Watsoever maps / or IBL Image based lightning at all.

And do it just Codewise : On the Shader   And still looks in Unity Just 1 light and the model and 1 shader as the example above.

This is something That Maibe we still cant do it with shaderforge .
Or maybe we can : its up to SHaderforge Developer to Answer us this ...

But Basically this is the DOOR To the Wrong Never Physical Shading Problem WIthin Unity 4 PBR "Emulation" .

If we Can have a Good Smooth & SOFT Blured Base Lightning/Shadowing Scatered above the Base SHading.
- We can then Build on top and overlay whatever we want Like IBL on a Proper Consistence SHadowing/light Deep Volume Wrapping Mode.   


SHADERFORGE IN NEXT DEVELOPMENT INTERACTIONS.


To achieve better Custom lightning Base PBR There are SOme KEYS That we need out of SHaderForge Next Versions: 


1) We need out of Shaderforge Next Development a "BLUR NODE" .

- This one essential to Blur the Direct & indirect & Specular Hard Lightning Falloffs of unity Default Lightning and scatter it along the surface to have that proper "fake global illumination mood" Within a Custom lightning method That we should And could build "above" the PBR mode.

2) We need also a Mesh Volume Deep aware "SubSurface Scatering" NODE ,

- This one to Inverse and determinate the light incidence and penetration or not over the surface   

3) We need a proper "Relief" SHading mode NODE

- This one , to achieve better Micro Normals across the surface. 

...

And some more ...




But Still right now at SHaderforge Current Version There are methods of emulate Phisical Soft SHading And achieve Phisical Based Aspect out of your Base Shading ! 
Even Without Baking or  Feeding IBL or any maps At all ! There are ways to emulate it ...

If you Have some Remarks and how tos on this matter I Invite you to Leave in the comments bellow !

 
This are just some more Small Chalenges for us to ask and answer ourselfs !

All this is a Draft and a Scratch in the Surface of this big Subject.
That we sure can Translate all that we can, like never before with SHADERFORGE !

Well Enjoy and keep a Next Gen Eye in your creations !


Thank you so much for beying here !

DAVID COOPER
ALUNBRA GAME Studios
HI THERE !

Completely Crazy long post with quite Dense Subjects Above hum ...

Daily Game Studies here at ALUNBRA Studios here are like that everyday ... ;)

Anyway ! 

Not Trying to sell anything BUT By the way , as i cannot edit the post above :
- And being completely FAIR with the Not less than AWESOME SKYSHOP TOOL .

After some Further STUDIES Here is Some latest Information on how to apply And use the "REAL PHYSICAL BASED SHADERS" From SkySHop WIth the New Ambient & Specular DIffuse Nodes That Latest SKYSHOP Version Bring us as extras to SHADERFORGE:

Here is a Tutorial on Some Very Enlightening Techniques of Using the New SkyShop Nodes in SHADERFORGE.


Very cool Tutorial ..
Especially about the Fresnel "Values" that one have to Mix to have realistic Results ... and the shadows trick ...

There Are still some features that i Personally miss Out of Marmoset Skyshop and Shaderforge Integration.

- The New Anisotropic Hair : https://www.youtube.com/watch?v=fDniUwf4VhI

- And the new Subsurface Skin : https://www.youtube.com/watch?v=MKWWA4tv6yY

Shaders that are now in Beta in SKYSHOP And Ported to Unity from toolbag ...

-> Would be quite amazing Addition for us to have those Beta extra features in SHADERFORGE as Nodes ...

-----

That Said : As a Last Note ABout this Dense Subjects.

Even with all the Ingredients as above floating around ...
( Much thanks to the Marmoset team for being the firsts pushing their science further and teasing competition ... in Unity ) 

Making a PURE Physical Based SHader in SHaderforge ( As good as SKYSHOP / or ALLOY / Or LUX SHaders )
Just in SHaderForge is not a Impossible / but a Extremely Difficult Task that Requires Precise knowledge of the Physical values that play with eachothers and one have to pipeline with values that interact in a nested balanced way. 

Skyshop Ambient and Specular Nodes are part of a evolved and "scientifically correct" Physically Based Rendering pipeline That Also Allows to have those PBR Features on Mobiles And Have now the AWESOME Bundle of Terrain / Box Projection / Refractive / Subsurface Scattering / Hair Anisotropic SHaders . All of those 3 or 4 features one cannot have of SHADERFORGE alone at the current 0.36 beta version.

...

So as today if you use SKYSHOP integration with SHADERFORGE you have already 75% of the Hard work done .
After that you can add tricks as Making your own PBR with Special Fx / or Using the Concavity Tricks above it ...

Still we sure miss the Subsurface Scattering, Blur, Anisotropic, Relief - Nodes
Possibilities inside SHADERFORGE to make our life even easier...      
 
And anyway Soon Enough UNITY 5 With a New Rendering Path / and new Shaders Possibilities Will Change All everything in the way we Confront The Physical Based Custom SHading & lightning.

And as "realtime" Lightning and SHadows conditions and the way they interact with our Physically based Shaders is So Important: Here is a Next to come High Candy solution that works in OpenGL / Dx 9 / 11 : 



Just Imagine REal Phisical Soft Lightning With No tricks : As Unity 5 ( GI Solution is still Half baked )
For that We still Have the Upcomming SPECTRAGI https://www.youtube.com/watch?v=5t8NRscsGdk

Of course we would need to bundle to it a Realtime Reflections System ...
As CANDELA and to add that to our Physical Shaderforge shaders instead IBl Convolution ...

But That SPECTRAGI Seams to be a best solution for Deferred & Forward Rendering Paths ...

For example Imagine a PBR SHADERFORGE Subsurface Scattering / or Light Emission Shaders That react and interact to That kind of Realtime Gi Lightning/Shadowing  solution ...  Would be like a dream come true .. 

But Guess what : In Near 6 months Those ( 2 years ago Unbelievable) Real Physical Based Days Are finally coming to all us.

And yeah just that Beats all kind of "soft shading" Solutions Unreal 4 could have xD

BEST REGARDS EVERYONE.

 DAVID COOPER
ALUNBRA GAME Studios