Antonov Suit - Physically Based Shader

Avatar de l’utilisateur
Loic Joint
Messages : 895
Inscription : 12 Déc 2011 11:49
Localisation : France (picardie)
Contact :

Re: Antonov Suit - Physically Based Shader

Message par Loic Joint » 02 Août 2014 11:41

Je vais répondre à sa place lol
Dans le Forward, l'éclairage est calculé en fonction de chaque objet et de chaque lumière. Donc pour chaque nouvelle lumière, la scène est recalculée.
Cela impose donc une limitation : le nombre de lumières. Car le coup en performances du forward pour chaque lumière est nombre de pixels éclairés*nombre d'objets
On peut donc mettre 2-3 lumières sans un coup très élevé mais 50 lumières réduiront trop les performances.

C'est pour cela qu'a été créé le Deferred. Au lieu de calculer l'éclairage en fonction de chaque objet individuellement, on regroupe le tout en une seule "texture", non éclairée, et on calcule l'éclairage en fonction de chaque pixel de l'écran. Le coup du Deferred est plus élevé que le Forward pour un faible nombre de lumière (il nécessite au moins 2 pré-passes), mais comme le coup est le nombre de pixels de l'écran, l'impact est fixe.
Avec le Deferred, ce n'est pas le nombre de lumière qui compte, mais leur taille. On peut donc avoir 150 petites lumières sans un coup élevé.

L'inconvénient du Deferred est qu'il gère mal la transparence et que toute la scène est éclairée de la même manière (avec la même méthode) : c'est pour cela que beaucoup de shaders ne sont pas compatibles Deferred.
Pour pouvoir utiliser des algorithmes d'éclairage différents de ceux utilisés dans le deferred, il faudrait modifier la manière dont Unity fait le rendu du Deferred.
C'est pour ça que dans Unity 5, ils ont fait une refonte complète du rendu deferred, pour qu'il marche en PBR.
Wouaou ! Merci pour cette réponse super complète et très claire, je comprend bien la différence à présent, vraiment sympa de ta part d'avoir pris le temps d'expliquer aussi clairement, je suis sur que cela sera utile à d'autre aussi ! :)
Loic Joint - Graphiste pour le jeu vidéo

Mon portfolio :
http://www.loicjoint.com

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Antonov Suit - Physically Based Shader

Message par ZJP » 02 Août 2014 17:54

toto5100 a écrit : C'est pour ça que dans Unity 5, ils ont fait une refonte complète du rendu deferred, pour qu'il marche en PBR.
Ils gardent l'ancien Deferred ( un sorte de "Deferred Legacy") et ils ajoutent en effet un nouveau "Advanced".

Avatar de l’utilisateur
Charkes
Messages : 26
Inscription : 01 Août 2014 09:31

Re: Antonov Suit - Physically Based Shader

Message par Charkes » 03 Août 2014 19:06

Merci pour vos messages, ça fait plaisir !

cayou66 : "Tu dois être au courant qu'unity 5 aura aussi son propre PBS."

Oui bien sur :).

Loic Joint : "Petite question de la part d'un curieux, appréhende tu pas d'avoir du mal à sortir du lot entre le PBR d'usine de Unity 5 et d'autre déjà existant très populaire comme Lux ?"

Pas vraiment, ce qui comptai avant tout pour moi c'était de faire une release et pouvoir passer à autre chose.
Maintenant que c'est fait je peux améliorer l'ensemble tranquillement car de toute façon j'en aurai l'usage pour mes projets perso.

toto5100 : C'est bien résumé :) !

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Antonov Suit - Physically Based Shader

Message par ZJP » 03 Août 2014 21:20

Sur le forum officiel, je demandais quel outil utilises-tu pour générer les textures du "workflow".
Sinon, c'est du copier/coller de calques sous Photoshop ou Gimp pour obtenir ceci : :?

Pour le Metallic workflow :

_COLOR : Contient à la fois l’albédo diffuse et la specular albédo ou l'un ou l'autre selon le shader.
_NORM : Normal map.
_RGB : R = Metallic, G = Roughness, B = Occlusion.
_RGBA : R = Metallic, G = Roughness, B = Occlusion, A = Alpha.


Pour le Specular workflow :

_DIFF : Diffuse albédo.
_SPEC : Specular albédo.
_NORM : Normal map.
_RGB : R = Alpha, G = Roughness, B = Occlusion.


Pour le Skin shader :

_DIFF ou _COLOR : Diffuse albédo.
_NORM : Normal map.
01_RGB : G = Roughness, B = Occlusion.
02_RGB : R = Cavity, G = Distance de pénétration dans la peau, B = Masque pour le back scattering ( pas encore utilisé ).
MicroBump_RGB = Micro occlusion.
MicroBump_NORM = Micro detail en normal map.

Avatar de l’utilisateur
Charkes
Messages : 26
Inscription : 01 Août 2014 09:31

Re: Antonov Suit - Physically Based Shader

Message par Charkes » 03 Août 2014 22:03

ZJP a écrit :Sur le forum officiel, je demandais quel outil utilises-tu pour générer les textures du "workflow".
Sinon, c'est du copier/coller de calques sous Photoshop ou Gimp pour obtenir ceci : :?

