Projet image 2016 : Génération de panoramas à la Novat

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet Génération de panoramas de plans de ski "à la Novat"
Cadre Projets de Spécialité
Page principale Modèle:Projet_Étudiant
Labo LIG
Équipe IIHM
Encadrants Renaud BLANCH, Michael ORTEGA


Cadre du projet

  • Encadrant : Renaud Blanch, Michaël Ortega.
  • Prérequis : Interaction Homme-Machine, Géométrie, Graphique 3D, Multimédia.
  • Etudiants :
    • Charlotte GIRARDOT
    • Vincent TAVERNIER
    • Thibaud VERON

Contexte

L'atelier "Pierre Novat" a produit pendant de nombreuses années les panoramas utilisés par la plupart des plans des pistes des stations de ski françaises, inventant une manière de représenter la montagne [0]. Ces panoramas sont des "vues d'artiste" qui ne respectent pas complémentement la géographie des lieux, mais en présentent une vision : des déformations sont appliquées pour permettre de représenter sur le plan tous les aspects d'un domaine skiable qui peut s'étendre sur plusieurs versants.

Nous travaillons actuellement avec Arthur Novat à créer des outils informatiques permettant de générer de tels panoramas à partir de données cartographiques (modèles numériques de terrain, nature du terrain, plan des remontées, etc.) Cela nécessite de relever plusieurs défis, dont celui d'obtenir un rendu "à la Novat".

Travail demandé

Il s'agit donc de générer le rendu graphique des différents éléments constituant un panorama (pour commencer : la neige, les sapins, les rochers) à partir d'un rendu 2D effectué en amont. Ce rendu donnera pour chaque pixel du panorama final différentes informations (distance à la caméra, orientation de la normale, coordonnées du point en latitude/longitude permettant de retrouver des infos locales ---altitude, pente, nature du sol, etc.) Il s'agira donc de générer les éléments de décor à partir de ces informations en utilisant différentes techniques telles que : - de l'ombrage non photoréaliste pour la neige (modèle à déterminer) - des distributions d'imposteurs pour les sapins (placement à gérer) [1] - du rendu procédural (par exemple pour les rochers) [2] - du compositing et filtrage de l'image (effets de matière) [3]

Le rendu sera comparé à celui d'un plan Novat.

Travail Effectué

La réalisation de ce projet s'est effectuée en plusieurs étapes.

Analyse du style de Pierre Novat

Les panoramas de Pierre Novat s'adaptent à chaque point de vue. Cependant, ils présentent aussi des caractéristiques communes qu'il est important de dégager afin de pouvoir les automatiser. Certains éléments se retrouvent dans tous les dessins :

  • La neige
  • Les rochers
  • Les villages
  • Les sentiers
  • ...

Compte tenu de l'importance de la tâche, on s'est uniquement concentrés sur le rendu de la neige et des rochers. Concernant la neige, son rendu est intimement lié au modèle d'éclairage du terrain (blanche uniformément, sauf lorsqu'il y a de l'ombre) et il s'agit donc plus de faire des observations sur l'éclairage en lui-même. Nous avons repéré pour chacun de ces deux éléments les nécessités suivantes : Neige/Modèle d'éclairage :

  • Ombres représentées sous la forme d'applats de couleurs, avec parfois un léger dégradé
  • Eclairage non photo-réaliste, inobservable dans la réalité (plusieurs sources de lumières)

Rochers

  • Servent à souligner un relief accidenté (type crête)
  • Représentés sous la forme de coups de pinceaux qui sont orientés selon la pente.

Environnement

Le programme a été développé en C++ à l'aide de Irrlicht 1.8.3, le code de rendu étant principalement implémenté par des shaders GLSL. Des scripts Python viennent compléter le système de rendu pour préparer les données ainsi que l'environnement.

Outils développés

L'algorithme de rendu développé est résumé par le graphique suivant. Les passes de calcul sont détaillées par la suite.

Algorithme de rendu

Génération du rendu de la neige et des rochers

Neige

Le rendu de la neige se fait en deux temps. En premier, il y a le modèle d'éclairage. Ensuite, il y a la correction colorimétrique.

Modèle d'éclairage

Pour le modèle d'éclairage nous nous somme appuyé sur le style Pierre Novat pour en ressortir ce critère : Il faut une lumière qui fasse ressortir les détails, tout en permettant d'éclairer toute la vallée centrale. Deux modèles de lumière sont donc superposés dans notre rendu. Un, orientable, permet de placer une lumière de type "soleil" afin d'avoir une inclinaison de lumière faisant ressortir les détails. Le deuxième modèle a pour but d'être adapté à l'éclairage de vallée. Il s'agit d'un modèle de lumière "parabolique", éclairant la partie droite de l'image avec une lumière venant de gauche, et la partie gauche de l'image avec une lumière venant de droite.

PasseEclairage.png
Corrections colorimétriques

Suite à cette phase d'éclairage (toujours en niveau de gris), nous appliquons des corrections colorimétriques. Dans l'ordre ; un réglage en luminosité/contraste (transformation affine), une correction gamma, du cel-shading pour imiter les aplat de couleurs de Pierre Novat, et enfin un réglage en teinte saturation pour avoir une image en couleur. Toute ces transformations sont paramétrables dans l'interface graphique.

CorrectionsColorimétriques.png

Rochers

Le rendu des rochers se fait grâce à une texture appliquée dans l'espace image.

Le rendu des rochers se fait en 3 temps :

  • Calcul du placement des rochers en fonction de la pente et de l'altitude.
Des rochers seront placés dans les zones blanches
  • Calcul du gradient, filtrage du gradient, et déformation de la texture le long des lignes de pente. La déformation est du type cisaillement, paramétré par le gradient
Illustration de la déformation
  • Fusion de type alpha, puis Overlay, afin d'obtenir de la neige sous les rochers, et d'assombrir les rochers dans les zones d'ombre.

Rendu Final

Résultat final

Bibliographie

[0] "Plan des pistes" ou la montagne selon Pierre Novat http://france3-regions.francetvinfo.fr/alpes/2013/11/26/plan-des-pistes-ou-la-montagne-selon-pierre-novat-365217.html

[1] Aaron Hertzmann. A Survey of Stroke-Based Rendering. IEEE Computer Graphics & Applications, Special Issue on Non-Photorealistic Rendering. July/August, 2003 (Vol. 23, No. 4). pp. 70-81. http://web.cs.ucdavis.edu/~ma/SIGGRAPH02/course23/notes/S02c23_3.pdf

[2] https://en.wikipedia.org/wiki/Procedural_texture

[3] http://maverick.inria.fr/Membres/Adrien.Bousseau/watercolor_tutorial/index.html