jeudi 24 mai 2012

Taodyne: This blog has moved permanently

Taodyne: This blog has moved permanently: This blog has moved permanently to the main Taodyne web site . One of the primary reasons is that this makes it easier for us to publish mul...

This blog has moved permanently

This blog has moved permanently to the main Taodyne web site. One of the primary reasons is that this makes it easier for us to publish multi-lingual blog posts. Join us there to find tutorials, news and more...

dimanche 22 avril 2012

Tao Presentations 1.08 est disponible

Une mise à jour de Tao Presentations est disponible sur notre site. Il s'agit de la version 1.08. Si vous avez déjà téléchargé Tao, il vous suffit de vous rendre dans l'historique de votre compte pour y trouver le lien de téléchargement mis à jour.
Cette nouvelle mouture apporte de nouvelles fonctionnalités :
  • Un module "nuage de points" (PointCloud) qui permet d'afficher des ensembles de points. Par exemple, des scans d'objets 3D, des ensembles de particules en physique, des étoiles... La vidéo RadioHead - House of Cards que nous avons postée sur YouTube, inspirée du clip original de RadioHead, utilise ce nouveau module.
  • La primitive canvas, qui permet de dessiner dans une texture. Comme frame, mais sans effacement du contenu avant chaque tracé.
  • Le module SlideShow3D propose un nouveau mode d'affichage d'images appelé slider.
Parmi les problèmes corrigés et les améliorations on peut citer :
  • L'utilisation des VBOs (Vertex Buffer Objects) sous Linux est maintenant possible. Les performances du module de visualisation d'objets 3D (ObjectLoader) en sont améliorées, en particulier pour les objets complexes (plusieurs centaines de milliers ou millions de sommets).
  • L'interface de navigation page par page (Ctrl-G, ou Cmd-G sur Mac) met maintenant en évidence la page courante, et non la première page comme précédemment.
  • Le mode de rendu différé (rendu vers fichiers) traite correctement de la transparence de la couleur de fond.
  • Les performances du mot-clé with ont été améliorées (par exemple : f with 1..1000).

mercredi 4 avril 2012

In praise of text files and protocols

I ran into this blog post explaining why using text files and protocols is great for users.
The deeper story is that human-readable text formats are wonderful: they are easily debugged, they are easily manipulated (with text editors and other tools like awk and sed), and they can be compressed using common compression programs if space is a problem.
This deep truth is one key reason we chose an open text format based on a free software programming language for Tao Presentations.

lundi 19 mars 2012

Tao Presentations pour ajouter une nouvelle dimension à vos événements


Chaque entreprise, petite ou grande, a besoin de parler de ses produits ou services. Une bonne communication est primordiale. Elle doit s’adapter et suivre les tendances du marché afin d'être compétitive. L’entreprise doit être à l’affût des innovations les plus importantes et ainsi avoir une longueur d’avance sur la concurrence.

L’événementiel est un secteur dont l’objectif est de transmettre un message. Que l’événementiel soit votre activité principale ou que vous organisiez des événements pour mettre en valeur vos produits et services, l’événement n’est pas un but en soi. Le but est la rencontre de clients, le lancement d’un produit, la motivation d’une force de vente. Le coeur de l’événement est donc un message. Tao Presentations ajoute la 3D interactive à votre arsenal d’outils de communication.

Faire des logiciels de présentations une véritable arme de communication

Les logiciels de présentations, comme leurs noms l’indique, sont conçus pour présenter un produit, un service, une idée. Contrairement à un film, une présentation est interactive. Le présentateur est maître du rythme de son discours. Certains outils, dont Tao Presentations, permettent au public lui-même d’interagir avec le contenu présenté (votes, réponse à des Quiz, etc.).

Une bonne présentation est souvent au coeur de l’événement. C’est pour cela que le client final fait souvent appel à des sociétés externes pour ciseler le message, choisir des graphismes adaptés et de grande qualité, voire des films ou des animations. Mais, même si plusieurs outils ont tenté de renouveler le genre, faire une présentation qui surprenne et impressionne de nos jours est un vrai défi. Il existe une très forte demande pour des outils permettant de marquer une vrai différence.

