VT2015 Rendu Expressif

= Présentation =


 * Enseignants : Georges-Pierre Bonneau, Didier Donsez (VT2015)
 * Sujet : Rendu expressif
 * Date : 9 octobre 2015
 * Auteur : Christophe Adam

=Résumé=

Le rendu expressif est une branche assez jeune de la synthèse d'image qui a pour but non pas de créer des images qui sont le résultat de simulations de phénomènes physiques réalistes mais qui cherche plutôt à transmettre visuellement des informations sur les objets représentés grâce à une grande variété de styles (dessin, aquarelle, etc.). Ce type de rendu est par exemple très utilisé dans le domaine de l'archéologie. En effet, il permet de représenter des monuments archéologiques lors de reconstruction 3D sans pour autant biaiser l'interprétation par une représentation trop réaliste.

=Mots clefs= Rendu expressif, infographie, synthèse d’image, reconstruction 3D, filtre, effet, stylisation.

=Abstract=

The expressive rendering is a young branch of computer graphics. Its aims is not to create images that are the result of realistic simulations of physical phenomena but rather seeks to visually convey information about the objects represented by a wide variety of styles (drawing, watercolor, etc.). This type of rendering is widely used in the field of archeology for example. Indeed, it is used to represent archaeological monuments in 3D reconstruction without sidestep the interpretation by a too realistic representation.

=Key Words= Expressive rendering, computer graphics, image synthesis, 3D reconstruction, filter, effect, stylisation.

=Synthèse sur le rendu expressif=

Introduction
Le rendu expressif est une branche récente de la synthèse d'image qui a considérablement évolué durant ces dernières années. Il avait d'abord pour but d'imiter les styles artistiques existant (peinture à l’huile, aquarelle, dessin au crayon, etc.) ou d'en créer de nouveaux grâce à l'ordinateur. C'est pour cela que cette branche de l'infographie a d'abord été appelée non-photoréaliste (NPR en anglais). Le rendu expressif ne cherchait pas à reproduire les lois de la physique de façon fidèle au sein d'une scène. Par la suite, ce domaine a évolué est ne se bornait plus uniquement à reproduire des styles existant mais aussi à transmettre un message spécifique dans un style donné.



Les hachures
Les hachures ont donné suite à de nombreuses recherches dans le domaine du rendu expressif. Le style des hachures est constitué de traits se chevauchant dans différentes directions. On les retrouve généralement dans les bandes dessinés ou encore dans les illustrations scientifiques. Elles permettent de représenter le volume d'un objet ainsi que l'intensité lumineuse s'y reflétant.



Les pointillés
Les pointillés ont également fait l'objet d'études approfondies en informatique. Comme pour les hachures, ils ont pour but de montrer les contrastes entre zones d’ombres et zones éclairées sur un objet ou dans une image.



Les peintures à l’huile
Les peintures à l’huile ont pour but de représenter les styles artistiques traditionnels comme l’impressionnisme, l’expressionnisme ou le pointillisme. Pour arriver à un tel résultat, il est nécessaire de créer de petites régions texturées sur l'intégralité d'une image de façon a représenter les coups de pinceau.



Les aquarelles
Les aquarelles ne sont pas constituées de coup de pinceaux mais plutôt d'aplats de couleurs possédant leurs propres caractéristiques. L’objectif est encore une fois de reproduire un style existant pour produire des effets visuels plaisants.



Les styles cartoon
Les styles cartoon ont aussi été très étudiés. Ils sont utilisés dans l'industrie lors de la réalisation de film, de dessins animés et de jeux vidéo. Le rendu cartoon est constitué d'aplats et des discontinuités entre les couleurs, d'abstractions de formes et de matériaux ainsi de segmentations.



Les dessins techniques
Les dessins techniques ont moins un côté artistique. Ils sont plutôt utilisés pour la représentation de carte, de dessin explicatif ainsi qu'en Conception Assistée par Ordinateur (CAO). Ils sont donc plus d'ordre explicatif qu'artistique.



Les analogies
Les analogies ont pour objectifs de reproduire des styles existants. Par exemple, il est possible de créer des fonctions permettant de transférer les couleurs d’une image vers une autre.

D’autres styles
Le domaine du rendu expressif étant très large, de nombreux autres styles peuvent être créés grâce à l'informatique. Il est donc possible de transmettre toute sorte de message en utilisant les bons styles. Il y a donc une infinité de message et de style possible.

