SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
RENDU 3D DE
QUALITÉ AVEC UNITY
MEETUP UNITY LYON #3 -YANNICK COMTE
QUI SUIS-JE ?
• Chef de projet / DéveloppeurVR chez Wanadev
• JeuxVR pour salle d’arcade
• Application AR
• Créateur / Développeur chez Demonixis Games
• Création de jeux vidéoVR
• Auteur de plusieurs blogs
• Auteur/Contributeur sur github
QUELQUES PRODUCTIONS
CONTEXTE : UNE 3D TEMPS RÉEL DE QUALITÉ4
SOMMAIRE
• Choisir le bon espace de couleur (Spoiler Alert: Linear)
• Lighting, HDR, Probes et Lightmapping
• Rendering
• Post Processing
• Introduction à HDRP (démo)
• Conclusion
5
ESPACE DE COULEUR LINEAIREVS GAMMA
• Historiquement les moniteurs à tube cathodique
utilisaient une courbe spécifique pour afficher les
couleurs à l'écran
• 0.45 + 0.45 = 0.90 => Linear
• 0.45 + 0.45 = ?
• Aujourd'hui les écrans LCD n'ont plus ce besoin,
mais fonctionnent sur la même norme.
• Les images sont généralement encodées en Gamma
6
ESPACE DE COULEUR LINEAIREVS GAMMA7
ESPACE DE COULEUR LINEAIREVS GAMMA
• Edit > Player Settings > Player
• Va réimporter les textures en linéaire
• Obligatoire sur HDRP
• Obligatoire pour HDR + Tonemapping
• Obligatoire pour un setup lighting
correct
• Non supporté sur OpenGLES 2.0,
WebGL 1.0
• Bancale sur UWP (correction gamma
manuelle obligatoire enVR)
8
LIGHTING
• 3 modes
• Recommandé d'utiliser Mixed
• Car équivalent à Backed + Realtime
• Produit de l'éclairage spéculaire
• Et c'est trop bien
• Realtime doit être utilisé sur des lumières
qui ne peuvent pas être backées
(Particules, etc..)
9
LIGHTING - HDR
• High Dynamic Range
• Une RenderTarget est généralement
limitée à une valeur de couleur entre
0.0f et 1.0f
• L'idée c'est d'aller au-delà de 1.0f...
• Pourquoi ?
• Matériaux émissifs
• Post Processing
10
ECLAIRAGE DIRECT ET INDIRECT
• L'éclairage direct correspond à
un rebond
• L'éclairage indirect correspond
à d'autres rebonds
• On bake généralement
l'éclairage indirect (Lightmaps)
11
REFLECTION PROBES
• Créer une TextureCube utilisée
pour la reflexion
• Idéalement statique, mais peut être
rebakée en temps réel via script
• Ne pas hésiter à en mettre dans
chaque pièces
• Une seule globale pour debug c'est
OK ( )
12
LIGHT PROBES
• Long à placer... Mais il existe des plugins
• OK ça sert à capturer la lumière backées
pour l'utiliser sur les objets non statiques
• Du coup il existe des plugins (Lightprobe
Placer) https://goo.gl/1ewDMi
13
LIGHTMAPPING
• 3 modes là aussi de backing
• Subtractive :Tout est backée dans une texture. Pas de spécularité
(#pasbo)
• Shadowmask : Eclairage indirect et ombres.
• Backed Indirect : Eclairage indirect seulement
• Choisir Realtime OU Mixed (pas comme sur le screen )
14
RENDERING
• Forward : Pas possible d'utiliser beaucoup de lumières,
resérvé aux applications critiques (VR mobile, mobile low-end,
WebGL 1.0). Moins de possibilité de Post Processing
• Deferred : C’est-ce qu'utilise tous les jeux actuellement, c'est
gourmant, mais ça permet d'utiliser tous les types d'effets
• On va utiliser le Deferred Renderer quand on utilisera pas
HDRP
• N'ayez pas peur de l'utiliser enVR Desktop par exemple
• Ne l’utilisez pas sur mobile
15
UTILISATION DU DEFERRED RENDERER
• Se règle sur la caméra ou dans les Player Settings
• Post Processing avancé : Screen Space Reflections <3
• Pleins de lumières en temps réel non statiques !
• Les ombres consomment toujours autant
16
POST PROCESSING
• Améliorer l'image finale avec du
traitement d'image
• Certains effets ne fonctionnent qu'en
Linear + HDR + Deferred
• Minimum : Bloom +Tonemapping
• Attention aux ScreenSpace XXX qui
sont consommateurs (surtout sur
mobile et enVR)
17
INTRODUCTION À HDRP
• Taillé pour le Next-GenTemps réel
• Eclairage volumétrique
• Forward Tiled/Clustered
• Deferred Renderer+
• Pipeline programmable <3
• VFX (particles GPU par nœuds)
• Et bien plus <3 <3 <3
18
CONCLUSION
• Utilisez les APIs graphique nouvelle génération quand c'est possible
• OpenGL ES3+ /Vulkan / DirectX 12
• Utilisez des LightProbes et des Reflexion Probes
• Attention au SSR
• Cochez bien la case static ;) quand ça ne bouge pas
• N'ayez pas peur d'essayer
19
QUESTION ? MERCI !
N’hésitez pas à me suivre ou à me contacter
Mail : comte.yannick@gmail.com
Github : https://github.com/demonixis
Twitter : @CYannick
Twitter : @DemonixisGames
LinkedIn : https://www.linkedin.com/in/yannick-comte-49080947/
Facebook : DemonixisGames
20