Tao Presentations relève ce défi en proposant trois innovations majeures: la 3D (y compris la 3D relief sur les écrans qui le supportent), une interactivité sans pareille et la liberté de créer des visuels et animations sur mesure.

Démocratiser la 3D

Un problème avec la 3D de nos jours est la création du contenu. D’une part, le contenu 3D coûte encore cher, tant en logiciel qu’en moyens humains; d’autre part, un contenu 3D créé pour un type d’écran n’est pas utilisable sur un autre type.

Taodyne propose un logiciel très abordable, et qui permet au contenu d’être affiché de façon optimale en fonction de l’écran. Ainsi, animations, objets et films 3D s’afficheront en relief sur un écran 3D (avec ou sans lunette selon le type d’écran). Mais sur un écran 2D traditionnel, le même contenu, sans aucune modification, s’affichera correctement en «fausse» 3D. L’investissement réaliser pour tirer parti des écrans 3D sera donc réutilisable pour les écrans traditionnels.

Dès lors, pourquoi ne pas transformer dès aujourd’hui votre présentation d’entreprise ou votre prochaine introduction de produit en grand spectacle 3D ?

Se différentier par l’interactivité

Le succès de tout établissement repose sur sa capacité à se différencier de ses concurrents. Tao Presentations permet à votre communication de faire peau neuve, de devenir plus interactive, de tirer parti de ce que les américains appellent le touch less, c’est à dire les interfaces sans contact.

L’entrée d’un hôtel, d’une agence, d’un salon ou encore une salle d’attente sont les premières pièces avec lesquelles le client entre en contact. Il est primordial que cet espace soit utilisé de façon innovante pour faire passer des informations. Une borne interactive 3D sans lunettes permet non seulement un affichage publicitaire attractif, mais aussi de présenter à la clientèle les services offerts ou de leur donner des informations en temps réel.

Avec Tao Presentations, vous avez la possibilité de créer des bornes interactives en 2D ou 3D. Celles-ci peuvent être accessible depuis l’extérieur même si elles sont placées à l’intérieur de votre établissement. Nous proposons par exemple un clavier accessible sans contact à travers une vitrine. Pour les clients qui se trouvent à l’intérieur de votre établissement, nous proposons aussi une souris virtuelle permettant de manipuler des objets simplement en bougeant le bras en l’air, des caméras repérant la position de la main pour déplacer un curseur sur l’écran.

Quoi de mieux pour le client que de parcourir votre offre de façon interactive et attractive ? Visiter les chambres d’un hôtel, consulter un catalogue de produits, configurer un véhicule, choisir une maison, tout cela peut maintenant être fait en 3D comme en 2D, sans contact, et si nécessaire à travers une vitrine. Les écrans 3D sans lunettes type Alioscopy ou Philips apportent une forte valeur ajoutée à vos salles d’attentes, vos halls d’accueil, vos vitrines.

Grâce à nos solutions, vous pouvez attirer vos clients et susciter leur l'intérêt.

Utiliser la 3D pour communiquer mieux et vendre plus

De nombreuses études ont montré que la 3D augmente l’impact du message transmis. On peut communiquer mieux et plus vite.

Ainsi, une université néerlandaise a découvert qu’une borne interactive en 3D (Article en anglais) permettait d’augmenter les ventes d’un distributeur de boisson de 8,5%, et augmentait de plus de 40% l’attention portée par le public au message publicitaire.

Dans le domaine éducatif, des études ont montré que des enfants assistant à une projection en 3D retenaient mieux la leçon. Ainsi, l’amélioration de leurs notes après le cours augmente de 17% chez les étudiants ayant reçu un cours en 2D, contre 8% pour ceux ayant reçu le cours en 2D, et 85% des enfants voient leur score augmenter, contre 52% pour ceux ayant suivi le cours en 2D.

La 3D devient donc un élément incontournable de la communication, quel que soit le produit ou le service. Elle apporte une visibilité maximale auprès des partenaires et des clients pour se distinguer au mieux des concurrents.

