En bref
- Un heightfield stocke les altitudes sur une grille en deux dimensions ; les couches permettent de modifier séparément les éléments du terrain.
- Mask by Feature peut sélectionner des zones selon des critères de pente, d’altitude, de courbure, d’orientation et d’occlusion.
- HeightField Scatter génère des points dans les zones masquées en fonction de la couverture, de la densité ou du nombre total de points.
- La documentation de Heightfield Mask by Feature indique que l’outil est disponible depuis Houdini 16.0, et celle de HeightField Scatter depuis 17.0.
La documentation officielle de Houdini sur les heightfields présente la création de terrain comme un workflow qui commence par la mise en place d’un champ d’altitude de base, puis l’affine à l’aide de masques et du scatter. Cette approche peut aider à gérer séparément la topographie, les zones de végétation et les éléments répartis sur le terrain dans le cadre de la modélisation d’environnements architecturaux. La documentation précise que le nœud Heightfield Mask by Feature est disponible depuis Houdini 16.0 et HeightField Scatter depuis 17.0. Les étapes ci-dessous s’appuient sur les fonctions documentées de ces nœuds.
1. Créez un heightfield de base
Dans Houdini, au niveau
obj, ouvrez le menu Tab et créez unGeometry OBJ; entrez-y pour commencer à travailler dans le réseau SOP.Ajoutez un
HeightField SOP. Ce nœud génère une base de terrain plane, centrée sur l’origine de la scène et étendue dans le plan XZ.Définissez l’échelle avec
Sizeet la résolution avecGrid Spacing. La dimension par défaut indiquée dans la documentation est de 1000 × 1000 mètres. Un espacement standard de 2 mètres produit une grille de 500 × 500 cellules. Un espacement plus réduit peut offrir davantage de détails ; toutefois, la documentation indique seulement qu’il détermine la résolution du terrain et ne fournit pas de mesure précise de son coût en performances.Ajoutez un
HeightField Noise SOPet reliez sa première entrée au heightfield.Amplitudedéfinit l’échelle des variations d’altitude, tandis queElement Sizedétermine la taille du motif de bruit. Une petite valeur deElement Sizeproduit des détails plus rapprochés et pointus ; une valeur plus grande donne une surface plus douce. ModifiezRoughnesspar petits incréments : la documentation recommande des pas de 0,05 et précise que ce paramètre est sensible.
Un heightfield ne fonctionne pas comme un maillage polygonal classique : les informations d’altitude sont stockées sur une grille en deux dimensions. Grâce aux couches, il est possible de modifier séparément le terrain de base et les éléments ajoutés par la suite, de les masquer temporairement ou d’ajouter de nouvelles couches au réseau. La couche de base porte généralement le nom height, et la couche de masque celui de mask.
2. Définissez des zones du terrain avec des masques
Pour limiter l’effet à certaines zones, créez un masque. La méthode illustrée dans le guide général officiel consiste à placer un nœud
HeightField Mask Noise SOPentreHeightField SOPetHeightField Noise SOP. Reliez la sortie du nœud de masque à la deuxième entrée du nœud de bruit. Les zones affichées en rouge dans le masque indiquent où le bruit sera appliqué.Pour utiliser des critères de terrain plus pertinents, choisissez
HeightField Mask by Feature. Ce nœud permet d’activer séparément les critères de pente, d’altitude, de courbure, d’orientation et d’occlusion. Par exemple, sélectionner les zones dépassant une certaine pente ou comprises dans une plage d’altitude permet de définir les parties de la surface à traiter. Si plusieurs critères sont activés, le résultat correspond à l’intersection de leurs masques.Pour combiner le masque avec un masque existant, choisissez l’option
Combine with Existingselon le résultat souhaité.Replaceremplace l’ancien masque par le nouveau ;Add,Subtract,Multiply,MaximumetMinimumles combinent de différentes manières. En modeBlend, 0 conserve l’ancien masque, 1 utilise le nouveau et 0,5 mélange les deux à parts égales. Notez qu’en l’absence de tout critère activé, le nœud remplit le masque avec la valeur 1.
3. Transformez le masque en distribution avec le scatter
Dans le nœud
HeightField Scatter, saisissez dans le champMask Layerle nom du masque à utiliser. Choisissez la méthode de distribution en fonction du besoin :Coveragedéfinit la proportion de la zone masquée couverte par des points ;Density, le nombre de points par mètre carré ; etTotal Point Count, le nombre total exact de points à générer.Vous pouvez utiliser l’option
Relax Pointspour réduire le regroupement des points. L’augmentation deIterationspeut rendre la distribution plus régulière, mais aussi ralentir le traitement ; une fois la distribution suffisante obtenue, les itérations supplémentaires peuvent ne plus apporter de bénéfice.Max Pointsest conçu comme une limite de sécurité et ne garantit pas un nombre précis de points. Si vous avez besoin d’un nombre exact, choisissez la méthodeTotal Point Count.Les éléments à placer sur le terrain peuvent être reliés à la troisième entrée ; lorsque
Instance on New Pointsest activé, le nœud place ces géométries sur les points générés. Pour l’orientation, des options permettent d’aligner les points sur les normales du terrain ou de les faire pivoter en fonction de la pente. Pour conserver la même distribution aléatoire, gardez la valeur deGlobal Seedconstante ; selon la documentation, une même seed produit le même résultat de scatter.
| Paramètre | Valeur suggérée | Effet |
|---|---|---|
Size de HeightField | Valeur par défaut dans la documentation : 1000 × 1000 m | Définit les dimensions générales de la base du terrain. |
Grid Spacing | Valeur standard dans la documentation : 2 m | Produit une grille de 500 × 500 cellules ; définit la résolution. |
Variation de Roughness | Petits incréments de 0,05 | Aide à modifier les détails du bruit de manière contrôlée. |
Blend du masque | 0,5 | Mélange l’ancien et le nouveau masque à parts égales. |
Ces valeurs sont des valeurs par défaut ou des exemples indiqués dans la documentation ; elles ne doivent pas être considérées comme des réglages finaux recommandés pour tous les projets.
Conséquences pour les workflows d’architecture et de visualisation
Cette méthode est utile aux architectes, architectes d’intérieur et artistes archviz qui souhaitent créer un terrain sous forme de zones et de distributions contrôlables, plutôt que d’une seule surface monolithique. Les masques de pente ou d’altitude permettent de choisir les zones à détailler dans la scène, tandis que le scatter autorise leur peuplement à l’aide de points. La documentation ne fournit toutefois pas de valeurs concernant des modèles de végétaux spécifiques, les temps de rendu ou les besoins matériels.
Les heightfields reposant sur une grille en deux dimensions, leur utilisation sur des surfaces verticales est limitée. Pour ajouter des détails aux parties verticales, la documentation propose d’éroder le terrain ou de le convertir en géométrie réelle. Karma CPU et Karma XPU prennent en charge les heightfields ; la conversion peut être automatique lors de l’import dans Solaris, mais une conversion manuelle offre davantage de contrôle dans certains cas, comme la projection des couleurs et des couches sur le terrain.
Erreurs fréquentes
Attendre un résultat sans activer de critère dans
HeightField Mask by Feature: dans ce cas, le masque est rempli avec la valeur 1.Prendre
Max Pointspour un nombre exact de points de scatter : la documentation précise qu’il s’agit uniquement d’une limite supérieure et que le nombre réel peut être inférieur.Utiliser un nom de couche incorrect pour le masque : le nom de
Mask Layerutilisé par le nœud scatter doit correspondre à celui de la couche du heightfield.Supposer que le heightfield représentera en détail les surfaces verticales : cette structure stocke les informations d’altitude sur une grille 2D et présente des limites sur les zones verticales.
Note sur les versions applicables : la documentation indique « Since 16.0 » pour Heightfield Mask by Feature et « Since 17.0 » pour HeightField Scatter. La page générale sur les heightfields ne donnant pas de numéro de version précis, aucune indication de version supplémentaire n’a été ajoutée pour les autres nœuds.
Sources
3 sourcesLes textes sources ne sont pas republiés ; les courtes citations sont signalées, le reste est notre propre résumé et commentaire.
Pour les agences d’architecture et de visualisation en Turquie, l’intérêt principal de ce workflow est de pouvoir diviser le terrain en zones selon des critères, plutôt que de le modifier manuellement. Contrôler la distribution à l’aide de la pente, de l’altitude et des masques peut faciliter les ajustements sur le même réseau lorsque le projet évolue.
Il est toutefois préférable de travailler d’abord sur une petite zone de test avant de créer une grille dense et un grand nombre de points de scatter. La documentation ne donnant ni exigences matérielles ni mesures de performances, il faut tester des valeurs adaptées à l’échelle de la scène. En particulier, ne pas confondre le paramètre `Max Points` avec un nombre exact et tenir compte dès le début des limites concernant les surfaces verticales peut éviter des reprises inutiles.
Questions fréquentes
Qu’est-ce qu’un heightfield dans Houdini ?
Un heightfield est une structure qui stocke l’altitude du terrain sur une grille en deux dimensions. Les couches et les masques permettent de traiter séparément différentes zones.
Est-il possible de générer un nombre exact de points avec HeightField Scatter ?
Oui. La documentation propose la méthode `Total Point Count` pour définir un nombre total exact. `Max Points` sert à fixer une limite supérieure à la génération, et non à déterminer un nombre exact.
Un heightfield peut-il produire des détails sur des surfaces verticales ?
La structure en grille 2D du heightfield est limitée pour les zones verticales. Pour détailler ces parties, la documentation propose d’éroder le terrain ou de le convertir en géométrie réelle.