Contenu connexe

Similaire à Un rendu de Quality avec Unity 3D

Compression video pour la diffusion web
Compression video pour la diffusion webCompression video pour la diffusion web
Compression video pour la diffusion websamir
 
Presentation master
Presentation masterPresentation master
Presentation mastersamir
 
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution   cyanogen mod _ guillaume lesniak, student at miage nancyAndroid distribution   cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancyParis Open Source Summit
 
Retour d'expérience développement jeux android
Retour d'expérience développement jeux androidRetour d'expérience développement jeux android
Retour d'expérience développement jeux androidjodem
 
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Retour d'expérience :  gérer des flux vidéos multiples de manière optimiséeRetour d'expérience :  gérer des flux vidéos multiples de manière optimisée
Retour d'expérience : gérer des flux vidéos multiples de manière optimiséeSilicon Comté
 
Android Bonnees pratiques
Android Bonnees pratiques Android Bonnees pratiques
Android Bonnees pratiques Patrick Bashizi
 
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...Publicis Sapient Engineering
 
Ez18n theorie encoding gouvernance
Ez18n theorie encoding gouvernanceEz18n theorie encoding gouvernance
Ez18n theorie encoding gouvernancegdigugli
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)Cyrille Martraire
 
Présentation du logiciel PixInsight
Présentation du logiciel PixInsightPrésentation du logiciel PixInsight
Présentation du logiciel PixInsightDidier Walliang
 
Jeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dJeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dXavier MARIN
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...Paris Open Source Summit
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagespprem
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?codedarmor
 
La programmation GPU avec C++ AMP pour les performances extrêmes
La programmation GPU avec C++ AMP pour les performances extrêmesLa programmation GPU avec C++ AMP pour les performances extrêmes
La programmation GPU avec C++ AMP pour les performances extrêmesMicrosoft
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec XamarinCellenza
 

Similaire à Un rendu de Quality avec Unity 3D (20)

Compression video pour la diffusion web
Compression video pour la diffusion webCompression video pour la diffusion web
Compression video pour la diffusion web
 
Presentation master
Presentation masterPresentation master
Presentation master
 
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution   cyanogen mod _ guillaume lesniak, student at miage nancyAndroid distribution   cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancy
 
Retour d'expérience développement jeux android
Retour d'expérience développement jeux androidRetour d'expérience développement jeux android
Retour d'expérience développement jeux android
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Retour d'expérience :  gérer des flux vidéos multiples de manière optimiséeRetour d'expérience :  gérer des flux vidéos multiples de manière optimisée
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
 
Android Bonnees pratiques
Android Bonnees pratiques Android Bonnees pratiques
Android Bonnees pratiques
 
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un d...
 
Ez18n theorie encoding gouvernance
Ez18n theorie encoding gouvernanceEz18n theorie encoding gouvernance
Ez18n theorie encoding gouvernance
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)
 
