XRCinematicImageEffects : Du Post Processing boosté pour vos projets VR avec Unity

XR Cinematic Image Effects est disponible sur Github ! Qu’est ce que c’est ? Un fork des effets Cinematic Image Effects d’Unity avec une compatibilité Unity 2017.3+ et surtout une meilleur prise en charge de la VR grâce au Single Pass Stereo Rendering ! La prise en charge du Single Pass Stereo Instanced est aussi prévue, mais pour plus tard car c’est un peu plus compliqué. Tous les effets originaux ne sont pas disponibles. Je ne suis pas un Shader Guru, mais si vous avez besoin d’un effet en particulier, n’hésitez pas à demander.

TL;DR : Vous avez besoin d’un FXAA ou d’un SMAA pour vos projets VR avec la prise en charge du Single Pass Stereo Rendering ? Et bien c’est gratuit et c’est ici que ça se passe 😉

XR Cinematic Image Effects

Listing des effets

  • Fast Approximate Anti-Aliasing (FXAA)
  • Sub Morphical Anti-Aliasing (SMAA) (temporal non fonctionnel en SPSR)
  • Stylistic Fog (Height Fog)
  • Tone Mapping
  • Vignette / Aberration Chromatique

D’autres effets seront probablement portés plus tard.

Raison d’être du projet

Je ne travail que sur des projets 3D en réalité virtuelle avec pas mal de post processing et surtout, où le Single Pass Stereo Rendering est activé pour conserver un maximum de performances. Enfin tous mes projets actifs ciblent la plateforme Windows Universal (UWP), la stack v2 n’est malheureusement pas compatible avec cette plateforme quand la compilation .Net est activée. L’utilisation de IL2CPP corrige le problème, mais certains plugins ne sont pas compatibles, la compilation est longue et le déboggage est impossible.

Donc la première chose à été de passer sur une autre solution de post processing. J’utilisais Beautify (qui est vraiment super) et maintenant le set de chez Amplify Creation (Occlusion, Bloom et Color), qui sont d’un autre niveau mais qui ne viennent pas nativement avec une solution d’Anti-Aliasing..

Toutes les solutions d’Anti-Aliasing sur l’Asset Store aujourd’hui ne fonctionnent pas en VR quand le Single Pass Stereo Rendering est activé..

Pour corriger ce soucis d’Anti-Aliasing, on peut télécharger l’ancienne solution de post processing d’Unity qui proposait un FXAA et SMAA, mais malheureusement encore une fois, ces solutions ne sont ni à jour, ni compatible avec le Single Pass Stereo Rendering, essentiel à tout projets VR aujourd’hui (on peut faire sans hein, mais le gain de performance est tellement intéressant qu’il est dommage de s’en priver).

Je me suis donc mis en tête de porter le filtre Anti-Aliasing qui propose du FXAA et du SMAA pour les utiliser des mes projets. De là, j’ai porté d’autres effets issus de ce pack.

Pourquoi et quand utiliser ces effets ?

  • Impossibilité d’utiliser la stack post processing V2
  • Utilisation d’autres effets comme Beautify ou Amplify
  • Besoin d’un ou deux effets bien précis

Contributions

Si vous aimez mettre les mains dans le code bas niveau ou avez un soucis, rendez vous sur Github !