Intégration de méthodes de rendu expressif dans un SIG

2 128 vues

Publié le

Le paramétrage et le stockage des informations de modélisation et de stylisation cartographique au sein des logiciels de SIG s’appuient sur un ensemble de standards et bonnes pratiques définis par l’Open Geospatial Consortium. Le projet ANR MapStyle a notamment pour objectif de permettre l’intégration de méthodes de rendu expressif contrôlables par l’utilisateur au sein d’un logiciel de SIG. Afin d'homogénéiser la description et le contrôle de styles cartographiques mêlant méthodes expressives et usuelles, nous proposons donc une extension des formalismes standards de description de styles cartographiques OGC Styled Layer Descriptor et OGC Symbology Encoding. Nous montrons comment l’architecture proposée permet de concevoir des représentations cartographiques personnalisées.
Présentation lors du séminaire de clôture (29/09/2016).
Les autres présentations sont sur : http://mapstyle.ign.fr/#Seminaire_de_cloture

Publié dans : Sciences
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Intégration de méthodes de rendu expressif dans un SIG

  1. 1. Intégration des méthodes de rendu dans un SIG et conception de cartes stylisées Bertrand Duménieu bertrand.dumenieu@ign.fr 29-09-2016
  2. 2. 2 Augmenter l’expressivité des cartes produites par SIG Données préparées Symbolisation Rendu varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL Stylisation
  3. 3. 3 varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL Moteur de rendu cartographique Shaders → méthode expressive Formalisme de stylisation
  4. 4. 4 Moteur de rendu cartographique
  5. 5. 5 Version OpenGL de Geoxygene (Jeremy Turbet, David Vanderhaeghe) JAVA (LWJGL)
  6. 6. 6 OpenSource (LGPLv2) Version OpenGL de Geoxygene (Jeremy Turbet, David Vanderhaeghe) JAVA (LWJGL)
  7. 7. 7 OpenSource (LGPLv2) Version OpenGL de Geoxygene (Jeremy Turbet, David Vanderhaeghe) JAVA (LWJGL) Standards OGC
  8. 8. 8 Shaders → méthode expressive
  9. 9. 9 Intégration des shaders comme nouveaux outils de dessin (méthode expressive)
  10. 10. 10 varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL Ajout d’une méthode ? varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL Intégration des shaders comme nouveaux outils de dessin (méthode expressive)
  11. 11. 11 varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL Intégration des shaders comme nouveaux outils de dessin (méthode expressive) ‘’Cassini’’ ‘’Paint Brush’’ ‘’Ink Brush’’
  12. 12. 12 varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL Intégration des shaders comme nouveaux outils de dessin (méthode expressive) ‘’Cassini’’ ‘’Paint Brush’’ ‘’Ink Brush’’ Descripteur Descripteur Descripteur
  13. 13. 13 varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL varying vec4 diffuse,ambientGlobal, ambient; varying vec3 normal,lightDir,halfVector; varying float dist; void main(){ vec3 n,halfV,viewV,ldir; float NdotL,NdotHV; gl_FragColor = ambientGlobal; } GLSL Intégration des shaders comme nouveaux outils de dessin (méthode expressive) ‘’Cassini’’ ‘’Paint Brush’’ ‘’Ink Brush’’ Descripteur Descripteur Descripteur
  14. 14. 14 Intégration des shaders comme nouveaux outils de dessin (méthode expressive)
  15. 15. 15 Formalisme de stylisation
  16. 16. 16 Formalisme Spécifications OGC Styled Layer Descriptor et Symbology Encoding Générique Interopérabl e Standard Lisible
  17. 17. 17 Générique Interopérabl e Standard Lisible Formalisme Spécifications OGC Styled Layer Descriptor et Symbology Encoding
  18. 18. 18 Formalisme choisi : Spécifications OGC SLD et SE Générique Interopérabl e Standard Lisible
  19. 19. 19 Formalisme choisi : Spécifications OGC SLD et SE Générique Interopérabl e Standard Lisible
  20. 20. 20 Formalisme choisi : Spécifications OGC SLD et SE Générique Interopérabl e Standard Lisible
  21. 21. 21 Extension des spécifications SLD / SE SLD/SE <Fill> <Stroke> <...Symbolizer>
  22. 22. 22 Extension des spécifications SLD / SE SLD/SE ++ <ExpressiveFill> <ExpressiveStroke> <BlendingMode> SLD/SE <Fill> <Stroke> <...Symbolizer>
  23. 23. 23 Remplissage de surfaces SLD/SE ++ <ExpressiveFill> <ExpressiveStroke> <BlendingMode>
  24. 24. 24 Stylisation de linéaires SLD/SE ++ <ExpressiveFill> <ExpressiveStroke> <BlendingMode>
  25. 25. 25 Modes de mélange SLD/SE ++ <ExpressiveFill> <ExpressiveStroke> <BlendingMode>
  26. 26. 26 Un exemple
  27. 27. 27
  28. 28. 28 <ExpressiveFill> + méthodes de remplissage par patches
  29. 29. 29 <Fill> standard + <BlendingMode> Multiply
  30. 30. 30 <Fill> + <BlendingMode> Multiply
  31. 31. 31 <Fill> + <BlendingMode> Overlay
  32. 32. 32 Cartes
  33. 33. 33 Style ‘’Cassini’’, données GeoHistoricaData [NPAR2016]
  34. 34. 34 Style ‘’Cassini’’, données ScanExpress 1 : 100 000
  35. 35. 35 Style ‘’Aquarelle’’ [NPAR2016]
  36. 36. 36 Style ‘’Estampe’’
  37. 37. 37 Style ‘’Estampe’’
  38. 38. 38 Démo à la pause...
  39. 39. 39 MERCI ! [NPAR2016] Christophe S., Dumenieu B., Turbet J., Hoarau C., Mellado N., Ory J., Loi H., Masse A., Arbelot B., Vergne R., Brédif M., Hurtut T., Thollot J., Vanderhaeghe D. (2016). Map Style Formalization: Rendering Techniques Extension for Cartography, Pierre Bénard; Holger Winnemöller. Expressive 2016 The Joint Symposium on Computational Aesthetics and Sketch-Based Interfaces and Modeling and Non-Photorealistic Animation and Rendering, May 2016, Lisbonne, Portugal. The Eurographics Association, Non-Photorealistic Animation and Rendering.
  40. 40. 40
  41. 41. 41
  42. 42. 42

×