Présentation du logiciel PixInsight
Présentation du logiciel PixInsightPrésentation du logiciel PixInsight
Présentation du logiciel PixInsight
 
Jeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dJeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3d
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'images
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?
 
La programmation GPU avec C++ AMP pour les performances extrêmes
La programmation GPU avec C++ AMP pour les performances extrêmesLa programmation GPU avec C++ AMP pour les performances extrêmes
La programmation GPU avec C++ AMP pour les performances extrêmes
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin
 
La performance sur mobile
La performance sur mobileLa performance sur mobile
La performance sur mobile
 

Plus de Yannick Comte

Gestion de projet multiplateforme avec Unity
Gestion de projet multiplateforme avec UnityGestion de projet multiplateforme avec Unity
Gestion de projet multiplateforme avec UnityYannick Comte
 
Présentation du Meetup Unity3D Lyon
Présentation du Meetup Unity3D LyonPrésentation du Meetup Unity3D Lyon
Présentation du Meetup Unity3D LyonYannick Comte
 
Meetup XVRRAA #2 : Les news de l'open source
Meetup XVRRAA #2 : Les news de l'open sourceMeetup XVRRAA #2 : Les news de l'open source
Meetup XVRRAA #2 : Les news de l'open sourceYannick Comte
 
Formation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité VirtuelleFormation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité VirtuelleYannick Comte
 
Le guide rapide de la réalité virtuelle
Le guide rapide de la réalité virtuelleLe guide rapide de la réalité virtuelle
Le guide rapide de la réalité virtuelleYannick Comte
 
Initiation à Unity 5
Initiation à Unity 5Initiation à Unity 5
Initiation à Unity 5Yannick Comte
 
La réalité virtuelle sur mobile
La réalité virtuelle sur mobileLa réalité virtuelle sur mobile
La réalité virtuelle sur mobileYannick Comte
 

Plus de Yannick Comte (7)

Gestion de projet multiplateforme avec Unity
Gestion de projet multiplateforme avec UnityGestion de projet multiplateforme avec Unity
Gestion de projet multiplateforme avec Unity
 
Présentation du Meetup Unity3D Lyon
Présentation du Meetup Unity3D LyonPrésentation du Meetup Unity3D Lyon
Présentation du Meetup Unity3D Lyon
 
Meetup XVRRAA #2 : Les news de l'open source
Meetup XVRRAA #2 : Les news de l'open sourceMeetup XVRRAA #2 : Les news de l'open source
Meetup XVRRAA #2 : Les news de l'open source
 
Formation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité VirtuelleFormation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité Virtuelle
 
Le guide rapide de la réalité virtuelle
Le guide rapide de la réalité virtuelleLe guide rapide de la réalité virtuelle
Le guide rapide de la réalité virtuelle
 
Initiation à Unity 5
Initiation à Unity 5Initiation à Unity 5
Initiation à Unity 5
 
La réalité virtuelle sur mobile
La réalité virtuelle sur mobileLa réalité virtuelle sur mobile
La réalité virtuelle sur mobile
 