Pour le Metallic workflow :

_COLOR : Contient à la fois l’albédo diffuse et la specular albédo ou l'un ou l'autre selon le shader.
_NORM : Normal map.
_RGB : R = Metallic, G = Roughness, B = Occlusion.
_RGBA : R = Metallic, G = Roughness, B = Occlusion, A = Alpha.


Pour le Specular workflow :

_DIFF : Diffuse albédo.
_SPEC : Specular albédo.
_NORM : Normal map.
_RGB : R = Alpha, G = Roughness, B = Occlusion.


Pour le Skin shader :

_DIFF ou _COLOR : Diffuse albédo.
_NORM : Normal map.
01_RGB : G = Roughness, B = Occlusion.
02_RGB : R = Cavity, G = Distance de pénétration dans la peau, B = Masque pour le back scattering ( pas encore utilisé ).
MicroBump_RGB = Micro occlusion.
MicroBump_NORM = Micro detail en normal map.
"About the workflow, have you tried your shaders with Substance Painter? :)"

C'est pas comme ça que je l'ai compris, pour moi tu me demandais si j'avais testé mes shaders avec substance painter :).

Pour répondre à ta question, et si tu parles des textures _RGB/_RGBA oui c'est un copié collé après tout dépend de ta façon de faire tes textures et de ton organisation.

Sous photoshop (je ne connais pas bien gimp), mes textures _RGB sont dans des groupes de calque ou je masque les couches selon que ce soit metallic, roughness et occlusion puis j’exporte.

Je sais pas si j'ai bien répondu.

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Antonov Suit - Physically Based Shader

Message par ZJP » 03 Août 2014 23:27

Charkes a écrit :"About the workflow, have you tried your shaders with Substance Painter? :)"

C'est pas comme ça que je l'ai compris, pour moi tu me demandais si j'avais testé mes shaders avec substance painter :).
Oops. Désolé. Formulation incorrecte de ma part.
Charkes a écrit :Pour répondre à ta question, et si tu parles des textures _RGB/_RGBA oui c'est un copié collé après tout dépend de ta façon de faire tes textures et de ton organisation.

Sous photoshop (je ne connais pas bien gimp), mes textures _RGB sont dans des groupes de calque ou je masque les couches selon que ce soit metallic, roughness et occlusion puis j’exporte.

Je sais pas si j'ai bien répondu.
Je me doutais que c'est ainsi que tu procédais. Pareil, en attendant de mieux maitriser l'export de Substance Painter...

Merci.

Avatar de l’utilisateur
Charkes
Messages : 26
Inscription : 01 Août 2014 09:31

Re: Antonov Suit - Physically Based Shader

Message par Charkes » 21 Août 2014 18:13

Hey,

Voici une autre update avec pas mal de petits changements : https://dl.dropboxusercontent.com/u/181 ... itypackage

Change log :

v0.043

added exposure control for diffuse and specular cubemap ( request )
added preview sphere for cubemap
added edge scale bleeding for smoothedge ( DX9 )
added three type of convolution for diffuse cubemap
added view dependent roughness ( see GDC FOX Engine )
added edge fix for dx9 in shader ( as a test )

fixed black edge in the lookup texture generator
fixed G_smith model in the lookup texture generator

changed samples amount for a quality setting for convolution
changed cubemap size for a fixed size choice
changed exponent math for GGX cubemap to match more the importance sampling reference
changed skybox convolution projection
changed smooth edge to wokr only on DX9 as DX11 use its own edge fix
changed fresnel for cubemap with lookup texture ( D_GGX and G_Smith used as default now )

removed #pragma_multi_compil for convolution type and moved to different shader instead

improved convolution speed ( a bit )

Avatar de l’utilisateur
F@B
Messages : 1844
Inscription : 01 Août 2013 10:41
Contact :

Re: Antonov Suit - Physically Based Shader

Message par F@B » 21 Août 2014 23:38

super merci!

il faut que je pense a tester ça! je te fais un retour mais ça a l'air d'etre que du bon! :)
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ

Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

Avatar de l’utilisateur
Charkes
Messages : 26
Inscription : 01 Août 2014 09:31

Re: Antonov Suit - Physically Based Shader

Message par Charkes » 22 Août 2014 10:55

J'attends tes retours !

J'ai fait une petite scène avec une arme simple pour montrer le workflow specular et metallic : https://dl.dropboxusercontent.com/u/181 ... RK_41.html ( DX11 )

Les textures ont été faite avec Quixel Suit et avec le preset UE4.

Je mettrai les sources sous peu.

Avatar de l’utilisateur
Charkes
Messages : 26
Inscription : 01 Août 2014 09:31

Re: Antonov Suit - Physically Based Shader

Message par Charkes » 23 Août 2014 17:18

Petite update qui corrige un problem avec les builds : https://dl.dropboxusercontent.com/u/181 ... itypackage

Je suis en train de faire un repo GitHub, ce sera plus simple pour les updates.

Répondre

Revenir vers « Vos créations, jeux, démos... »