Aperçu
Le Position lit un canal AOV qui encode les coordonnées 3D de la surface visible à chaque pixel. R = X, G = Y, B = Z. Permet aux nodes en aval (Volume Fog, Volume Mask) de raisonner spatialement.
Outputable en visualization (heatmap colorée selon position) pour debug ou directement utilisé comme driver pour des effets 3D-aware en compositing 2D.
Où trouver ce node
- Effects Library :
Tools > Position > Position - Ajout rapide : clic droit dans le Node Editor →
Add Tool > Position > Position
World vs Object Position
- World Position (P / world_pos)
- Coordonnées XYZ dans l' espace global de la scène 3D. Idéal pour mask par zone géographique (haut/bas, gauche/droite), fog par profondeur monde.
- Object Position (object_pos)
- Coordonnées XYZ dans l' espace local de chaque objet(avant transform). Idéal pour textures procédurales qui suivent l'objet, mask par UV-like.
Règle : effet géographique scene-wide → World. Effet ancré sur un objet (texture qui « colle ») → Object.
Inputs
- Input (orange) - image multicouches contenant un canal Position.
- Effect Mask (bleu) - optionnel.
Configuration
Mask par hauteur (worldspace) :
EXR 3D → Position (World)
→ Channel Booleans (extract Y)
→ Color Curves (range 0→threshold)
→ mask utilisable en aval
Fog volumétrique 2D :
EXR 3D → Position
→ Volume Fog (positionné dans la scène)
→ Merge avec beauty → MediaOut
Texture procédurale stable sur objet :
EXR 3D → Position (Object)
→ Custom node / Texture driven by XYZ
→ Merge
Visualisation debug :
EXR 3D → Position (Visualize)
→ MediaOut (heatmap RGB = X/Y/Z)Onglet Controls
- Channel (défaut : World Position)
- Source à lire. World Position, Object Position, ou autre canal selon nomenclature EXR.
- Visualization Mode (défaut : Off)
- Si activé, mappe les coordonnées en RGB pour visualisation (X→R, Y→G, Z→B). Range automatique selon valeurs.
- Normalize (défaut : Off)
- Normalise les positions sur 0-1 pour visualisation ou pour usage en chaîne avec des nodes qui attendent du 0-1.
- Range Min / Max (défauts : -10 / 10)
- Bornes de remap quand Normalize est activé. Adapter à l'échelle réelle de la scène 3D.
Cas d'usage
- Mask par zone 3D- extraire pixels en-dessous d'une certaine altitude Y → matte « tout ce qui est au sol » sans rotopainting.
- Volume Fog placé en worldspace - fog volumétrique qui occupe une boîte spatiale précise dans la scène 3D, pas un gradient 2D approximatif.
- Relight 2D- combiné avec normales et shading custom, permet de réécrire l'éclairage en compositing sans re-rendre la 3D.
- Texture stable sur objet animé- Object Position + texture procédurale = texture qui suit l'objet exactement sans glissement.
- DOF custom par profondeur - calcul de distance à la caméra depuis World Position = depth-of-field précis avec contrôle 2D.
- Compositing 3D-aware avec layers 2D - ajouter un élément 2D dont la position dépend du worldspace de la scène 3D rendue.
Astuces
- EXR multilayer requis - le canal Position doit être exporté par le moteur 3D. Activer dans Blender (Render Layers → World Pos), Houdini (Pworld), Maya/Arnold (P AOV).
- Vérifier l'échelle - les positions sont en unités scène (mètres souvent en Blender, cm en Maya). Adapter les mask thresholds en conséquence.
- Visualization pour calibrer - activer la visualisation avant de driver un effet : permet de voir si X/Y/Z mappent bien à la scène attendue.
- Antialiasing parasites - les bords des objets ont des positions mixtes (interpolations entre surface et background) qui peuvent générer des halos. Filtrer via coverage ou alpha en amont.
- Float 32-bit obligatoire - les positions débordent largement 0-1. Travailler en 32-bit float pour préserver la précision.
- Combiner avec Camera 3D- pour matcher la position d'une caméra en compositing avec celle utilisée au render 3D, vérifier que les transforms sont cohérents.
- Pour des effets vraiment 3D, préférer Volume Fog ou Volume Mask plutôt que de bricoler à la main avec Position extracts - les nodes dédiés sont optimisés.