Les techniques classiques du rendu expressif
Le rendu « cartoon », aussi appelé « cel shading » en anglais, est principalement composé de deux éléments : une stylisation de l'éclairage et une accentuation des contours. C'est deux technique sont misent ensemble pour créer le style « cartoon » mais travaillent de façon radicalement différentes. Elles vont donc être étudiées séparément.

La stylisation de la lumière
Le « cel shading » est un terme anglais qui signifie littéralement « ombrage de celluloïd ». Il s'agit ici de donner du volume aux objets en utilisant les techniques d'ombrage qui étaient utilisées dans les dessins animés classiques.





Les effets de contours
Le style « cartoon » accentuent les bords des objets par des traits de contour comme le font les dessinateurs de bandes dessinées. Ils servent à la fois au style plastique, mais également à la lisibilité.

Contours par épaississement du maillage


La technique ci-dessus est redoutablement efficace mais n'est cependant pas parfaite. En effet, la forme doit avoir des normales douces pour que tout ce passe bien. Dans le cas contraire, il risque d'y avoir des trous dans le maillage qui seront encore plus visible si le contour est épais. Pour des objets organiques comme les mains d'un personnage par exemple, cela fonctionnera bien mais pour un objet tel qu'une caisse, cette technique ne permettra pas d'obtenir des contours corrects comme le montre l'illustration ci-dessous.



Cependant, la technique précédente peut être améliorée pour obtenir les contours intérieurs de l'objet aux endroits concaves qui se replient sur eux même alors que la technique basique ne dessine que les contours extérieurs, la frontière entre l'objet et le décor.



Contours au pixel en fonction de la normale de la surface
Une seconde technique consiste à utiliser directement la normale de l'objet dans le pixel shader pour dessiner la couleur du contour lorsque la normale de la surface est suffisamment perpendiculaire à la direction de la caméra. Ainsi, une sphère verra ses bords correctement détourés. Cette technique est utile, mais montre de grandes limites. Tout d'abord, elle ne fonctionne qu'avec des objets organiques, encore une fois, mais à un niveau plus fort que la technique d'épaississement des bords. Ici, il est nécessaire que les courbes des surfaces soient douces et suffisamment subdivisées pour que les contours puissent apparaître.



Contours par extrusion des arêtes de bords
Cette technique consiste à sélectionner précisément les arêtes qui constituent un bord, c'est-à-dire un repli dans la surface du point de vue de la caméra. Ces arêtes sont identifiées en comparant la direction de la normale des deux faces qui constituent une arête. La direction de la normale d'une face par rapport à la caméra définit si c'est une « front face » (vers la caméra) ou une « back face » (dos à la caméra). Si une face pointe vers l'avant et qu'une face adjacente pointe vers l'arrière, c'est que l'arête entre les deux est un repli dans la surface, donc un bord.



Une fois toutes ces arêtes sélectionnées, il est possible de créer un maillage constitué d'un rectangle le long de chaque arête et orienté vers la caméra. L'épaisseur du rectangle détermine l'épaisseur des contours. Cette technique permet d'obtenir des contours très manipulables. Il est notamment possible d'afficher une texture sur les rectangles afin de dessiner des contours moins réguliers, avec par exemple un aspect « coups de crayons » qui ouvre la voie vers des styles de rendus très travaillés.



Contours par filtre de détection
Enfin, cette dernière technique de dessin de contours est celle de la détection bidimensionnelle des contours par l'application d'un filtre.

Le filtre « sobel »
Le filtre « sobel » s'applique en deux passes successives, chacune détectant les contours selon un des axes de l'image. Une fois le filtre appliqué, l'image contient les contours.



Utilisation de la profondeur et de la normale
Cette technique utilise les images de profondeur (z-buffer) et de normales (orientation de la surface en espace-écran ou en espace-monde) dans la détection des contours.



Utilisation de couleurs unies
Il est également possible produire une image avec des couleurs unies pour faire de la détection de contours. Dans cette image, chaque objet sera dessiné avec une couleur uniforme et différente des autres objets. La détection de contours dessine alors parfaitement les contours extérieurs des objets.



Faire varier le contour
Il est également possible d'additionner plusieurs détections de contours avec un décalage différent de façon à obtenir des contours en plusieurs traits et plus complexes. L'ajout d'un flou gaussien puis d'une augmentation du contraste adoucira les traits dans leur forme et dans leur trajectoire.



WYSIWYG NPR : un outil de travail du rendu expressif
L'outil WYSIWYG NPR des universités Princeton et Brown est un outil permettant de peindre directement sur les objets 3D d'une scène. Le logiciel adaptera cette peinture lors des changements d'angles de caméra.





