SlideShare une entreprise Scribd logo
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

PPTX
Présentation de HDRP
PDF
Les nouveautés d'Unity 2018
PPTX
XVRRAA #5 Windows Mixed Reality
PPTX
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
PPTX
De Unity à Unreal Engine 4
PPTX
20131024 qualité de code et sonar - mug lyon
PPTX
Windows Mixed Reality : La VR et l'AR façon Microsoft
PPTX
Réalité virtuelle + Open source = &lt;3
Présentation de HDRP
Les nouveautés d'Unity 2018
XVRRAA #5 Windows Mixed Reality
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
De Unity à Unreal Engine 4
20131024 qualité de code et sonar - mug lyon
Windows Mixed Reality : La VR et l'AR façon Microsoft
Réalité virtuelle + Open source = &lt;3

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

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

Plus de Yannick Comte (7)

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

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