Calibrage#
Cette section concerne le processus de calibrage.
Calibrage géométrique#
Ceci est un guide (très) préliminaire au calibrage de projecteur avec Splash, n’hésitez pas à rapporter toute erreur ou information complémentaire utile.
La manière dont le calibrage fonctionne dans Splash est de reproduire aussi précisément que possible les paramètres des projecteurs physiques, sur une caméra virtuelle. Cela inclut ses paramètres intrinsèques (champ de vision, position du centre optique) ainsi que ses paramètres extrinsèques (position et orientation). En résumé, pour trouver ces paramètres nous allons spécifier quelques paires point - pixel (au moins six) et demander à Splash de trouver des valeurs qui minimisent le carré de la somme des différences entre la projection des points et la position du pixel associé.
Une fois que le fichier de configuration est défini, et que chaque projecteur a une sortie, faire ce qui suit sur l’écran qui affiche l’interface utilisateur :
Appuyez sur Ctrl + Tab pour faire apparaître l’interface utilisateur,
ouvrez le panneau Cameras
sélectionnez la caméra à calibrer en cliquant dessus dans la liste de caméras sur la gauche,
pressez Ctrl + W pour basculer vers la vue en fil de fer,
cliquez avec le bouton gauche sur un vertice pour le sélectionner,
Shift + cliquer avec le bouton gauche de la souris pour spécifier la position où ce vertice devrait être projeter. Vous pouvez déplacer cette projection avec les touches fléchées,
pour supprimer un point placé par erreur, Ctrl + cliquer avec le bouton gauche de la souris,
continuez jusqu’à ce que vous ayez sept paires de point - projection. Vous pouvez orienter la vue avec la souris (clic droit + glisser) et zoomer avant / arrière avec la molette,
pressez “C” pour demander le calibrage.
À cette étape, vous devriez avoir un premier calibrage. Appuyer sur “C” plusieurs fois peut aider à obtenir un meilleur calibrage, tout comme ajouter d’autres paires de point - projection. Vous pouvez revenir au calibrage précédent en pressant Ctrl + “Z” (tout en survolant la vue de la caméra).
Une fois satisfait du résultat, vous pouvez revenir au mode de rendu texturé en pressant Ctrl + “T”, et sauvegarder la configuration en pressant Ctrl + “S”. Il est recommandé de sauvegarder après chaque caméra calibrée (on ne sait jamais …). Aussi, soyez conscient que les points de calibrage sont sauvegardés, vous serez donc en mesure de les mettre à jour après avoir rechargé le projet. Ils sont indépendants du modèles 3D, vous pouvez donc par exemple calibrer avec un modèle simplifié, puis changer pour un modèle haute définition de la surface de projection.
Déformation de la projection#
Pour ces cas où votre modèle 3D ne correspond pas exactement à la surface de projection (manque de mesures physiques, dôme gonflable, plans qui ne correspondent pas à la surface réelle …), vous pouvez utiliser la déformation de projection pour corriger les quelques dernières zones où les projecteurs ne sont pas alignés. Ceci est destiné à être utilisé en dernier recours, puisque par définition cela va produire une sortie déformée.
La déformation de projection se fait selon un ensemble de points de contrôle, à partir desquels un patch de Bézier est calculé. Le résultat est une déformation continue qui peut permettre à deux projections d’être alignées.
L’interface utilisateur pour le contrôle de la déformation est similaire à celle du calibrage des caméras :
Pressez Ctrl + “Tab” pour ouvrier l’interface utilisateur,
ouvrez le panneau Warps,
sélectionnez la projection que vous souhaitez déformer en cliquant dessus dans la liste sur la gauche,
une grille va apparaître sur la projection désirée : toujours dans l’interface utilisateur, vous pouvez déplacer les points de contrôle (les vertices de la grille),
une fois satisfait, fermez le panneau Warp pour faire disparaître la grille.
Calibrage colorimétrique#
Note : le calibrage colorimétrique est toujours expérimental
Le calibrage colorimétrique est fait en capturant (automatiquement) un ensemble de photographies de la surface de projection, de manière à calculer un espace de couleur et de luminance commun pour tous les vidéoprojecteurs. Notez que Splash doit avoir été compilé avec le support de GPhoto pour que le calibrage colorimétrique soit disponible. Aussi, le calibrage colorimétrique n’a pas besoin que le calibrage géométrique ait déjà été fait, bien que cela ait assez peut d’intérêt de faire le calibrage colorimétrique sans celui-ci.
Connectez un appareil photo compatible PTP à l’ordinateur. La liste des appareils photo compatible est disponible ici.
Configurez l’appareil photo en mode manuel, choisissez sa sensibilité (le mieux étant de la conserver basse pour limiter le bruit) et l’ouverture (entre 1/5.6 et 1/8 pour réduire le vignettage). Désactivez l’autofocus et faites le point sur la surface de projection manuellement.
Ouvrez l’interface utilisateur en pressant Ctrl + “Tab”.
Ouvrez le panneau Graph, trouvez l’object « colorCalibrator » dans la liste.
Configurez les quelques options, les valeurs par défaut sont un bon départ :
colorSamples est le nombre d’échantillons pris pour chaque canal de chaque projecteur,
detectionThresholdFactor a un effet sur la détection de la position de chaque projecteur,
equalizeMethod donne le choix entre plusieurs méthodes d’égalisation de la balance de couleur :
0 : choisit une balance de couleur moyenne pour tous les projecteurs,
1 : choisit la balance de couleur du projecteur ayant la puissance la plus faible,
2 : choisit la balance de couleur qui donnerait la plus haute luminance globale,
imagePerHDR définit le nombre de prises de vue pour créer les images HDR à partir desquelles les valeurs des couleurs sont mesurées,
hdrStep définit le nombre de stops entre deux prises de vues, pour créer une image HDR.
Pressez Ctrl + “O” ou cliquez sur « Calibrate camera response » dans le panneau Main, pour calibre la réponse colorimétrique de l’appareil photo,
Pressez Ctrl + “P” ou cliquez sur « Calibrate displays / projectors » pour lancer le calibrage des projecteurs.
Une fois terminé, le calibrage est activé automatiquement. Il peut être désactivé en pressant Ctrl + “L” ou en cliquant sur « Activate correction ». Si tout s’est bien déroulé, la luminance et la balance de couleur devraient être plus proches entre tous les projecteurs. Si non, voici quelques pistes à explorer pour améliorer le résultat :
La détection des projecteurs s’est mal déroulée. Vérifez dans les logs (dans la console) que les positions détectées sont cohérentes. Si ce n’est pas le cas, augmentez ou diminuez le parametre detectionThresholdFactor puis réessayez.
La gamme dynamique des projecteurs pourrait être trop large. Si c’est le cas vous devriez remarquer dans les logs qu’il semble y avoir une valeur maximale aux mesures des HDR. Si c’est le cas, augmentez la valeur de imagePerHDR.
En manipulant les valeurs, n’hésitez pas à diminuer le paramètre colorSamples pour réduire le temps de calibrage. Une fois que tout semble fonctionner, augmentez le à nouveau pour faire le calibrage final.
Aussi, n’oubliez pas de sauvegarder la configuration une fois que vous êtes satisfait du résultat !
Mélange des projections#
L’algorithme de mélange des projections utilise des attributs des vertices pour stocker les valeurs de mélange. Un contexte OpenGL d’une version minimale de 4.3 active le mélange des projection, autrement celui-ci n’est pas disponible.
Pour activer le mélange, et à partir du moment où le calibrage est fait correctement, vous avez juste à pressez Ctrl + “B”. En appuyant sur Ctrl + Alt + “B” le mélange sera recalculé à chaque nouvelle image rendue (ce qui signifie que le mélange prend en c harge les objets mobiles !).
Le mélange de projection reposant sur les vertices a quelques limitations connues, la plupart pouvant être gérées en ajustement les paramètres de mélange des caméras : blendWidth et BlendPrecision. Pour trouver les meilleurs valeurs, activez le mélange avec Ctrl + Alt + “B”, modifiez les parametres, et vérifiez le résultat.