Quelles technologies vous faut-il?

Que vous gériez une agence, un lieu d’accueil ou le client final d’un événement, comment identifier le matériel, les logiciels ou les compétences nécessaires ? Quelle technologie choisir, à quel prix ? Comment filmer et raconter une histoire en 3D ? Comment utiliser les nouveaux outils d’interactivité? Taodyne vous propose son expérience dans le domaine de la 3D pour répondre à ces questions.

Il existe par exemple différentes technologies de rendu 3D :

  • La «fausse» 3D permet d’afficher des contenus 3D sur un écran 2D. La majorité des jeux vidéo aujourd’hui utilisent ce type de 3D. Tao Presentations affiche en fausse 3D sur les écrans 2D. Même ce rendu sans vrai relief reste très impressionnant par rapport aux outils de présentation habituels.
  • La 3D stéréoscopique nécessite un écran 3D et des lunettes adaptées. Il existe deux grandes catégories d’affichage appelées active et passive. Selon le type d’événement, une technologie conviendra mieux qu’une autre. Taodyne peut vous conseiller dans ce choix.
  • Enfin, la 3D sans lunettes, ou auto-stéréoscopique, exige des écrans spéciaux, qui ressemblent extérieurement à des téléviseurs traditionnels mais offrent un affichage en vrai relief. Ces écrans permettent d’afficher par exemple un message en relief dans un hall d’accueil.

De même, il existe de nombreuses solutions permettant de créer des bornes interactives innovantes: claviers, souris, solutions sans fil, solutions sans contact, etc. Chacune de ces technologies correspond à un type d’usage particulier.

  • Un clavier sans contact offre une nouvelle approche pour interagir avec la présentation ou l’écran. Il accompagne idéalement un écran 3D sans lunettes, permettant aux clients d’interagir avec l’écran tout en restant à la distance idéale pour la perception du relief. Il permet par exemple la sélection rapide de choix dans un menu, simulant les touches de flèche d’un ordinateur.
  • Une souris virtuelle permet une manipulation fine d’objets avec la main. Cette solution est idéale pour faire tourner un objet sous tous les angles, le manipuler, faire défiler des photos ou des films, et toute opération qui peut tirer parti d’un mouvement continu.

Taodyne propose un service d’intégration d’écrans 3D sans lunettes et de supports tactiles. Nous pouvons vous fournir un devis personnalisé et gratuit pour vos projets et aménagements.


Information

Taodyne peut vous conseiller et vous fournir le matériel nécessaire pour accompagner votre logiciel Tao Presentations et ainsi en tirer le meilleur de vos messages. Tao Presentations est compatible aussi bien avec des téléviseurs 3D du commerce qu’avec des écrans auto-stéréoscopiques destinés à l’affichage dynamique. Le même contenu peut aussi bien être projeté dans une salle de réunion en qualité cinéma sur un écran de 20 mètres.


Plus d’informations sur www.taodyne.com



jeudi 8 mars 2012

Taodyne à Heavent Meetings Sud les 21 et 22 mars



Taodyne sera à Heavent Meetings Sud, le rendez-vous de l'événementiel sur la Côte d'Azur, qui se tiendra les 21 et 22 mars prochain au Palais des Festivals de Cannes. Venez découvrir comment donner une nouvelle dimension à votre communication en utilisant la 3D relief et l'interactivité.

Save the date!


Après 3 ans d'absence, Heavent Meetings Sud signe son grand retour à Cannes en 2012. Cette année, Taodyne rejoint ce grand rendez-vous à ne manquer sous aucun prétexte. Deux journées dédiée à la communication, à l'événementiel et à l'interactivité. Taodyne vous fera découvrir comment mettre Tao Presentations au service de la communication en 3D, en vrai relief, avec ou sans lunettes.

N'attendez plus, demandez gratuitement vos badges d'accès ici.

jeudi 1 mars 2012

Tao Presentations 1.05 est disponible

