Salut à tout le monde.
J'ouvre aujourd'hui mon blog, comme prévu.
Celui-ci fera principalement l'étalage de tout ce qui touche de près ou de loin à la technologie temps-réel 3D et 2D.
Pour ce premier article, je vais me concentrer sur le nouveau moteur de
Square Enix , annoncé depuis 2010 et dévoilé réellement durant cet
E3 2012 .
Nous avons pu voir un bref échantillon de ce que propose le
Luminous Studio , dans la dernière démonstration technique en temps-réel nommée
Agni's Philosophy .
Avant de commencer, il serait préférable de clarifier un point en particulier :
La séquence ne dévoile en aucun cas un futur projet de Square Enix, son but est de montrer la vision technologique et artistique de Square pour l'avenir.
J’ai vu sur de nombreux sites des aberrations pas possibles, de la manipulation d’information, et également beaucoup de mauvaise foi.
Pour reprendre ce que je disais plus haut, la surprise et la confusion vient sûrement du fait que pour la première fois Square créé un univers de toutes pièces exclusivement pour une tech demo.
À la réalisation, on note principalement un mélange entre du personnel de
Square Enix , de
Visual Works , et
Crystal Dynamic .
___________________________________
Fiche technique Luminous Studio :
Début de développement : Début 2010
Date espérée de la version stable 1.0 : Courant 2013
Supports compatibles : Playstation 3 - Xbox 360 - Personnal Computer (PC)
Prévisions des futures compatibilités : Playstation Next - Xbox Next - Cloud Gaming – iPad
Possibilités de futures compatibilités : Nintendo 3DS - Playstation Vita - Nintendo Wii U - Nintendo Wii
Librairies : Direct X 11 natif - Direct X 9
Langages : Shader Model 5.0 natif - Shader Model 3.0
___________________________________
On remarquera que le moteur à l’énorme ambition de vouloir couvrir une grande variété de plateformes. Un virage déjà engagé avec le
Crystal Tools qui proposait une compatibilité PC – PS3 – Xbox360 – Wii - Wii U. On leur souhaite bien bonne chance pour l’optimisation du moteur vis à vis de chaque machine.
Je vais maintenant décortiquer cette fameuse vitrine technologique qu'est
Agni's Philosophy , tout en comparant le
Luminous Studio un minimum à son ainé, le
Crystal Tools .
Commençons par le début.
Premier point frappant : La richesse géométrique et l'asymétrie des détails.
Agni’s philosophy illustre un
budget polygones et une distance d’affichage absolument estomaquant pour du
temps-réel . Ce constat est en parti expliqué par rapport au fait que certains éléments 3D du
Target render en
pré-rendu , conçu par
Visual Works , ont étés réutilisés à l’identique dans cette démonstration en
temps-réel . De quoi expliquer la complexité géométrique très « pre-rendered CGI » de cette démo. La présence de
LOD adaptif par duplication de vertices, ou simplement l’échange entre deux modèles 3D différents ne semble pas être utiliser tout du long de la démonstration.
Luminous Studio incorpore un système de réflexion temps-réel sur les matériaux, similaire à la méthode «
Real time local reflection » de Crytek. Une formule de réflexion approximative, similaire à du ray-tracing dans le fonctionnement. Une belle évolution par rapport aux techniques populaires actuelles comme le
Cube mapping ou le
rendering to texture . Ces deux dernières solutions sont utilisées dans les productions Crystal Tools. Le rendering to texture a d’ailleurs valu à FFXIII-2 des pertes significatives en terme de performances, dû à son utilisation « osée ».
Sans partir dans d’innombrables explications, la façon de faire pour FFXIII-2 était très intelligente. Elle consistait à
créer une seconde caméra virtuelle tout aussi dépendante du joueur que la première, et faisant face à cette dernière, mais dotée des attributs inversés. Ce qui signifie, que lorsque vous faites tourner la caméra sur la gauche, la seconde caméra, elle, tournera sur la droite. Ceci fait, il fallait relier l’image observée par cette seconde caméra en tant que texture, sur un mesh 3D (ici, un miroir). Au final, la géométrie était doublée, ce qui provoquait de belles chutes de framerate. Le rendering to texture est difficilement applicable à grande échelle, sur de nombreux éléments locaux indépendants, (en dehors de vastes plans d’eau), pour des soucis de performances et de réglages manuels pénibles. Là où le « Real time local reflection » apporte une solution automatisée.
Pour le rendu de la pilosité, il semblerait qu’une technique de computing depuis le GPU et de tesselation ait été utilisée. Chaque poil est également géré de manière physique. Une belle petite révolution dans le monde du temps-réel.
Le SSS (trans-luminescence) est introduit dans ce nouveau moteur. Cette technologie permet de simuler la pénétration de lumière dans les matériaux. Deux exemples : Poser une fine feuille de papier avec des motifs dessinés au recto sur une vitre de manière à avoir le verso du papier en face de soit, avec la lumière du soleil derrière, la pénétration de la lumière à travers la feuille aura pour effet de diminuée l’opacité du matériau, laissant alors entrevoir les motifs au travers. Se plonger dans le noir complet, muni d’une lampe torche, et coller cette dernière à la paume de sa main révèlera la structure interne du membre.
Le Bokeh est un autre élément initialement destiné au pré-rendu dans l'infographie et disponible dans le Luminous Studio. Cet effet de flou d'optique haut de gamme simule ce qui est hors focus de la lentille. Par exemple ici, la main au premier plan est floutée, ainsi que l'arrière plan, la caméra se concentre d’avantage sur le visage du personnage.

