VFX Forge - v1.0.0
    Preparing search index...

    Effet Naturify (végétalisation) Applique automatiquement :

    • Herbe animée (shader vent)
    • Fleurs multi-parties
    • Roches avec exclusion des végétaux
    • Papillons animés en billboard
    Index

    Constructors

    Properties

    butterflyCount: number
    butterflyHeight: { max: number; min: number }
    butterflyMesh: any
    butterflyOffsets: any[]
    butterflyOrbitRadius: { max: number; min: number }
    butterflyScale: { max: number; min: number }
    butterflyStartPositions: any[]
    butterflyTexture: any
    camera: any
    defaultUniforms: {
        uBaseColor: { value: any };
        uTime: { value: number };
        uWindStrength: { value: number };
    }
    displayName: string
    flowerCount: number
    flowerGeometry: any
    flowerInstancedMeshes: any[]
    flowerMeshes: any[]
    flowerScale: { max: number; min: number }
    flowerUrl: string
    grassCount: number
    grassGeometry: any
    grassModelUrl: string
    grassScale: { max: number; min: number }
    instancedMesh: any
    isLoaded: boolean
    name: string
    rockCount: number
    rockExclusionZones: any[]
    rockGeometry: any
    rockInstancedMesh: any
    rockMaterial: any
    rockMinDistance: number
    rockScale: { max: number; min: number }
    rockUrl: string
    samplingCache: Map<any, any>
    shaders: { fragment: any; vertex: any }
    targetMeshForButterflies: Mesh
    targetObject: any
    uiMapping: {
        "butterfly-count": {
            needsRegeneration: boolean;
            property: string;
            transform: (value: any) => number;
        };
        "flower-count": {
            needsRegeneration: boolean;
            property: string;
            transform: (value: any) => number;
        };
        "rock-count": {
            needsRegeneration: boolean;
            property: string;
            transform: (value: any) => number;
        };
        "wind-strength": { transform: (value: any) => number; uniform: string };
    }
    displayName: string = "Naturify"
    effectName: string = "naturify"

    Methods

    • Ajoute des fleurs instanciées sur la surface du mesh. Crée un mesh instancié par partie de fleur (pétales, tige, etc.). Les fleurs sont orientées selon les normales de surface et évitent les zones de roches. Applique une rotation aléatoire autour de l'axe vertical pour plus de variété.

      Parameters

      • targetMesh: Mesh

        Mesh cible sur lequel placer les fleurs

      Returns void

    • Ajoute des roches instanciées sur la surface du mesh. Utilise l'échantillonnage de Poisson pour garantir un espacement naturel. Crée des zones d'exclusion pour empêcher l'herbe/fleurs d'apparaître sous les roches.

      Parameters

      • targetMesh: Mesh

        Mesh cible sur lequel placer les roches

      Returns Promise<void>

    • Applique la végétalisation complète sur un objet.

      1. Charge les modèles nécessaires (herbe, fleurs, roches)
      2. Place les roches avec zones d'exclusion
      3. Distribue les fleurs (en évitant les roches)
      4. Instancie l'herbe (en évitant les roches)
      5. Crée les papillons animés

      Parameters

      • targetMesh: Mesh

        Mesh sur lequel appliquer l'effet

      Returns Promise<void>

    • Applique la transformation du plan au sample (normal et position dans le monde) uniquement si le mesh est un plane. Ne modifie pas les autres types de primitives.

      Parameters

      • sample: any

        Sample contenant position (Vector3) et normal (Vector3)

      • mesh: Mesh

        Mesh cible (vérifie si c'est un plane)

      • normalMatrix: any = null

      Returns void

    • Configure le matériau

      Parameters

      • material: any
      • options: {} = {}

      Returns void

    • Crée et place des papillons autour du mesh cible Les papillons sont des planes animées avec mouvement circulaire

      Parameters

      • camera: Camera

        La caméra utilisée pour orienter les billboards.

      • targetMesh: Mesh

        Le mesh autour duquel les papillons apparaissent.

      Returns Promise<void>

    • Crée un ShaderMaterial pour les fleurs à partir du matériau original.

      Préserve la couleur et texture du matériau GLB d'origine tout en ajoutant :

      • Animation de vent synchronisée avec l'herbe
      • Support des textures avec transparence
      • Éclairage directionnel

      Parameters

      • originalMaterial: Material

        Matériau source du modèle GLB

      Returns ShaderMaterial

      Matériau shader configuré

    • Crée le ShaderMaterial pour les brins d'herbe instanciés.

      Le shader applique :

      • Animation de vent sinusoïdale avec intensité configurable
      • Dégradé de couleur de la base (sombre) au sommet (clair)
      • Éclairage directionnel simple

      Returns ShaderMaterial

      Matériau shader configuré

    • Nettoie les ressources

      Returns void

    • Obtient les uniforms par défaut pour cet effet

      Returns any

    • Génère une échelle aléatoire pour une fleur selon le mode actuel.

      Returns Vector3

      Vecteur d'échelle (x, y*0.5, z)

    • Génère une échelle aléatoire pour un brin d'herbe selon le mode actuel.

      Returns Vector3

      Vecteur d'échelle uniforme (x=y=z)

    • Génère une échelle aléatoire et variée pour une roche selon le mode actuel.

      Returns Vector3

      Vecteur d'échelle avec variations par axe

    • Obtient les chemins des shaders

      Returns any

      Chemins vertex et fragment

    • Vérifie si un point se trouve dans une zone d'exclusion autour d'une roche. Utilisé pour empêcher l'herbe et les fleurs d'apparaître sous les roches.

      Parameters

      • point: Vector3

        Point à tester

      Returns boolean

      'true' si le point est dans une zone d'exclusion

    • Charge la texture des papillons (billboard) et configure la transparence

      Returns Promise<void>

    • Charge le modèle 3D des fleurs depuis un fichier GLB. Extrait tous les meshes avec leurs matériaux pour supporter des fleurs multi-parties (pétales, tige, etc.).

      Returns Promise<void>

    • Charge le modèle 3D du brin d'herbe depuis un fichier GLB.

      Returns Promise<void>

      Si aucune géométrie n'est trouvée dans le fichier GLB

    • Charge le modèle 3D des roches depuis un fichier GLB. Extrait la géométrie et le matériau du premier mesh trouvé.

      Returns Promise<void>

    • Appelé automatiquement lors de l'application de l'effet sur un objet 3D.

      Recherche le premier mesh valide dans la hiérarchie de l'objet et y applique tous les éléments de végétalisation (herbe, fleurs, roches, papillons).

      Parameters

      • object: Object3D

        L'objet 3D cible

      Returns Promise<void>

    • Appelé lors du retrait de l'effet. Nettoie tous les éléments de la scène (herbe, fleurs, roches, papillons) et libère les ressources GPU associées.

      Parameters

      • object: Object3D

        Objet cible

      Returns void

    • Distribue des échantillons dans l'espace 3D en utilisant l'algorithme de disque de Poisson. Garantit une distance minimale entre chaque point pour un placement naturel et évite les regroupements. Utilisé pour les roches.

      Parameters

      • samples: { normal: Vector3; position: Vector3 }[]

        Échantillons candidats

      • minDistance: number

        Distance minimale entre deux points

      • maxPoints: number

        Nombre maximum de points à retourner

      Returns { normal: Vector3; position: Vector3 }[]

      Échantillons filtrés

    • Régénère la végétation avec les paramètres actuels

      Returns Promise<void>

    • Échantillonne aléatoirement des points sur la surface d'une géométrie. Les points sont utilisés pour placer l'herbe, les fleurs et les papillons. Met en cache les résultats pour réutilisation. IMPORTANTE: Apliquer automatiquement les transformations du mesh (escale, rotation, position)

      Parameters

      • geometry: BufferGeometry

        La géométrie à échantillonner.

      • count: number

        Nombre de points à générer.

      • cacheKey: string = "default"

        Clé de cache optionnelle pour réutiliser les échantillons.

      • mesh: Mesh = null

        Le mesh pour obtenir les transformations mondiales

      Returns any[]

      Array d'objets {position: Vector3, normal: Vector3}

    • Met à jour l'effet (appelé chaque frame)

      Parameters

      • material: ShaderMaterial

        Matériau shader

      • deltaTime: number

        Temps écoulé

      Returns void

    • Met à jour un paramètre depuis l'UI

      Parameters

      • material: ShaderMaterial

        Matériau shader

      • controlId: string

        ID du contrôle HTML

      • value: number

        Nouvelle valeur

      Returns void