La version 1.05 de Tao Presentations apporte des corrections et améliorations par rapport à la version 1.04, principalement :

  • Le menu Affichage contient maintenant une option Mire d'identification stéréoscopique, qui permet de vérifier le fonctionnement correct d'une configuration 3D. Lorsque cette option est activée, le logiciel affiche des images qui permettent d'identifier les vues stéréoscopiques, et ainsi de vérifier que chaque œil "voit" bien la bonne image. C'est indispensable pour assurer un effet 3D correct.
    Ainsi, lorsque Tao Presentations est connecté à un téléviseur 3D correctement configuré, on voit les images suivantes :
    Œil gauche
    Œil droit
    Dans certains cas, il peut être nécessaire d'inverser les images (depuis Tao Presentations, ou en utilisant un réglage sur l'écran ou le projecteur).
  • Le module VLC Audio Vidéo propose une nouvelle commande vlc_init qui permet de passer diverses options de configuration à VLC. En particulier, il est possible de préciser un proxy HTTP pour accéder à des vidéos là ou une connection ouverte à internet n'est pas possible (cf. la documentation technique du module).
  • La version Windows de Tao Presentations pouvait afficher une erreur lors du téléchargement d'un module. Ce problème est corrigé.
  • La version Linux (Ubuntu/Debian) pouvait ne pas afficher certaines vidéos si le package vlc n'était pas installé.  Cette dépendance est maintenant prise en compte.

samedi 25 février 2012

La terre et ses rayons

Dans cet article nous allons voir comment créer avec Tao Presentations une suite de pages qui permettent de faire un menu grâce à des rayons colorés autour de la Terre. Voici à quoi ressemble le résultat final (la Terre tourne sur elle même) :

Afficher le fond

Le fond est simplement constitué d’une photo de la galaxie Andromède. Les utilisateurs de Macintosh pourront trouver cette image sous /Library/Desktop Pictures/Andromeda Galaxy.jpg. Les autres pourront utiliser une autre image de ciel étoilé.
Comme l'image originale est un peu trop claire, on l’assombrit en la coloriant en gris.
color "gray"
image 0, 0, 0.6, 0.6, "Andromeda Galaxy.jpg"

Placer le fond en profondeur

Tao Presentations permet l'affichage en 3D sur les écrans qui le permettent, par exemple un téléviseur 3D. Pour que l’effet 3D puisse être rendu, il nous faut placer l'image de fond en arrière. Nous allons pour cela utiliser une technique décrite précédemment.
background -2400,
    color "gray"
    image 0, 0, 0.6, 0.6, "Andromeda Galaxy.jpg"
Ce code nous permet de faire deux choses très utiles: envoyer l'image en arrière plan avec translatez sans faire apparaître de bord noir, et s'assurer qu'il s'adapte automatiquement à la taille de la fenêtre ou de l'écran.

Afficher la Terre

La Terre est affichée en léger arrière plan avec background -800, ... pour permettre aux information de venir se mettre devant. La Terre en elle-même est constituée d’une sphère sur laquelle est plaquée une texture représentant la surface du globe.
On rajoute une deuxième sphère autour de la première, sur laquelle est plaquée une texture de nuages qui tourne légèrement plus lentement que la Terre. Pour cette deuxième texture, nous utilisons un fichier .PNG qui permet d'avoir de la transparence. Enfin, ajouter une lumière permet de rendre l'ensemble beaucoup plus réaliste.
background -800,
    light 0
    light_position 1000, 1000, 1000

    texture_wrap true, true
    rotatey 3.5 * time
    texture "earth.bmp"
    sphere 550
    rotatey -0.2 * time
    texture "clouds.png"
    sphere 560

Afficher les textes un par un

Chaque «gélule» est sur une page différente pour utiliser le mécanisme pré-câblé de défilement des pages par les flèches haut et bas pour l’affichage progressif.

Fond

