Castor3D  0.11.0
Multiplatform 3D engine
Format de fichier CSCN

Les fichiers CSCN sont au format texte et sont donc modifiables assez facilement (pour peu que l’on comprenne quelque chose à  la syntaxe :P)
Les types de données qui apparaissent dans les fichiers de scène sont les suivants :

  • booléen : un booléen (true ou false).
  • entier : un entier.
  • masque_1 : un entier hexadécimal représentant un masque pour une composante de couleur (0x000000FF ou autre).
  • masque_3 : un entier hexadécimal représentant un masque pour trois composantes de couleur (0x00FFFFFF ou autre).
  • réel : un nombre réel, le séparateur des décimales est le point ( . ).
  • 2, 3, 4 entiers : 2, 3 ou 4 entiers, séparés par des virgules ( , ) ou des espaces ( ).
  • 2, 3, 4 réels : 2, 3 ou 4 réels, séparés par des virgules ( , ) ou des espaces ( ).
  • taille : 2 entiers supérieurs ou égaux à 0.
  • matrice de 2x2, 3x3, 4x4 réels : 2, 3 ou 4 groupes séparés par des points virgules ( ; ) de 2, 3 ou 4 réels séparés par des virgules ( , ) ou des espaces ( )
  • couleur_rvb : les composantes RVB d’une couleur, exprimées en réels compris entre 0.0 et 1.0.
  • couleur_rvba : les composantes RVBA d’une couleur, exprimées en réels compris entre 0.0 et 1.0.
  • couleur_hdr_rvb : les composantes RVB d’une couleur, exprimées en réels supérieurs ou égaux à 0.0.
  • couleur_hdr_rvba : les composantes RVBA d’une couleur, exprimées en réels supérieurs ou égaux à 0.0.
  • valeur : chaîne de caractère représentant une valeur prédéfinie.
  • nom : chaîne de caractères, entourée de guillemets ( ‘" ).
  • fichier : chaîne de caractères représentant un chemin d’accès à un fichier, entourée de guillemets ( ‘" ).
  • dossier : chaîne de caractères représentant un chemin d’accès à un dossier, entourée de guillemets ( ‘" ).



Description

Le fichier est décomposé en sections décrites de la manière suivante:

[section_type] "[section_name]"
{
    // Section description
}

Exemple:

light "Light0"
{
    type directional
    colour 1.0 1.0 1.0
    intensity 0.8 1.0
}

Certaines sections peuvent avoir des sous-sections :

material "Bronze"
{
    pass
    {
        ambient 0.2125 0.1275 0.054
        diffuse 0.714 0.4284 0.12144
        emissive 0.0
        specular 0.393548 0.271906 0.166721
        shininess 25.6
    }
}

Les différentes sections possibles sont les suivantes :

  1. sampler
    Permet de définir un objet d’échantillonnage de texture.
  2. material
    Permet la définition d’un matériau.
  3. mesh
    Permet la définition d’un maillage.
  4. font
    Permet la définition d’une police utilisée dans les incrustations texte.
  5. window
    Permet la définition d’une fenêtre de rendu.
  6. panel_overlay
    Permet de définir une incrustation globale de type panneau simple.
  7. border_panel_overlay
    Permet de définir une incrustation globale de type panneau avec bordure.
  8. text_overlay
    Permet de définir une incrustation globale de type panneau avec texte.
  9. scene
    Permet de définir une scène.



Section sampler

  1. min_filter : valeur

    Valeur pour la fonction de minification. Les valeurs possibles sont :

    • linear : interpolation linéaire.

    • nearest : aucune interpolation.

  2. mag_filter : valeur

    Valeur pour la fonction de magnification. Les valeurs possibles sont :

    • linear : interpolation linéaire.

    • nearest : aucune interpolation.

  3. mip_filter : valeur

    Valeur pour la fonction de mipmapping. Les valeurs possibles sont :

    • linear : interpolation linéaire.

    • nearest : aucune interpolation.

  4. min_lod : réel

    Définit la valeur minimale du niveau de détail.

  5. max_lod : réel

    Définit la valeur maximale du niveau de détail.

  6. lod_bias : réel

    Définit le MIP-Level minimal utilisé.

  7. u_wrap_mode : valeur

    Définit le paramètre d’enveloppement de la texture en U. Peut prendre les valeurs suivantes :

    • repeat : La texture est répétée.

    • mirrored_repeat : La texture est répétée, une instance sur 2 en miroir de la précédente.

    • clamp_to_border : La texture est étirée, la couleur des arêtes au bord de la texture est celle du bord de la texture.

    • clamp_to_edge : La texture est étirée, la couleur des arêtes au bord de la texture est un mélange de celle du bord de la texture et de celle du bord.

  8. v_wrap_mode : valeur

    Définit le paramètre d’enveloppement de la texture en V. Peut prendre les valeurs suivantes :

    • repeat : La texture est répétée.

    • mirrored_repeat : La texture est répétée, une instance sur 2 en miroir de la précédente.

    • clamp_to_border : La texture est étirée, la couleur des arêtes au bord de la texture est celle du bord de la texture.

    • clamp_to_edge : La texture est étirée, la couleur des arêtes au bord de la texture est un mélange de celle du bord de la texture et de celle du bord.

  9. w_wrap_mode : valeur

    Définit le paramètre d’enveloppement de la texture en W. Peut prendre les valeurs suivantes :

    • repeat : La texture est répétée.

    • mirrored_repeat : La texture est répétée, une instance sur 2 en miroir de la précédente.

    • clamp_to_border : La texture est étirée, la couleur des arêtes au bord de la texture est celle du bord de la texture.

    • clamp_to_edge : La texture est étirée, la couleur des arêtes au bord de la texture est un mélange de celle du bord de la texture et de celle du bord.

  10. border_colour : valeur

    Définit la couleur des bords non texturés.

    • float_transparent_black : Noir transparent.

    • int_transparent_black : Noir transparent.

    • float_opaque_black : Noir opaque.

    • int_opaque_black : Noir opaque.

    • float_opaque_white : Blanc opaque.

    • int_opaque_white : Blanc opaque.

  11. max_anisotropy : réel

    Définit le degré maximal d’anisotropie.



Section material

Les matériaux pouvant être multi-passes, il est possible de définir plusieurs sous-sections de passe.

  1. pass : section

    Commence un nouvelle section décrivant les propriétés de la passe.


Section pass

  1. diffuse : couleur_rvb

    Définit la couleur diffuse de cette passe (matériaux phong uniquement).

  2. albedo : couleur_rvb

    Defines la couleur d’albédo de cette passe (non disponible pour les matériaux phong).

  3. specular : couleur_rvb

    Définit la couleur réfléchie par cette passe (non disponible pour les matériaux metallic/roughness).

  4. metallic : réel (entre 0 et 1)

    Definit la metallitude de cette pass (matériaux metallic/roughness uniquement).

  5. shininess : réel (entre 0 et 128)

    Définit la façon dont la lumière est réfléchie (matériaux phong uniquement).

  6. glossiness : réel (entre 0 et 1)

    Définit l’éclat de la surface (matériaux specular/glossiness materials uniquement).

  7. roughness : réel (entre 0 et 1)

    Définit la rugosité de la surface (matériaux metallic/roughness uniquement).

  8. ambient : réel (entre 0 et 1)

    Définit la couleur ambiante de cette passe (matériaux phong seulement).

  9. emissive : réel (entre 0 et 1)

    Définit la couleur émise par cette passe.

  10. alpha : réel (entre 0 et 1)

    Définit la valeur d’alpha des couleurs du material.

  11. two_sided : booléen

    Définit si le material est double face (true) ou pas (false).

  12. texture_unit : section

    Définit une nouvelle section concernant une texture.

  13. alpha_blend_mode : valeur

    Nom du mode de mélange alpha, au choix parmi :

    • none : Pas de mélange alpha.

    • additive : Les alphas de la source et de la destination s’additionnent.

    • multiplicative : Les alphas de la source et de la destination se multiplient.

  14. colour_blend_mode : valeur

    Nom du mode de mélange couleur, au choix parmi :

    • none : Pas de mélange couleur.

    • additive : Les couleurs de la source et de la destination s’additionnent.

    • multiplicative : Les couleurs de la source et de la destination se multiplient.

  15. alpha_func : func : valeur ref-val : réel

    Définit la fonction de gestion de l’alpha rejection pour la texture. Le second paramètre est la valeur de référence pour les calculs de transparence. Les valeurs possibles pour le premier paramètre sont :

    • always : la couleur de l’échantillon est toujours appliquée.

    • less : La couleur de l’échantillon est appliquée si sa transparence est inférieure au 2ème paramètre.

    • less_or_equal : La couleur de l’échantillon est appliquée si sa transparence est inférieure ou égal au 2ème paramètre.

    • equal : La couleur de l’échantillon est appliquée si sa transparence est égale au 2ème paramètre.

    • not_equal : La couleur de l’échantillon est appliquée si sa transparence est différente du 2ème paramètre.

    • greater_or_equal : La couleur de l’échantillon est appliquée si sa transparence est supérieure ou égal au 2ème paramètre.

    • greater : La couleur de l’échantillon est appliquée si sa transparence est supérieure au 2ème paramètre.

    • never : La couleur de l’échantillon n’est jamais appliquée.

  16. refraction_ratio : réel

    Définit le ratio de réfraction de la passe. Notez que même s’il n’y a pas de refraction map, la réfraction sera appliquée tout de même, en utilisant seulement la skybox.

  17. subsurface_scattering : section

    Définit une nouvelle section décrivant le subsurface scattering pour cette passe.

  18. parallax_occlusion : booléen

    Active ou désactive le parallax occlusion mapping (nécessite une normal map et une height map).

  19. bw_accumulation : entier compris entre 0 et 5

    Définit la fonction d'accumulation, pour le blended weighted rendering.

Section texture_unit

  1. image : fichier

    Définit le chemin où trouver l’image.

  2. render_target : section

    Permet de définir la texture en cible de rendu et de configurer cette cible.

  3. channel : value {| value}

    Les canaux auxquels la texture peut être associée. Peut prendre les valeurs suivantes :

    • diffuse : Couleur d'éclairage diffus (Phong uniquement).

    • albedo : Couleur de base (PBR uniquement).

    • specular : Couleur spéculaire (Phong et PBR Specular/Glossiness).

    • metallic : Facteur métallique (PBR Metallic/Roughness uniquement).

    • shininess : Exposant spéculaire (Phong uniquement).

    • glossiness : Facteur de glossiness (PBR Specular/Glossiness uniquement).

    • roughness : Facteur de roughness (PBR Metallic/Roughness uniquement).

    • opacity : Facteur d'opacité.

    • emissive : Couleur émissive.

    • transmittance : Facteur de transmission (pour le subsurface scattering).

    • occlusion : Facteur d'occlusion.

    • normal : Normales.

    • height : Hauteur.

    • Reflection : Texture de réflexion.

    • Refraction : Texture de réfraction.

  4. sampler : nom

    Définit l’échantillonneur pour la texture.

  5. diffuse_mask : masque_3

    Définit les composantes de la texture utilisées pour la couleur diffuse (Phong uniquement).

  6. albedo_mask : masque_3

    Définit les composantes de la texture utilisées pour la couleur de base (PBR uniquement).

  7. specular_mask : masque_3

    Définit les composantes de la texture utilisées pour la couleur spéculaire (Phong ou PBR Specular/Glossiness).

  8. metalness_mask : masque_1

    Définit la composante de la texture utilisée pour le facteur métallique (PBR Metallic/Roughness uniquement).

  9. shininess_mask : masque_1

    Définit la composante de la texture utilisée pour l'exposant spéculaire (Phong uniquement).

  10. glossiness_mask : masque_1

    Définit la composante de la texture utilisée pour le facteur de glossiness (PBR Specular/Glossiness uniquement).

  11. roughness_mask : masque_1

    Définit la composante de la texture utilisée pour le facteur de roughness (PBR Metallic/Roughness uniquement).

  12. opacity : masque_1

    Définit la composante de la texture utilisée pour le facteur d'opacité.

  13. emissive : masque_3

    Définit les composantes de la texture utilisées pour la couleur émissive.

  14. transmittance : masque_1

    Définit la composante de la texture utilisée pour le facteur de transmittance (pour le subsurface scattering.

  15. occlusion : masque_1

    Définit la composante de la texture utilisée pour le facteur d'occlusion.

  16. normal : masque_3

    Définit les composantes de la texture utilisées pour les normales.

  17. height : masque_1

    Définit la composante de la texture utilisée pour la hauteur.

  18. height_factor : réel

    Définit le facteur de hauteur.

  19. normal_directx : booléen

    Dit si les normales de la texture sont exprimées pour DirectX (la composante verte sera alors inversée).

Section shader_program

  1. vertex_program : section

    Définit une nouvelle section concernant le vertex program.

  2. pixel_program : section

    Définit une nouvelle section concernant le pixel program.

  3. geometry_program : section

    Définit une nouvelle section concernant le geometry program.

  4. hull_program : section

    Définit une nouvelle section concernant le hull (tessellation control) program.

  5. domain_program : section

    Définit une nouvelle section concernant le domain (tessellation evaluation) program.

  6. constants_buffer : section

    Définit une nouvelle section concernant les tampons de constantes (uniform buffers).

Section vertex/pixel/geometry/hull/domain_program

  1. file : fichier

    Nom du fichier où se trouve le programme.

  2. sampler : nom

    Crée une nouvelle variable de type sampler (1D, 2D, …) pour le pixel shader.

  3. input_type : valeur

    Définit le type de données de faces en entrée du geometry shader. Peut ptrendre les valeurs suivantes :

    • points : Des points.

    • lines : Des lignes disjointes.

    • line_loop : Une boucle formée de lignes jointes.

    • line_strip : Des lignes jointes.

    • triangles : Des triangles disjoints.

    • triangle_strip : Des triangles joints.

    • triangle_fan : Des triangles joints par le premier point.

    • quads : Des quadrilatères disjoints.

    • quad_strip : Des quadrilatères joints.

    • polygon : Des polygones.

  4. output_type : valeur

    Définit le type de données de faces en sortie du geometry shader. Peut ptrendre les valeurs suivantes :

    • points : Des points.

    • line_strip : Des lignes jointes.

    • triangle_strip : Des triangles joints.

    • quad_strip : Des quadrilatères joints.

  5. output_vtx_count : entier

    Définit le nombre de sommets en sortie du geometry shader.

  6. constants_buffer : section

    Définit une nouvelle section décrivant un constants buffer.

Section constants_buffer

  1. shaders : combinaison binaire de valeurs

    Types de shaders pour lesquels ce tampon s’applique, parmi :

    • vertex

    • hull

    • domain

    • geometry

    • pixel

    • compute

  2. variable : nom, section

    Définit une section de propriétés d’une variable à ajouter au tampon.

Section variable

  1. type : valeur

    Nom du type de la variable, peut être :

    • int : 1 entier signé.

    • uint : 1 entier non signé.

    • float : 1 nombre flottant en simple précision.

    • double : 1 nombre flottant en double précision.

    • vec2i : 2 entiers signés.

    • vec3i : 3 entiers signés.

    • vec4i : 4 entiers signés.

    • vec2f : 2 nombres flottants en simple précision.

    • vec3f : 3 nombres flottants en simple précision.

    • vec4f : 4 nombres flottants en simple précision.

    • vec2d : 2 nombres flottants en double précision.

    • vec3d : 3 nombres flottants en double précision.

    • vec4d : 4 nombres flottants en double précision.

    • mat2x2i : Matrice 2x2 d’entiers signés.

    • mat2x3i : Matrice 2x3 d’entiers signés.

    • mat2x4i : Matrice 2x4 d’entiers signés.

    • mat3x2i : Matrice 3x2 d’entiers signés.

    • mat3x3i : Matrice 3x3 d’entiers signés.

    • mat3x4i : Matrice 3x4 d’entiers signés.

    • mat4x2i : Matrice 4x2 d’entiers signés.

    • mat4x3i : Matrice 4x3 d’entiers signés.

    • mat4x4i : Matrice 4x4 d’entiers signés.

    • mat2x2f : Matrice 2x2 de nombres flottants simple précision.

    • mat2x3f : Matrice 2x3 de nombres flottants simple précision.

    • mat2x4f : Matrice 2x4 de nombres flottants simple précision.

    • mat3x2f : Matrice 3x2 de nombres flottants simple précision.

    • mat3x3f : Matrice 3x3 de nombres flottants simple précision.

    • mat3x4f : Matrice 3x4 de nombres flottants simple précision.

    • mat4x2f : Matrice 4x2 de nombres flottants simple précision.

    • mat4x3f : Matrice 4x3 de nombres flottants simple précision.

    • mat4x4f : Matrice 4x4 de nombres flottants simple précision.

    • mat2x2d : Matrice 2x2 de nombres flottants double précision.

    • mat2x3d : Matrice 2x3 de nombres flottants double précision.

    • mat2x4d : Matrice 2x4 de nombres flottants double précision.

    • mat3x2d : Matrice 3x2 de nombres flottants double précision.

    • mat3x3d : Matrice 3x3 de nombres flottants double précision.

    • mat3x4d : Matrice 3x4 de nombres flottants double précision.

    • mat4x2d : Matrice 4x2 de nombres flottants double précision.

    • mat4x3d : Matrice 4x3 de nombres flottants double précision.

    • mat4x4d : Matrice 4x4 de nombres flottants double précision.

  2. count : entier

    Nombre d’occurences de la variable (taille du tableau).

  3. value :
    Valeur de la variable, fonction du type choisi.

Section subsurface_scattering

  1. strength : réel

    Définit la force de l’effet.

  2. gaussian_width : réel

    Définit la largeur du flo Gaussien.

  3. transmittance_profile : new section

    Définit une nouvelle section décrivant le profil de transmission.

Section transmittance_profile

  1. factor : vec4f

    Définit les trois composantes RVB de la couleur, la quatrième composante définissant le facteur de multiplication de cette couleur.



Section font

  1. file : fichier

    Définit le fichier contenant la police.

  2. height : entier

    Définit la hauteur des caractères (la précision).



Section scene

  1. ambient_light : couleur

    Définit la couleur de l’éclairage ambiant.

  2. background_colour : couleur

    Définit la couleur de fond de la scène.

  3. background_image : fichier

    Définit l’image de fond de la scène.

  4. import : fichier

    Permet l’import d’une scène à partir d’un fichier de scène CSCN ou autre, supporté par les plug-ins d’import Castor3D.

  5. scene_node : section

    Définit un noeud de scène.

  6. camera_node : section

    Définit un noeud de scène spécifique aux caméras.

  7. light : section

    Définit une source lumineuse.

  8. object : section

    Définit un objet.

  9. billboard : section

    Définit des billboards.

  10. camera : section

    Définit une caméra.

  11. panel_overlay : section

    Définit une incrustation de type panneau simple.

  12. border_panel_overlay : section

    Définit une incrustation de type panneau avec bordure.

  13. text_overlay : section

    Définit une incrustation de type panneau avec texte.

  14. animated_object_group : section

    Définit un groupe d’objets animés avec des animations communes.

  15. mesh : section

    Définit une nouvelle section décrivant un maillage, pouvant être utilisé pou un ou plusieurs objets.

  16. particle_system : section

    Définit une nouvelle section décrivant un système de particules.

  17. skybox : section

    Définit une nouvelle section décrivant la skybox.

  18. include : fichier

    Inclut un fichier de scène, permettant de découper une scène en de multiples fichiers.

  19. sampler : section

    Définit une nouvelle section décrivant un échantillonneur.

  20. fog_type : valeur

    Définit le type de brouillard pour la scène. Les valeurs possibles sont :

    • linear : L’intensité du brouillard augmente linéairement, avec la distance à la caméra.

    • exponential : L’intensité du brouillard augmente exponentiellement, avec la distance à la caméra.

    • squared_exponential : L’intensité du brouillard augmente encore plus, avec la distance à la caméra.

  21. fog_density : réel

    Définit la densité du brouillard, qui est multipliée par la distance, en fonction du type de brouillard.

  22. hdr_config : section

    Définit une nouvelle section, décrivant la configuration HDR.


Section hdr_config

  1. exposure : réel

    Définit l’exposition de la scène.

  2. gamma : réel

    Définit la correction gamma de la scène.


Sections scene_node et camera_node

  1. parent : nom

    Définit le Node parent de celui-ci. Par défaut le parent est le RootNode. Le fait de transformer (tranlate, rotate, scale) un node parent transforme ses enfants.

  2. position : 3 réels

    La position du node par rapport à son parent.

  3. orientation : 4 réels

    Quaternion représentant l’orientation du node par rapport à son parent.

  4. scale : 3 réels

    Echelle du node par rapport à son parent.


Section light

  1. type : valeur

    3 types de sources lumineuses existent dans Castor3D :

    • directional : lumière directionnelle (telle le soleil).

    • point_light : une source située à un endroit et émettant dans toutes les directions.

    • spot_light : une source située à un endroit et émettant dans un cône orienté dans une direction.

  2. colour : 3 réels

    Définit la couleur de la source lumineuse, au format RGB.

  3. intensity : 2 réels

    Définit les intensités diffuse et spéculaire de la source lumineuse.

  4. attenuation : 3 réels

    Définit les 3 composantes d’atténuation de la source lumineuse en fonction de l’éloignement de la source : constante, linéaire et quadratique.
    spot_light et point_light uniquement.

  5. cut_off : réel

    Ouverture de l’angle du cône du spot.
    spot_light uniquement.

  6. exponent : réel

    Attenuation fonction de la distance entre le point éclairé et le centre du cône lumineux.
    spot_light uniquement.

  7. parent : nom

    Définit le nom du SceneNode auquel la source lumineuse est attachée.

  8. shadows : section

    Définit une nouvelle section décrivant les ombres produites par la source lumineuse.


Section shadows

  1. producer : booléen

    Dit si la source lumineuse produit des ombres (true) ou pas (false).

  2. filter : valeur

    Définit le type d'ombres à utiliser. Peut prendre les valeurs suivantes :

    • raw : Aucun filtre.

    • pcf : Filtre PCF.

    • variance : Variance Shadow Map.

  3. min_offset : réel

    Définit l'offset minimal à appliquer à la valeur récupérée depuis la texture d'ombres.

  4. max_slope_offset : réel

    Définit l'offset maximal, relatif à la pente, à appliquer à la valeur récupérée depuis la texture d'ombres.

  5. variance_max : réel

    Définit le facteur maximal pour la variance, à appliquer à la valeur récupérée depuis la texture d'ombres.

  6. variance_bias : réel

    Définit le décalage de variance à appliquer à la valeur récupérée depuis la texture d'ombres.

  7. volumetric_steps : entier

    Le nombre d'étapes effectuées par le rayon pour calculer le volumetric light scattering.

  8. volumetric_scattering : réel

    Définit le facteur de volumetric light scattering.


Section object

  1. parent : nom

    Nom du SceneNode auquel la géométrie est attachée.

  2. mesh : nom

    Définit le maillage utilisé par cet objet.

  3. mesh : nom, section

    Définit une section décrivant un maillage, avec le nom donné.

  4. material : nom

    Nom d’un materiau défini dans un fichier .cmtl ou dans ce fichier. Applique le materiau à tous les sous-maillages.

  5. materials : section

    Permet de définir le matériau pour chaque sous-maillage.

  6. cast_shadows : booléen

    Définit si l’objet projette des ombres (true, valeur par défaut) ou pas (false).

  7. receive_shadows : booléen

    Définit si l’objet reçoit des ombres (true, valeur par défaut) ou pas (false).

Section materials

  1. material : entier, nom

    Index du sous-maillage et nom du matériau à utiliser.


Section billboard

Permet de définir des billboards partageant le même matériau et faisant les mêmes dimensions.

  1. parent : nom

    Définit le SceneNode auquel ces billboards seront attachés.

  2. positions : section

    Permet de définir les positions relatives des différentes instances des billboards.

  3. material : nom

    Définit le mtatériau utilisé pour l’affichage des billboards.

  4. dimensions : taille

    Définit la taille des billboards.

  5. type : valeur

    Définit le type de billboards. Les valeurs possibles sont :

    • cylindrical: Les billboards font face à la caméra, sauf pour leur axe Y, qui reste fixe.

    • spherical: Les billboards font face à la caméra sur tous les axes.

  6. size : valeur

    Définit le redimensionnement des billboards. Les valeurs possibles sont :

    • dynamic: La taille varie, en fonction de la distance de la caméra.

    • fixed: La taille est fixe, quelle que soit la distance à la caméra.

Section positions

  1. pos : 3 réels

    Définit la position relative d’un billboard.


Section camera

  1. parent : nom

    Définit le CameraNode auquel la caméra est attachée.

  2. primitive : valeur

    Définit le type d’affichage de la caméra, peut prendre les valeurs suivantes :

    • points : Des points.

    • lines : Des lignes disjointes.

    • line_loop : Une boucle formée de lignes jointes.

    • line_strip : Des lignes jointes.

    • triangles : Des triangles disjoints.

    • triangle_strip : Des triangles joints.

    • triangle_fan : Des triangles joints par le premier point.

    • quads : Des quadrilatères disjoints.

    • quad_strip : Des quadrilatères joints.

    • polygon : Des polygones.

  3. viewport : section

    Définit la fenêtre d’affichage de la caméra.

Section viewport

  1. type : valeur

    Type d’affichage de la fenêtre, peut valoir 2d ou 3d.

  2. left : réel

    Définit la coordonnée X minimale affichée.

  3. right : réel

    Définit la coordonnée X maximale affichée.

  4. top : réel

    Définit la coordonnée Y minimale affichée.

  5. bottom : réel

    Définit la coordonnée Y maximale affichée.

  6. near : réel

    Définit la coordonnée Z minimale affichée.

  7. far : réel

    Définit la coordonnée Z maximale affichée.

  8. size : taille

    Définit la taille de la fenêtre d’affichage (en pixels).

  9. fov_y : réel

    Définit l’angle d’ouverture vertical, en radians.

  10. aspect_ratio : réel

    Définit l’aspect global de la fenêtre (1.33333 pour 4/3, 1.77777 pour 16/9 … ).


Section animated_object_group

  1. animated_object : nom

    Définit le nom d’un objet à ajouter dans le groupe.

  2. animation : nom

    Ajoute l’animation dont le nom est donné à la liste d’animations communes.

  3. start_animation : nom

    Démarre l’animation donnée.

  4. pause_animation : nom

    Met l’animation donnée en pause (elle doit avoir été démarrée au préalable).

Section animation

  1. looped : booléen

    Définit si l’animation est bouclée (true) ou pas (false, valeur par défaut).

  2. scale : réel

    Définit la vitesse de l’animation (peut être négative, l’animation sera alors jouée à l’envers).



Section mesh

  1. type : nom

    Nom du type de maillage. Peut être :

    • custom : maillage défini manuellement ou maillage importé.

    • cube : cube, il faut définir ses 3 dimensions par la suite.

    • cone : cône, il faut définir son rayon et sa hauteur par la suite.

    • cylinder : cylindre, dont il faut entrer ensuite le rayon et la hauteur.

    • sphere : sphère à faces “carrées”, il faut définir le nombre de subdivision et le rayon.

    • icosahedron : sphère à faces triangulaires, il faut définir le nombre de subdivision et le rayon.

    • torus : torre, il est nécessaire de définir le nombre de subdivisions internes, externes et les rayons interne et externe.

    • plane : un plan, il est nécessaire de définir le nombre de subdivisions en largeur et en profondeur ainsi que la largeur et la profondeur.

  2. submesh : section

    Définit un sous-maillage, uniquement si le type du maillage est custom.

  3. import : fichier <options>

    Permet l’import d’un fichier contenant les données du maillage. Ce fichier peut être au format cmsh ou tout autre format supporté par Castor3D. Uniquement si le type du maillage est custom. Cette directive peut de plus prendre plusieurs options parmi les suivantes :

    • smooth_normals : Génère les normales par sommet lors de l’import.

    • flat_normals : Génère les normales par face lors de l’import.

    • tangent_space : Génère les informations d’espace tangent (tangente et bitangente) lors de l’import.

    • rescale=réel : Met le maillage à l’échelle, sur les trois axes.

  4. morph_import : fichier <options>

    Permet l’import d’un fichier contenant les données du maillage, pour ajouter une animation par sommet.
    Ce fichier peut être au format cmsh ou tout autre format supporté par Castor3D.
    Disponible uniquement si le type du maillage est custom.
    Cette directive peut de plus prendre plusieurs options parmi les suivantes :

    • smooth_normals : Génère les normales par sommet lors de l’import.

    • flat_normals : Génère les normales par face lors de l’import.

    • tangent_space : Génère les informations d’espace tangent (tangente et bitangente) lors de l’import.

    • rescale=réel : Met le maillage à l’échelle, sur les trois axes.

  5. division : nom entier

    Permet la subdivision du maillage en utilisant un algorithm défini par le nom donné (support en fonction des plugins). Le second paramètre est le nombre de fois où la division est effectuée (récursivement).


Section submesh

  1. vertex : 3 réels

    Ajoute le sommet défini par les coordonnées au sous-maillage.

  2. uv : 2 réels

    Définit les uv à utiliser pour le sommet déclaré précédemment.

  3. uvw : 3 réels

    Définit les uvw à utiliser pour le sommet déclaré précédemment.

  4. normal : 3 réels

    Définit la normale à utiliser pour le sommet déclaré précédemment.

  5. tangent : 3 réels

    Définit la tangente à utiliser pour le sommet déclaré précédemment.

  6. face : 3 ou 4 entiers

    Définit une face qui utilise les 3 ou 4 indices de sommet. S’il y a plus de 3 indices, crée autant de faces triangulaires que nécessaire.

  7. face_uv : autant d’uv que d’indices de la face

    Définit les uv à utiliser pour la face déclarée précédemment.

  8. face_uvw : autant d’uvw que d’indices de la face

    Définit les uvw à utiliser pour la face déclarée précédemment.

  9. face_normals : autant de groupes de 3 réels que d’indices de la face

    Définit les normales à utiliser pour la face déclarée précédemment.

  10. face_tangents : autant de groupes de 3 réels que d’indices de la face

    Définit les tangentes à utiliser pour la face déclarée précédemment.



Section panel_overlay

  1. material : nom

    Définit le matériau utilisé par le panneau.

  2. position : 2 réels

    Définit la position de l’incrustation, par rapport à son parent (ou à l’écran).

  3. size : 2 réels

    Définit la taille de l’incrustation, par rapport à son parent (ou à l’écran).

  4. pxl_position : 2 entiers

    Définit la position absolue de l’incrustation, en pixels.

  5. pxl_size : 2 entiers

    Définit la taille absolue de l’incrustation, en pixels.

  6. uv : 4 réels

    Définit les UV pour l’incrustation (gauche, haut, droit, bas).

  7. panel_overlay : nom section

    Permet de définir une incrustation fille de type panneau simple.

  8. border_panel_overlay : nom section

    Permet de définir une incrustation fille de type panneau avec bordure.

  9. text_overlay : nom section

    Permet de définir une incrustation fille de type panneau avec texte.



Section border_panel_overlay

  1. material : nom

    Définit le matériau utilisé par le panneau.

  2. position : 2 réels

    Définit la position de l’incrustation, par rapport à son parent (ou à l’écran).

  3. size : 2 réels

    Définit la taille de l’incrustation, par rapport à son parent (ou à l’écran).

  4. pxl_position : 2 réels

    Définit la position absolue de l’incrustation, en pixels.

  5. pxl_size : 2 réels

    Définit la taille absolue de l’incrustation, en pixels.

  6. center_uv : 4 réels

    Définit les UV pour le centre de l’incrustation (gauche, haut, droit, bas).

  7. border_material : nom

    Définit le matériau utilisé par la bordure du panneau.

  8. border_position : valeur

    Définit la position de la bordure de l’incrustation, parmi les valeurs suivantes :

    • internal : La bordure à l’intérieur de l’inscrustation (elle ne dépasse pas de l’incrustation).

    • middle : La bordure est à moitié à l’intérieur et à moitié à l’extérieur de l’incrustation (elle dépasse de l’incrustation).

    • external : La bordure est à l’extérieur de l’incrustation (elle n’empiète pas sur le contenu de l’incrustation).

  9. border_size : 4 réels

    Définit la taille des bords (gauche, droite, haut , bas), par rapport au parent (ou à l’écran).

  10. pxl_border_size : 2 entiers

    Définit la taille absolue de l’incrustation, en pixels.

  11. border_inner_uv : 4 réels

    Définit les UV pour la bordure de l’incrustation, côté intérieur (gauche, haut, droit, bas).

  12. border_outer_uv : 4 réels

    Définit les UV pour la bordure de l’incrustation, côté extérieur (gauche, haut, droit, bas).

  13. panel_overlay : nom section

    Permet de définir une incrustation fille de type panneau simple.

  14. border_panel_overlay : nom section

    Permet de définir une incrustation fille de type panneau avec bordure.

  15. text_overlay : nom section

    Permet de définir une incrustation fille de type panneau avec texte.



Section text_overlay

  1. material : nom

    Définit le matériau utilisé par le panneau.

  2. position : 2 réels

    Définit la position de l’incrustation, par rapport à son parent (ou à l’écran).

  3. size : 2 réels

    Définit la taille de l’incrustation, par rapport à son parent (ou à l’écran).

  4. pxl_position : 2 entiers

    Définit la position absolue de l’incrustation, en pixels.

  5. pxl_size : 2 entiers

    Définit la taille absolue de l’incrustation, en pixels.

  6. font : nom

    Définit la police utilisée par l’incrustation.

  7. text : texte

    Définit le texte affiché.

  8. text_wrapping : valeur

    Définit la manière dont le texte est découpé dans le cas où une ligne dépasse les dimensions de l’incrustation :

    • none : Le texte n’est pas découpé (ce qui dépasse n’est pas affiché).

    • break : Le texte est découpé à la lettre (les mots sont coupés).

    • break_words : Le texte est découpé au mot (les mots restent entiers).

  9. vertical_align : valeur

    Définit la manière dont le texte est aligné verticalement, dans son incrustation :

    • top : Le texte est aligné en haut.

    • center : Le texte est centré.

    • bottom : Le texte est aligné en bas.

  10. horizontal_align : valeur

    Définit la manière dont le texte est aligné horizontalement, dans son incrustation :

    • left : Le texte est aligné à gauche.

    • center : Le texte est centré.

    • right : Le texte est aligné à droite.

  11. texturing_mode : valeur

    Définit la manière dont la texture est appliquée :

    • letter : La texture est appliquée sur chaque lettre.

    • text : La texture est appliquée sur tout le texte.

  12. line_spacing_mode : valeur

    Définit la hauteur des lignes :

    • own_height : Chaque ligne a pour hauteur sa propre hauteur.

    • max_lines_height : Chaque ligne a pour hauteur la hauteur de la plus haute ligne.

    • max_font_height : Chaque ligne a pour hauteur la hauteur du plus haut caractère de la police.

  13. panel_overlay : nom section

    Permet de définir une incrustation fille de type panneau simple.

  14. border_panel_overlay : nom section

    Permet de définir une incrustation fille de type panneau avec bordure.

  15. text_overlay : nom section

    Permet de définir une incrustation fille de type panneau avec texte.



Section window

  1. render_target : section

    Permet de définir une nouvelle section décrivant la cible de rendu.

  2. vsync : booléen

    Permet de dire si on veut activer la synchronisation verticale.

  3. fullscreen : booléen

    Permet d’activer ou non l’affichage plein écran.



Section render_target

  1. scene : nom

    Permet de définir la scène rendue dans cette cible.

  2. camera : nom

    Permet de définir la caméra utilisée pour rendre la scène.

  3. size : taille

    Définit la taille du buffer interne de la cible de rendu.

  4. format : valeur

    Définit le format des pixels du buffer couleur de la cible de rendu. Peut valoir :

    • l8 : Luminance 8 bits, 1 nombre entier 8 bits.

    • l16f : Luminance 16 bits, 1 nombre en virgule flottante 16 bits (half float).

    • l32f : Luminance 32 bits, 1 nombre en virgule flottante 32 bits (float).

    • al16 : Transparence + Luminance, 2 nombres entiers 8 bits.

    • al16f : Transparence + Luminance, 2 nombres en virgule flottante 16 bits (half float).

    • al32f : Transparence + Luminance, 2 nombres en virgule flottante 32 bits (float).

    • argb1555 : ARGB 16 bits, 1 bit alpha et chaque composante sur un entier 5 bits.

    • rgb565 : RGB 16 bits, R sur un entier 5 bits, G sur un entier 6 bits et B sur un entier 5 bits.

    • argb16 : ARGB 16 bits, chaque composante sur un entier 4 bits.

    • rgb24 : RGB 24 bits, chaque composante sur un entier 8 bits.

    • argb32 : ARGB 32 bits, chaque composante sur un entier 8 bits.

    • argb16f : ARGB 64 bits, chaque composante sur un flottant 16 bits (half float).

    • rgb32f : RGB 96 bits, chaque composante sur un flottant 32 bits (float).

    • argb32f : ARGB 128 bits, chaque composante sur un flottant 32 bits (float).

  5. depth : valeur

    Définit le format des pixels du buffer profondeur de la cible de rendu. Peut valoir :

    • depth16 : Profondeur sur un entier en 16 bits.

    • depth24 : Profondeur sur un entier en 24 bits.

    • depth24s8 : Profondeur sur un entier en 24 bits + Stencil sur un entier 8 bits.

    • depth32fs8 : Profondeur sur un nombre en virgule flottante en 32 bits + Stencil sur un entier 8 bits.

    • depth32 : Profondeur sur un entier en 32 bits.

    • depth32f : Profondeur sur un nombre en virgule flottante en 32 bits.

    • stencil1 : Stencil sur un bit.

    • stencil8 : Stencil sur un entier en 8 bits.

  6. postfx : nom, parametres optionnels

    Définit un effet post-rendu à utiliser. Les paramètres optionnels dépendent de l’effet choisi.

  7. stereo : booléen

    Définit si on utilise l’affichage stéréoscopique.

  8. tone_mapping : nom

    Définit l’opérateur de mappage de ton, à utiliser avec la cible de rendu.

  9. ssao : section

    Définit une nouvelle section décrivant le Screen Space Ambient Occlusion.


Section ssao

  1. enabled : booléen

    Définit le statut d’activation du SSAO.

  2. high_quality : booléen

    Définit la qalité de l’effet.

  3. radius : réel

    Définit le rayon de l’effet (exprimé en mètres).

  4. bias : réel

    Définit le bias de l’effet.

  5. intensity : réel

    Définit l’intensité de l’effet.

  6. num_samples : entier

    Définit le nombre d’échantillons par pixel.

  7. edge_sharpness : réel

    Définit la netteté des contours lors de la passe de flou.

  8. blur_step_size : entier

    Définit la taille d’une étape, durant la passe de flou.

  9. blur_radius : entier

    Définit le rayon du flou.