L’utilisation de Subsurface Scattering est flagrante sur le visage d’Agni.
Pour ce qui est de la géométrie des personnages dans cette démonstration. C’est de l’ordre de plusieurs centaines de milliers de triangles par modèle 3D. Aucune arrête de polygone n’est visible malgré la complexité des meshes 3D. À voir quel sera le budget alloué à la géométrie des personnages, pour les jeux sous ce moteur.
Pour rappel, les personnages de FFX avaient deux modèles de détails différents : un low poly de 3.000 triangles, et high poly de 10.000. 4 à 6 textures, près de 250 os virtuels d'animation.
FFXIII avait un système similaire : Entre 8.000 et 10.000 pour les low poly, et entre 20.000 et 30.000 pour les high poly. Une vingtaine de textures, plus de 220 os virtuels d'animation.
Un tel écart de statistiques en l’espace d’une génération de console serait utopique.
Je voulais parler des animations, cependant … C’est trop complexe à aborder avec de simples images.
Le nombre hallucinant de polygones a permis aux artistes d’offrir aux émotions des personnages une forte crédibilité. Des rides allant même se dessiner sur la peau des personnages lors des expressions faciales, alors que les muscles paraissent se contracter en temps-réel.
D’après différentes démonstrations plus vieilles du moteur, les personnages seront désormais constitués d'un squelette virtuel, mais aussi d'une masse musculaire calculée par le moteur physique.
Cette masse musculaire (qui prend en compte chaque muscle indépendamment) et le poids pour chaque objet permettra de proposer une animation intelligente et précise pour tout type d’évènements. On imagine par exemple qu’une lourde et imposante arme impacterait les déplacements d’un personnage.
Les animations artisanales (motion capture, ou à la main) ne cesseront pas pour autant, mais le moteur physique prendra le soin de modérer l’animation, de créer lui-même des animations de manières procédurale, en fonction du terrain, du poids, et une multitude de paramètres. Une version plus avancée du moteur physique Euphoria, en somme.
Autre particularité du moteur : les particules !
Elles sont ici fortement misent en avant.
Le moteur peut gérer plusieurs centaines de milliers de particules GPU à la fois sans perte de performance notable.
Sur l'image ici présente, pas moins de 100.000 insectes constitués de polygones sont présents en utilisant de l'instancing de meshes 3D.
Le Crystal Tools avait déjà un bon système de particule pour la génération actuelle. Avec la possibilité de gérer plusieurs milliers de ces « entités » simultanément. Avec d’ailleurs une jolie gestion physique des ricochets d’étincelles, etc.
Luminous Studio semble avoir choisi la solution de Deferred Rendering, au lieu de garder la formule en Forward rendering de son ainé. Les sources de lumières dynamiques sont en nombre conséquent.
On pourrait parler du flou cinétique d’excellente facture (pas d’artefacts dégueulasses), de ce qui semble être un outil d’édition de textures pour les éléments et personnages, etc. Mais alors on n’en aurait pas fini.
Je terminerais juste par l'utilisation de sources de lumières volumétrique 3D haute qualité du Luminous Studio, puisque je suis un fana de l’éclairage (et le volumétrique m’a toujours fait rêver), bien que j’ignore encore la démarche faite pour obtenir ce rendu.
Même si le rendu est agréable, la majorité des jeux actuels possèdent des sources « volumétriques » en screen space (Crysis, Far Cry, Halo, Batman : Arkham City, etc.). Seuls quelques un usent réellement de sources 3D :
-Alan Wake en premier lieu qui offre un festival de sources 3D.
-Uncharted 3, bien que la qualité ne soit pas très bonne (en partie à cause de l'alpha buffer non full resolution).
-Et un peu à part on trouve FFXIII (et FFXIII-2) qui utilisent un système de virtual plane, mélange entre 2D et 3D. Le rendu est très fin, bien quel la lumière soit "accrochée" à la caméra du joueur, offrant parfois des incohérences entre les ombres et les rayons de lumière projetés. Les différentes planes ont tendance à être facilement discernables, à cause de leur nombre pas très élevé (Entre 8 et 10. L'effet est très coûteux).
Mon article se fini. J’ai essayer de faire le plus court possible (un peu par flemme

). En priant pour qu'il ne soit pas foiré. Une option de prévisualisation avant validation serait bénéfique. Au pire, tant pis.
Quoi qu’il en soit, j’espère que vous aurez appréciée ma petite analyse sans grande prétention, et qu’elle aura permis à certains à comprendre un peu mieux une partie des évolutions par rapport à la génération actuelle de jeu console (et même PC).
Edit : Rectification de quelques éléments.
Il risque d'être difficilement compréhensible par beaucoup, du fait des termes employés, mais il reste très bien construit et très instructif !
Un grand bravo !
PS : Pour la lumière volumétrique 3D, ce ne serait pas une résultante du ray-tracing basée sur l'opacité du milieu traversé par les photons ? Mais cela me parait bien trop gros pour un moteur temps réel, non ? Sachant qu'Intel s'essayait il y a quelques temps au full ray-tracing et qu'il leur fallait une énorme machine pour calculé seulement quelques frames par secondes sur un environnement 3D assez pauvre...
Si tu peux me renseigner un peu sur le sujet ?...
M'en parle pas!
Pourtant j'ai demandé aux Morcos à quand le HTML mais ils ne veulent pas soit disant pour la sécurité XD
J'ai pas déceler la technique pour l'éclairage volumétrique utiliser lors de la démonstration technologique. Mais je ne pense pas que ça soit une variante de ray-tracing. Là, sincèrement, je ne suis pas sûr du tout. Je pense que c'est une source de lumière dynamique classique, couplée à un champ de particules volumétriques pouvant recevoir les shadow map environnantes.
Autre chose si tu veux bien ( j'en profite vu que tu sembles très bien t'y connaitre ^^ ) : Tu dis que la tesselation de polygones n'est pas utilisée tout au long de cette demo, mais ne penses-tu pas qu'elle pourrait être utilisée au contraire sans arrêt sur des modèles déjà high poly ? Par exemple il me semble qu'afficher un modèle de 100 000 polygones est bien plus lourd à gérer qu'un modèle à 20 000 polygones qui utiliserait la tesselation suivant le LOD affiché à l'écran.
Est-ce bien le cas ?
C'est légèrement plus compliqué que ça.
Oui, un modèle de 100.000 polygones est bien plus lourd qu'un autre de 20.000 (+displacement).
Les personnages de la démo n'ont pas l'air d'être affecté par un quelconque LOD, ça peut être pour divers raisons. La subdivision polygonale trop intensive peu causer de plus lourdes chutes de performance que de garder des modèles High poly tout le long, à cause des calculs permanents d'une nouvelle géométrie. De plus, il faut avoir une formule de lissage polygonale adaptée (Luminous utilise l'approximative cattmul clark, qui est très efficace).
Square n'en a peut-être pas senti l'utilité (pour une démo). Ca à l'air d'être la même façon de faire que pour FFXIII, qui n'utilisait à aucun moment un système de LOD.
Tu es sûr ? Si c'est le cas cela voudrait dire que Square-Enix a encore de la marge avec la génération actuelle vu les ressources qu'ils pourraient libérer en adoptant cette technique utilisée par la majorité des développeurs aujourd'hui (avec des résultats parfois mitigés mais bon globalement c'est assez efficace).
Bon en tout cas cette démo me semble un peu trop lourde pour une quelconque version xbox next ou playstation next. Je me demande ce qu'il y a dessous le capot du pc qui faisait tourner ça, mais ça devait être méchamment violent. Probablement dual GPU déjà.
Avec la quasi-confirmation d'Epic que la prochaines génération arrive dès 2013 ( Le premier jeu UE4 prévu pour 2013 ), on aura pas de machine assez puissante pour pouvoir permettre ce genre de qualité sans avoir une facture qui dépasserait les 500 euros ( et de loin ! )....
Oui, il n'y a ni LOD pour les décors, ni pour les personnages et monstres.
Et dans un sens, je comprend qu'il ai choisi cette méthode. Avec toutes les données présentes sur le disque (6.8 Go de contenu), il n'y avait même plus la place pour incorporer des modèles pour le LOD (le DVD Xbox ne peut contenir que 6.8 Go de jeu).
Donpandemonium :
FFXIII utilise les low poly pour le gameplay et une grande partie des cutscenes, et les high poly seulement pour quelques cutscenes.
Effectivement, ça se tient.
Décidément, les nuits blanches ne me réussissent pas.