On va donc créer une fonction «earth_background» qui va gérer l’affichage du fond tel que nous l’avons vu dans les étapes précédentes :
earth_background ->
    locally
        background -2400,
            color "gray"
            image 0, 0, 0.6, 0.6, "Andromeda Galaxy.jpg"

        background -800,
            light 0
            light_position 1000, 1000, 1000

            texture_wrap true, true
            rotatey 3.5 * time
            texture "earth.bmp"
            sphere 550
            rotatey -0.2 * time
            texture "clouds.png"
            sphere 560

Gélule de texte

Ce qui est identique dans chaque gélule, c’est sa taille et sa «position» à la rotation près. Ce qui diffère entre les gélule, c’est la couleur, la rotation et le texte. On va donc créer une fonction qui dessine une gélule et qui prend le texte en paramètre, la rotation et la couleur seront donnés avant l’appel à la fonction :
rrect T:text ->
    locally
        translatex 500
        translatez -50
        rounded_rectangle 0, 0, 300, 80, 50
                    
        text_box 0, 0, 280, 80,
            color "white"
            font "Arial Rounded MT Bold", 40
            align 0.5
            vertical_align 0.5
            text T
On dessine donc un rectangle arrondi, et on y place une boîte de texte centrée horizontalement et verticalement, contenant le texte donné en paramètre.
Puis nous appelons cette fonction après avoir fait la rotation et donné la couleur de la gélule :
        locally
            rotatez 25 * (2-N)
            color tao_color N
            rrect tao_ray_text N

Affichage de l’ensemble du texte

Maintenant nous faisons une fonction qui affiche de 1 à 5 rayons suivant un nombre maximum de rayons souhaités :
tao_rays Max:integer ->
    locally
        translatex 100
        scale_contents
        tao_ray 0, Max
        tao_ray 1, Max
        tao_ray 2, Max
        tao_ray 3, Max
        tao_ray 4, Max

tao_ray N:integer, NbMaxRay:real ->
    if NbMaxRay > N then
        locally
            rotatez 25 * (2-N)
            color tao_color N
            rrect tao_ray_text N

Affichage des pages

Et enfin nous définissons les pages qui affichent les rayons :
page "Spinning Earth in 3D",
    earth_background

page "Spinning Earth + Dynamic",
    earth_background
    tao_rays 1

page "Spinning Earth + Interactive",
    earth_background
    tao_rays 2

page "Spinning Earth + Simple",
    earth_background
    tao_rays 3

page "Spinning Earth + Extensible",
    earth_background
    tao_rays 4

page "Spinning Earth + 3D",
    earth_background
    tao_rays 5

vendredi 24 février 2012

Afficher une image en fond en 3D

Tao Presentations permet l'affichage en 3D. Cela veut dire qu'on peut l'utiliser sur des télévisions 3D ou des projecteurs 3D et avoir un réel effet de profondeur.

Pour donner une bonne impression de profondeur, il est important d'utiliser une image ou un film en fond qui va donner à l'oeil une perspective. Idéalement, ce fond doit couvrir correctement l'ensemble de l'écran.

Dans ce tutoriel, nous allons voir comment envoyer une image en fond d'écran qui s'adapte automatiquement à la taille de l'écran

Afficher une image

Pour afficher une image, on utilise tout simplement la fonction image de Tao Presentations. Par exemple, pour créer un simple fond d'écran utilisant le fichier Andromeda Galaxy.jpg, il suffit d'utiliser le script suivant:

color "white"
image 0, 0, 100%, 100%, "Andromeda Galaxy.jpg"

Envoyer cette image vers le fond

Sauf instructions particulière de notre part, notre image s'affiche directement sur le plan de l'écran. Si nous voulons l'envoyer en arrière plan, nous pouvons utiliser la fonction translate qui nous permet de l'envoyer par exemple "4000 pixels en arrière":

translate 0, 0, -4000
image 0, 0, 100%, 100%, "Andromeda Galaxy.jpg"

Redimensionner le fond

Le fond est maintenant entouré d'un bord noir disgracieux. On peut corriger cela assez facilement en utilisant la fonction scale pour redimensionner l'image. Par exemple:

translate 0, 0, -4000
scale 150%, 250%, 100%
image 0, 0, 100%, 100%, "Andromeda Galaxy.jpg"