Journey
Le jeu vidéo « Journey » sorti en 2012 sur le PlayStation Network est un bel exemple des techniques moderne du rendu expressif. Le jeu n'utilise que très peu de texte. La narration implicite du jeu se fait via des indices visuels et par les émotions ressenties chez le joueur. Le jeu repose sur un équilibre entre simplicité et complexité. La simplicité est présente dans l'utilisation d'aplats de couleurs alors que les effets de brumes, de vents de sable ou de neige ajoutent une touche de complexité visuelle. L'essentiel de l'expérience repose ainsi sur la découverte et l'exploration de différentes atmosphères et l'émerveillement devant les modifications que le joueur peut y apporter.



Okami
Le jeu vidéo « Okami » (2006) du studio Clover est inspiré des œuvres du peintre japonais Katsushika Hokusai (début du 19ème) et du courant artistique qu'il représente (le ukiyo-e), un style d'estampes japonaises. Les techniques utilisées sont originales et le rendu est très particulier. L'univers du jeu est toujours en mouvements, les bords noirs ondulent, des effets de coulures sont visibles (par exemple lorsque le joueur utilise le pinceau dans le jeu), et de nombreux effets de fumées sont utilisés lors des apparitions et disparitions des monstres du jeu.





Création de techniques expressives
Il est également possible de créer ses propres techniques expressives.

L'effet « rêve »
L'idée est de flouter certaines parties de l'image afin de concentrer le regard et l'attention du spectateur sur les points importants du souvenir. Pour cela, il est nécessaire de jouer sur la profondeur de champ et sur la liaison entre la déformation et le flou.





Intégration des fluides dans le rendu expressif
Certaine technique prennent pour base la physique réelle, d'autres cherchent simplement à reproduire les effets visuels de manière purement déterministe et d'autre les deux en même temps. Comme le montre la figure ci-dessous, il est possible de représenter des fluides sans simuler la vélocité d'un objet. Le mouvement du fluide ne suit alors pas une logique physique mais le rendu est très esthétique. Cette technique a l'avantage d'être très peu coûteuse et très contrôlable.



Enfin, il est également possible d'utiliser les fluides pour déformer l'image de la scène, et notamment les contours.



Le travail de la matière hachurée
Les textures hachurées peuvent être utilisées pour représenter les ombres et les dégradés. Elles sont constituées d'un groupe de lignes dans différentes directions ayant pour but de donner des informations sur la direction où l'épaisseur d'un objet. Les hachures sont des indices visuels illustrant l'éclairage, les propriétés d'un matériau, ou encore la forme de la surface. Ce type de visuel est directement hérité du dessin traditionnel et du croquis. On le trouve également beaucoup dans la bande dessinée.

Dessin manuel des textures
Il est très important de rajouter les hachures entre chaque niveau de texture et de ne pas recommencer à zéro à chaque fois. Il est ainsi possible de passer d'une texture à l'autre avec une transition douce et logique, car certaines hachures restent persistantes entre les différents niveaux de luminosité.



Résultat après placage des textures dessinées manuellement :



Conclusion
Le rendu expressif s'inspire des œuvres de la peinture et du dessin afin de proposer un degré d'expression plastique plus poussé. Le rendu expressif rejoint donc la recherche en rendu dit « photoréaliste ». Les deux domaines sont en train de converger et de s'échanger des techniques et des outils. De nombreux jeux vidéo s'inspirent du rendu expressif pour styliser leur rendu et éviter la comparaison avec la réalité photographique. Il existe de nombreuse méthodes de rendu expressif tel que les hachures, les pointillés, les peintures à l’huile, les aquarelles, les styles cartoon, les dessins techniques et de nombreux autres. Les techniques classiques du rendu expressif utilisent la stylisation de la lumière ainsi que par les effets de contours (par épaississement du maillage, au pixel en fonction de la normale de la surface, par extrusion des arêtes de bords, par filtre de détection). Les techniques modernes du rendu expressif telles que WYSIWYG NPR, ainsi que les techniques utilisées dans les jeux vidéo Journey et Okami vont plus loin en ajoutant des effets tel que le vent, la neige, les fluides, etc. mais ne respecte pas les lois de la physique comme le fait le rendu « photoréaliste ». Le rendu expressif permet donc de créer une infinité de style différent adapté à toute sorte de besoin.

=Notes et Références=


 * Site officiel du protocole MQTT
 * OASIS à propos de MQTT
 * github d'un projet d'inclusion de MQTT avec Nagios
 * Page d'information pour MQTT-SN
 * Présentation de MQTT avec Mosquitto