Un rendu de Quality avec Unity 3D

  • 1. RENDU 3D DE QUALITÉ AVEC UNITY MEETUP UNITY LYON #3 -YANNICK COMTE
  • 2. QUI SUIS-JE ? • Chef de projet / DéveloppeurVR chez Wanadev • JeuxVR pour salle d’arcade • Application AR • Créateur / Développeur chez Demonixis Games • Création de jeux vidéoVR • Auteur de plusieurs blogs • Auteur/Contributeur sur github
  • 4. CONTEXTE : UNE 3D TEMPS RÉEL DE QUALITÉ4
  • 5. SOMMAIRE • Choisir le bon espace de couleur (Spoiler Alert: Linear) • Lighting, HDR, Probes et Lightmapping • Rendering • Post Processing • Introduction à HDRP (démo) • Conclusion 5
  • 6. ESPACE DE COULEUR LINEAIREVS GAMMA • Historiquement les moniteurs à tube cathodique utilisaient une courbe spécifique pour afficher les couleurs à l'écran • 0.45 + 0.45 = 0.90 => Linear • 0.45 + 0.45 = ? • Aujourd'hui les écrans LCD n'ont plus ce besoin, mais fonctionnent sur la même norme. • Les images sont généralement encodées en Gamma 6
  • 7. ESPACE DE COULEUR LINEAIREVS GAMMA7
  • 8. ESPACE DE COULEUR LINEAIREVS GAMMA • Edit > Player Settings > Player • Va réimporter les textures en linéaire • Obligatoire sur HDRP • Obligatoire pour HDR + Tonemapping • Obligatoire pour un setup lighting correct • Non supporté sur OpenGLES 2.0, WebGL 1.0 • Bancale sur UWP (correction gamma manuelle obligatoire enVR) 8
  • 9. LIGHTING • 3 modes • Recommandé d'utiliser Mixed • Car équivalent à Backed + Realtime • Produit de l'éclairage spéculaire • Et c'est trop bien • Realtime doit être utilisé sur des lumières qui ne peuvent pas être backées (Particules, etc..) 9
  • 10. LIGHTING - HDR • High Dynamic Range • Une RenderTarget est généralement limitée à une valeur de couleur entre 0.0f et 1.0f • L'idée c'est d'aller au-delà de 1.0f... • Pourquoi ? • Matériaux émissifs • Post Processing 10
  • 11. ECLAIRAGE DIRECT ET INDIRECT • L'éclairage direct correspond à un rebond • L'éclairage indirect correspond à d'autres rebonds • On bake généralement l'éclairage indirect (Lightmaps) 11
  • 12. REFLECTION PROBES • Créer une TextureCube utilisée pour la reflexion • Idéalement statique, mais peut être rebakée en temps réel via script • Ne pas hésiter à en mettre dans chaque pièces • Une seule globale pour debug c'est OK ( ) 12
  • 13. LIGHT PROBES • Long à placer... Mais il existe des plugins • OK ça sert à capturer la lumière backées pour l'utiliser sur les objets non statiques • Du coup il existe des plugins (Lightprobe Placer) https://goo.gl/1ewDMi 13
  • 14. LIGHTMAPPING • 3 modes là aussi de backing • Subtractive :Tout est backée dans une texture. Pas de spécularité (#pasbo) • Shadowmask : Eclairage indirect et ombres. • Backed Indirect : Eclairage indirect seulement • Choisir Realtime OU Mixed (pas comme sur le screen ) 14
  • 15. RENDERING • Forward : Pas possible d'utiliser beaucoup de lumières, resérvé aux applications critiques (VR mobile, mobile low-end, WebGL 1.0). Moins de possibilité de Post Processing • Deferred : C’est-ce qu'utilise tous les jeux actuellement, c'est gourmant, mais ça permet d'utiliser tous les types d'effets • On va utiliser le Deferred Renderer quand on utilisera pas HDRP • N'ayez pas peur de l'utiliser enVR Desktop par exemple • Ne l’utilisez pas sur mobile 15
  • 16. UTILISATION DU DEFERRED RENDERER • Se règle sur la caméra ou dans les Player Settings • Post Processing avancé : Screen Space Reflections <3 • Pleins de lumières en temps réel non statiques ! • Les ombres consomment toujours autant 16
  • 17. POST PROCESSING • Améliorer l'image finale avec du traitement d'image • Certains effets ne fonctionnent qu'en Linear + HDR + Deferred • Minimum : Bloom +Tonemapping • Attention aux ScreenSpace XXX qui sont consommateurs (surtout sur mobile et enVR) 17
  • 18. INTRODUCTION À HDRP • Taillé pour le Next-GenTemps réel • Eclairage volumétrique • Forward Tiled/Clustered • Deferred Renderer+ • Pipeline programmable <3 • VFX (particles GPU par nœuds) • Et bien plus <3 <3 <3 18
  • 19. CONCLUSION • Utilisez les APIs graphique nouvelle génération quand c'est possible • OpenGL ES3+ /Vulkan / DirectX 12 • Utilisez des LightProbes et des Reflexion Probes • Attention au SSR • Cochez bien la case static ;) quand ça ne bouge pas • N'ayez pas peur d'essayer 19
  • 20. QUESTION ? MERCI ! N’hésitez pas à me suivre ou à me contacter Mail : comte.yannick@gmail.com Github : https://github.com/demonixis Twitter : @CYannick Twitter : @DemonixisGames LinkedIn : https://www.linkedin.com/in/yannick-comte-49080947/ Facebook : DemonixisGames 20