Redimensionner intelligemment

Le facteur d'échelle à appliquer dépend de la taille de la fenêtre. C'est là que le fait de disposer dans Tao Presentations d'un véritable langage de programmation va se révéler très utile. Nous allons pouvoir calculer correctement le facteur d'échelle à appliquer en utilisant le code suivant:

scale_background -> scale3 background_scale
background_scale -> max(window_width/slide_width, window_height/slide_height)
scale3 S:real -> scale S, S, S
slide_width  -> 1024
slide_height -> 768
Ce code ajoute un nouveau mot à notre vocabulaire: scale_background, qui applique un facteur d'échelle applicable à un fond d'écran, qui garantit que l'image choisie couvrira toujours la totalité de la fenêtre, a supposer que l'image d'origine fasse 1024x768 comme indiqué par slide_width et slide_height.

On peut créer une autre variante sur le même principe, mais destinée à du contenu qui lui doit toujours être affiché en intégralité:

contents_scale -> min(window_width/slide_width, window_height/slide_height)
scale_contents -> scale3 contents_scale

On peut maintenant créer des présentations dans lesquelles le fond et le texte s'adaptent de façon différente à un changement de dimensions de la fenêtre: le fond occupe tout l'espace quitte à être "découpé", tandis que le texte s'adapte pour tenir en entier dans la page.

Redimensionner un fond

Il nous reste encore à calculer automatiquement le facteur d'échelle à appliquer à un fond. Celui-ci dépend de la position de la caméra.

ztrans_contents Z:real ->
    Z0 -> 6000.0
    Z0 := camera_position at 3
    translatez Z/contents_scale
    scale3 (Z0-Z)/Z0

ztrans_background Z:real ->
    Z0 -> 6000.0
    Z0 := camera_position at 3
    translatez Z/background_scale
    scale3 (Z0-Z)/Z0
Ce code ajoute deux nouveaux mots à notre vocabulaire: ztrans_background pour reculer un fond et ajuster sa taille automatiquement, et ztrans_contents pour faire la même opération avec un contenu comme un texte ou une image.

Rendre tout cela facile à utiliser.

La dernière étape est de rendre tout cela facile à utiliser. Nous allons créer le mot background pour placer n'importe quel type de contenu en fond.

background Depth:real, Body ->
    locally
        scale_background
        ztrans_background Depth
        color "white"
        Body
Nous utilisons ici une possibilité très intéressante du langage XL, celle de passer facilement un "bout de code" en argument. L'utilisation de background pour afficher notre image de fond devient très simple:
background -4000,
    image 0, 0, 100%, 100%, "Andromeda Galaxy.jpg"

Lecteur multimédia dans Tao Presentations

Il est très fréquent d’avoir besoin de lire des vidéos ou des musiques dans des présentations. Mais malheureusement la plupart des logiciels de présentations courants ne proposent que peu de contrôle sur ce type de contenu. C’est pourquoi il semblait intéressant de voir ce qu’il était possible de réaliser avec le logiciel Tao Presentations pour comparer avec ce qui existe déjà.
Ainsi, je me suis laissé tenter par la création d'un lecteur multimédia uniquement dans Tao Presentations en utilisant le module VLCAudioVideo pour faciliter la gestion de la lecture et le résultat est finalement très intéressant :
  • Prise en charge de la majorité des formats multimédia
  • Lecture d'un fichier unique, d'une liste ou d'un dossier complet ainsi que des URLs (notamment Youtube)
  • Utilisation facile par l'intermédiaire de contrôles simples

En conclusion, je vous invite à decouvrir le résultat directement sur notre boutique à l'adresse ci-dessous :

http://www.taodyne.com/shop/fr/exemples-de-documents/97-lecteur-multimedia.html

