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 !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.
Antonov Suit - Physically Based Shader
- Loic Joint
- Messages : 895
- Inscription : 12 Déc 2011 11:49
- Localisation : France (picardie)
- Contact :
Re: Antonov Suit - Physically Based Shader
Re: Antonov Suit - Physically Based Shader
Ils gardent l'ancien Deferred ( un sorte de "Deferred Legacy") et ils ajoutent en effet un nouveau "Advanced".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.
Re: Antonov Suit - Physically Based Shader
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é !
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é !
Re: Antonov Suit - Physically Based Shader
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 :
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.
Re: Antonov Suit - Physically Based Shader
"About the workflow, have you tried your shaders with Substance Painter? "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.
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.
Re: Antonov Suit - Physically Based Shader
Oops. Désolé. Formulation incorrecte de ma part.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 .
Je me doutais que c'est ainsi que tu procédais. Pareil, en attendant de mieux maitriser l'export de Substance Painter...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.
Merci.
Re: Antonov Suit - Physically Based Shader
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 )
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 )
Re: Antonov Suit - Physically Based Shader
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!
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 !
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Re: Antonov Suit - Physically Based Shader
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.
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.
Re: Antonov Suit - Physically Based Shader
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.
Je suis en train de faire un repo GitHub, ce sera plus simple pour les updates.