Pour créer des éléments dans un scène, que ce soit l'oeil, les objets, les lumières, etc. la syntaxe est la suivante :
element { param1 1 2 3 param2 foobar param3 -4.2 }
Les commentaires se font à l'aide du caractère '#'. Exemple :
##################### # Global parameters # ##################### global { width 1024 height 768 highdef 0 # max_reflect 10 }
Note :
L'indentation est facultative (1 espace suffit en séparateur).
^ z | | _ | /| x | / | / | / |/ <------------+ y
Mot clé : eye
Propriétés | Type de la valeur attendue. | Commentaire |
---|---|---|
coords | Coordonnées | Détermine les coordonnées de la caméra. |
rot | Rotation | Rotation de la caméra (en degré). |
Mot clé : item
Propriétés | Type de la valeur attendue. | Commentaires |
---|---|---|
type | Objet type | La liste des objets est disponible en annexe. |
coords | Coordonnées | Détermine les coordonnées de l'objet. |
rot | Rotation | Rotation de l'objet par rapport a son centre. |
radius | Double | Représente généralement le rayon. |
group_id | Entier | Voir le chapitre sur les groupes. |
color | Couleur | Couleur de l'objet (969696 par défaut). |
color2 | Couleur | Seconde couleur de l'objet. Utilisée pour perlin ou le quadrillage. (Noir par défaut). |
tex | Texture | Fichier de texture. Prend le dessus sur la couleur (voir tex_rep). |
tex_rep | Booléen | Si tex_rep est définie à 0, la couleur sera prise en compte en dehors de la région texturée. Par défaut définie à sur 'True' (1). |
tex_coef | Entier | Zoom pour les textures. |
tex_cut | Booléen | Active ou non le découpage texturé. |
tex_color_cut | Couleur | Couleur pour le découpage texturé. |
opacity | Pourcentage | Une opacitée faible signifie un objet transparent. |
density | Double | Influence la transparence. Le rayon qui traverse l'objet sera plus ou moins perturbé selon la valeur de cette densité. Par defaut, elle est définie à 1. |
reflect | Pourcentage | Degré de réflexion de l'objet. |
brightness | Pourcentage | Nécessite une lumière aux alentours. Elle détermine la brillance de l'objet ; le taux de couleur qu'elle "prendra" à la lumière. |
limits | Limites | Détermine ce qui est affiché de l'objet. |
checkerboard | Entier | Nul par défaut. Si précisé, défini un damier de la largeur celle indiquée. |
pnoise | Entier | Active le bruit de perlin (pnoise pour perlin noise). pnoise = 1 : bruit de perlin Normal pnoise = 2 : bruit de perlin type Bois pnoise = 3 : bruit de perlin type Marbre |
pnoise_octave | Entier | Nombre de bruit de perlin cumulés. |
pnoise_freq | Double | Fréquence pour le bruit de perlin. Une valeur faible entraine un bruit de perlin plus fin. |
pnoise_pers | Double | Persistence de bruit de perlin. Influence l'octave. |
bump | Double | Déviation de la normale en fonction du bruit de perlin. Nulle par défaut. |
bump_only | Entier | N'applique que la déviation de la normale, sans modifier la couleur avec le filtre du bruit de perlin. |
Mot clé : light
Propriétés | Type de la valeur attendue. | Commentaire |
---|---|---|
coords | Coordonnées | Détermine les coordonnées de la lumière. |
color | Couleur | Couleur de la lumière (969696 par défaut). |
intensity | Pourcentage | Intensité de la lumière. |
soft_quality | Double | Concerne les ombres floues. Cette valeur correspond à l'écart entre chaque divisions. |
soft_shadow | Entier | Nombre de divisions pour les ombres floues. Ce nombre de divisions est mis à la puissance 3. Il est donc conseillé de mettre une valeur relativement faible. |
Mot clé : global
Propriétés | Type de la valeur attendue. | Commentaire |
---|---|---|
width | Entier | Largeur de l'image de sortie (en pixels). À 800 par défaut. |
height | Entier | Hauteur de l'image de sortie (en pixels). À 600 par défaut. |
highdef | Entier | Haute définition. Précisez une valeur multiple de 2. Au dessus de 6, c'est généralement inutile. La HD permet un rendu effet "anti-aliasé". (Elle est 0 par défaut). |
max_reflect | Entier | Nombre maximum de degré de reflexion. (Par défaut : 3) |
distscreen | Entier | Distance à l'écran (Par défaut : 1000). |
l_color | Couleur | Correspond à la couleur de la lumière d'ambiance. (Noire par défaut) |
l_intensity | Pourcentage | Intensité de la lumière d'ambiance. |
style | Entier | Effet après calcul du pixel. style = 1 : Niveau de gris style = 2 : Crayonné style = 3 : Noir et blanc |
style_param | Entier | Paramètre optionnel. Disponible pour le style 2 uniquement (exemple : 80). Module extensible facilement. |
Le group_id d'un objet prend en paramètre un Entier n. Tous les objets qui ont un group_id n précisé appartiendront à ce groupe n. Il n'apparaitront pas jusqu'à ce qu'un groupe ayant pour id "n" ne soit déclaré. Une fois le groupe d'objet défini, on peut le copier, le déplacer, le faire tourner, changer sa taille, ...
Mot clé : group
Propriétés | Type de la valeur attendue. | Commentaire |
---|---|---|
id | Entier | Identifiant groupe. |
coords | Coordonnées | Détermine les coordonnées du groupe d'objets. |
rot | Rotation | Idem, mais pour les rotations. En degré toujours. |
size_mul | Double | Coefficient pour la taille. La taille du groupe est multipliée par cette valeur. |
# # Parametres generaux # global { width 640 height 480 distscreen 1000 highdef 4 } # # Notre oeil # eye { coords -230 0 0 } # # Definition d'un groupe d'objet. # Ici, c'est une pokeball... # # Top item { type sphere color FF0000 radius 25 coords 0 0 0 limits 0 0 0 0 2 25 brightness 80 group_id 1 } # Separator item { type sphere color 000000 radius 25 limits 0 0 0 0 -2 2 group_id 1 } # Button item { type sphere color 000000 radius 7 coords -20 0 0 group_id 1 } item { type sphere color FFFFFF radius 4 coords -24 0 0 group_id 1 } # Bottom item { type sphere color FFFFFF radius 25 coords 0 0 0 limits 0 0 0 0 -25 -2 group_id 1 } # # Insertion de nos pokeballs dans la scene # group { id 1 rot 0 -30 0 } group { id 1 size_mul 0.4 coords -280 40 -30 rot -10 -20 0 } group { id 1 size_mul 0.5 coords 150 60 30 rot 20 30 -10 } group { id 1 size_mul 0.5 coords -150 -60 -30 rot 20 30 10 }
1 | 2 | 3 |
---|---|---|
color 404040 color2 b57118 brightness 20 pnoise 1 pnoise_octave 10 pnoise_freq 4 pnoise_pers 1 bump 100 |
pnoise 3 pnoise_octave 10 pnoise_freq 2 pnoise_pers .9 |
type sphere color FF0000 color2 bc7640 brightness 20 pnoise 3 |
4 | 5 | 6 |
color 303090 color2 309090 brightness 20 pnoise 3 pnoise_octave 10 pnoise_freq 5 pnoise_pers 5 bump 100 |
color 3b2b15 color2 776144 pnoise 2 pnoise_octave 1 pnoise_freq 0.3 pnoise_pers 1 bump 150 |
color 303030 color2 FFAAAA pnoise 3 pnoise_freq .9 pnoise_pers 0.9 pnoise_octave 5 |
Type | Valeur attendue | Exemple | Commentaires |
---|---|---|---|
Booléen | 0 ou 1 | 1 | La valeur est recupérée comme un entier. |
Coordonnées | 3 valeurs flottantes (double) | -3.4 42 7.1 | R.A.S. |
Couleur | Entier en hexadecimal | ff420a | Ce n'est pas sensible a la casse. FF420A marche aussi. |
Double | valeur flottante | -3.4 | R.A.S. |
Entier | valeur entiere | 4042 | R.A.S. |
Limites | 6 valeurs flottantes (double) | 0 0 -3.3 7 42 47.01 | Les deux premières valeurs correspondent aux limites visibles sur l'axe x, les deux suivantes sur l'axe y, et les 2 dernières sur l'axe z. Pour qu'une limite sur l'un des axes soit ignorée, il suffit de préciser le meme nombre pour ses 2 valeurs. |
Objet type | L'un des valeur suivante : sphere, cylinder, cone, plane. | sphere | Bien que ce soit une chaine de caractères, les guillemets sont proscrites. |
Pourcentage | Entier compris entre 0 et 100. | 42 | Ne pas mettre de caractere '%'. |
Rotations | Meme chose que les coordonnées. | 42 32.3 -5 | Les valeurs sont en degré. |
Texture | Adresse du fichier bitmap. | tex/texture.bmp | R.A.S. |
Cone | Cylindre | Plan | sphere |