Pour voir ce résultat, vous devez avoir installé une version de Tao Presentations (une version d'essai est disponible ici) ainsi que le module VLCAudioVideo à jour (disponible ici).

dimanche 19 février 2012

Profondeur de champ

La perception de la profondeur d’une scène 3D passe par plusieurs phénomènes, dont l’un des plus importants est sans doute la vision binoculaire : notre œil gauche ne voit pas exactement la même image que notre œil droit, puisqu’il est légèrement décalé. Le cerveau interprète les différences entre les deux images comme une différence de distance de l’observateur par rapport aux objets observés, ce qui crée l’impression de profondeur ou de relief.

C’est ce phénomène stéréoscopique qui est principalement mis en œuvre dans le cadre du cinéma ou de la télévision en 3D tels que nous les connaissons aujourd’hui. Grâce à ses module d’affichage, Tao Presentations permet de tirer pleinement parti de tels systèmes.

D’autres caractéristiques de l’image participent à l’effet de profondeur :
  • La projection de la scène 3D en deux dimensions introduit un effet de perspective, qui fait converger les lignes parallèles à l’infini. Cette convergence est un indice fort permettant à l’œil d’estimer la distance, et donc la profondeur 3D.
  • De cette perspective découlent d’autres indices visuels plus ou moins forts : impression de profondeur due aux objets en mouvement, taille relative de deux objets identiques mais positionnés à une distance différente de l’observateur, disparition des détails dans le lointain...
Mais l’effet qui m’intéresse ici, et qui participe également à la création d’un volume 3D, est le flou de mise au point (ou d'accommodation). Lorsqu’on observe un objet, l’œil fait la mise au point sur cet objet de manière à ce qu’il soit net. En contrepartie, les objets qui sont beaucoup plus éloignés, ou au contraire beaucoup plus proche de nous que l’objet observé apparaissent flous. Cette “profondeur de champ” limitée de l’œil est également fréquemment mise en avant en photographie, pour produire des clichés plus expressifs.

Il y a quelques jours, je suis tombé sur un article (en anglais) qui propose une technique pour simuler cette profondeur de champ en OpenGL. En quelques mots, on génère deux textures :
  • La première représentent l’image 2D de la scène 3D,
  • La deuxième est la carte de profondeur (depth map en anglais) qui correspond à cette image. Cette carte est une représentation, en niveaux de gris, de la distance qui sépare l’œil de l’observateur du point observé.
Ensuite on utilise un fragment shader GLSL qui va appliquer sur la première texture (image) un flou plus ou moins important selon la distance donnée par la seconde texture (depth map).

La commande frame_texture_with_depth de Tao Presentations permet d’obtenir facilement les deux textures requises. Voici un exemple qui représente deux boules de billard, la bleue se trouvant plus éloignée de l’observateur que la jaune :


Les textures d’image et de profondeur sont les suivantes :


Les tons de gris affichés dans la moitié droite de l’image représentent fidèlement la profondeur de la scène. Ainsi, un point blanc signifie qu’il n’y a aucun objet visible (c’est la couleur de fond qui est affichée sur l’image de gauche, ici le blanc). Au contraire, un point sombre correspond à un objet très proche de l’observateur. La boule jaune étant plus proche que la bleue, elle apparaît en gris plus foncé sur la depth map.

À partir de ces textures, il est possible d’intégrer une version simplifiée du shader écrit par martinsh pour obtenir l'effet de flou désiré. J’ai choisi de le faire sous la forme d’un module Tao afin de faciliter l’utilisation de l’effet. Ce module s’appelle sans surprise “Profondeur de champ” (Depth of field en anglais). Vous pouvez le télécharger et le tester dès maintenant (il est compatible avec Tao Presentations 1.03) ou bien attendre la prochaine version de Tao pour l’obtenir. Le module définit une fonction dof_frame_texture qui s'utilise comme frame_texture tout en permettant de bénéficier de l'effet de profondeur de champ. La mise au point s'ajuste grâce à quelques variables.

Voici le résultat lorsqu’on fait la mise au point sur la boule jaune :


Vous pouvez consulter la documentation technique du module sur notre site. Elle contient le code source du document Tao Presentations utilisé pour illustrer cet article.

Références : Depth perception (wikipedia), DoF with bokeh GLSL shader v2.4 (Martins Upitis).