home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 9 / CD_ASCQ_09_1193.iso / maj / 4234 / director.doc < prev    next >
Text File  |  1993-10-01  |  49KB  |  1,257 lines

  1.                           ╔════════════════════════╗
  2.                           ║ D I R E C T O R - 3 D  ║
  3.                           ╟────────────────────────╢
  4.                           ║       Ray-Tracer       ║
  5.                           ║       version 2.0      ║
  6.                           ╚════════════════════════╝
  7.                                    
  8.                         (c) Juin 1993, ChromaGraphics
  9.                         Développé par Stéphane MARTY.
  10.  
  11. Version 1.0 -> Décembre 1991.
  12. Version 1.1 -> Juin 1992.
  13. Version 1.2 -> Août 1992.
  14. Version 1.3 -> Décembre 1992.
  15. Version 2.0 -> Juin 1993.
  16.  
  17. ┌────────────────────────────────────────────────────────────────────────┐
  18. │ Ce programme est placé dans le Domaine Public par l'auteur et ne peut, │
  19. │ en aucun  cas, faire  l'objet d'un  acte commercial. Il peut donc être │
  20. │ distribué  gratuitement  par  n'importe  quel  procédé  valable,  mais │
  21. │ l'auteur retient néanmoins le copyright.                               │
  22. ├────────────────────────────────────────────────────────────────────────┤
  23. │ Le manuel de référence complet et illustré du logiciel peut être obte- │
  24. │ nu directement auprès de l'auteur pour la modique somme de 75 francs   │
  25. │ par chèque (60 francs pour le manuel et 15 francs pour les frais de    │
  26. │ port et d'emballage). Le bon de commande et d'autres détails sont dans │
  27. │ le fichier MANUEL.DOC.                                                 │
  28. ├────────────────────────────────────────────────────────────────────────┤
  29. │ Si vous écrivez des fichiers scripts intéressants pour DIRECTOR-3D,    │
  30. │ faites-moi les parvenir et, si je les juge valables, ils feront partie │
  31. │ d'une prochaine mise à jour. N'oubliez pas d'y inscrire votre nom en   │
  32. │ entête...                                                              │
  33. └────────────────────────────────────────────────────────────────────────┘
  34.  
  35.  
  36. INTRODUCTION
  37. ============
  38.  
  39. DIRECTOR-3D est  un programme de Ray-Tracing (système de rendu d'image
  40. de synthèse  du domaine  du photoréalisme).  Il  utilise  un  puissant
  41. langage  de   description  explicite  en  français  supervisé  par  un
  42. analyseur syntaxique.  Ce Ray-Tracer  n'a  pas  la  prétention  d'être
  43. comparé  aux  meilleurs  produits  du  domaine  public  tels  Vivid,
  44. Persistence of Vision ou encore LuxArt, mais se révèle plutôt comme un
  45. excellent outil d'initiation et de découverte de ce monde fabuleux. Sa
  46. syntaxe est  très proche  de celle  de QRT  écrit par  Steve Koren, et
  47. certains algorithmes en sont inspirés.
  48. La  description mathématique  d'une scène 3D est préalablement décrite
  49. dans un fichier texte (extension .DAT par défaut) grâce aux primitives
  50. dont dispose DIRECTOR-3D afin d'être par la suite analysée et calculée
  51. pour obtenir une image de synthèse.
  52.  
  53. Comme le  Ray-Tracing est  une technique  qui prend du temps de par la
  54. complexité et  le réalisme des images rendues (réflexions, réfraction,
  55. lumière diffuse,  sources lumineuses,  ombres, calcul  des formes  etc
  56. ...),  il   est  vivement   conseillé   d'utiliser   un   coprocesseur
  57. arithmétique pour  que les  fonctions mathématiques,  qui représentent
  58. environ 80%  de la  structure du  programme,  soient  plus  rapidement
  59. traitées.
  60.  
  61. Les nouveautés qu'apporte la version 2.0 sont les suivantes :
  62.  
  63. · Interface utilisateur graphique (proche de LuxArt) avec gestion complète
  64.   des opérations par la souris.
  65.  
  66. · Editeur de scripts intégré (le même que LuxArt et SM·Tracer).
  67.  
  68. · Gestion de près de 20 cartes vidéo différentes avec option de détection
  69.   automatique.
  70.  
  71. · Affichage en temps réel de l'image pendant le rendu en
  72.   - 64 niveaux de gris,
  73.   - 256 couleurs,
  74.   - 32768 couleurs (si Sierra DAC Hi-Color présent sur carte vidéo).
  75.  
  76. · Le nom de la commande 'EQUATION' de la version 1.3 a été remplacée par
  77.   'QUADRIQUE' pour une signification plus exacte.
  78.  
  79. · Le symbole < n'est plus utilisé en ligne de commande pour indiquer le
  80.   fichier script de scène à calculer (jusqu'à v1.3 : DIRECTOR <script.DAT ;
  81.   v2.0 : DIRECTOR script.DAT).
  82.  
  83.  
  84. 1) CARACTERISTIQUES DE RAY-TRACING
  85. ==================================
  86.  
  87. * Génération des objets par 5 primitives
  88.    - Parallélogramme,
  89.    - Sphère,
  90.    - Triangle,
  91.    - Anneau,
  92.    - Quadrique.
  93.  
  94. * Rendu
  95.    - de la Lumière diffuse, Réflexion (miroir), Réfraction
  96.      (transparence), Réflexion spéculaire (modèle d'illumination de Phong),
  97.    - de l'Ombre portée de chaque objet par rapport à chaque source lumineuse,
  98.    - de la Lumière ambiante,
  99.    - de la Matière composite des objets.
  100.  
  101. * Définition
  102.    - de Boîtes englobantes (pour limiter les tests d'intersections ray/obj),
  103.    - du Type d'objectif utilisé pour la caméra,
  104.    - des Multiples sources lumineuses prenant en compte différentes
  105.      caractéristiques.
  106.  
  107. * Résolution maximale d'une image rendue : 1024 x 768 points.
  108.  
  109. * Fichier de sortie au format Targa 24 bits (16 millions de couleurs)
  110.   ou au format RAW 15 bits (32768 couleurs).
  111.  
  112. * Très bons temps de calcul du rendu du fait de l'optimisation particulièrement
  113.   poussée des algorithmes.
  114.  
  115. * Capable d'établir un rapport complet sur le rendu d'une scène dans un fichier
  116.   ascii texte d'extension .RAP (le nom étant le même que le fichier script
  117.   spécifié).
  118.  
  119. * Permet de reprendre et continuer un fichier image à l'endroit précis où il a
  120.   été volontairement interrompu.
  121.  
  122. * Utilitaires secondaires inclus pour :
  123.   - convertir un fichier image RAW en fichier image 8 bits GIF compact (87a),
  124.   - visualiser les images aux formats GIF et JPEG avec possibilité de
  125.     traitement sur le résultat d'affichage final.
  126.  
  127.  
  128.  
  129. 2) LE BUREAU DE DIRECTOR-3D
  130. °°°°°°°°°°°°°°°°°°°°°°°°°°°
  131.  
  132. La présente version 2.0 possède désormais une petite interface graphique
  133. pilotée au clavier ou à la souris appelée : bureau. Il va permettre à
  134. l'utilisateur de manipuler les différentes options du programme beaucoup
  135. plus facilement qu'auparavant.
  136. L'utilisation de la souris est fortement conseillée.
  137. Le bureau peut se résumer à cette boite placée au centre de l'écran :
  138.  
  139. ╒╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╕
  140. ╞                                                        ╡
  141. ╞ ┌────────── Scène ───────────┐┌─────── Image ────────┐ ╡
  142. ╞ │ ≡≡ Fichier script ........ ││ Largeur .... (■) RAW │ ╡
  143. ╞ │    [X] Continuer           ││ Hauteur ...  (■) TGA │ ╡
  144. ╞ └────────────────────────────┘└──────────────────────┘ ╡
  145. ╞ ┌────────── Option ──────────┐┌─────── Rendu ────────┐ ╡
  146. ╞ │ Facteur proportionnel .... ││ [X] Lumière diffuse  │ ╡
  147. ╞ │ Type d'objectif ..         ││ [X] Réflexions       │ ╡
  148. ╞ │ [X] Rapport ASCII .RAP     ││ [X] Réfraction       │ ╡
  149. ╞ │ [X] Carte vidéo ≡≡    ≡≡   ││ [X] Ombres portées   │ ╡
  150. ╞ └────────────────────────────┘└──────────────────────┘ ╡
  151. ╞         ┌───────┐      ┌──────┐       ┌───────┐        ╡
  152. ╞         │LANCER │      │EDITER│       │QUITTER│        ╡
  153. ╞         └───────┘      └──────┘       └───────┘        ╡
  154. ╘╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╛
  155.  
  156. Légende :
  157. °°°°°°°
  158. (■) Sélecteur    = ( ) désélectionné    (■) sélectionné
  159.  
  160. [X] Intérrupteur = [ ] désactivé        [X] activé
  161.  
  162. ≡≡  Bouton pression
  163.  
  164. .... Champ (zone de texte)
  165.  
  166. ┌──────┐
  167. │EDITER│ Bouton icône
  168. └──────┘
  169.  
  170. Description :
  171. °°°°°°°°°°°
  172. ┌────────── Scène ───────────┐ Doit contenir le nom du script de scène à
  173. │ ≡≡ Fichier script ........ │ traiter. Le bouton pression ouvre la liste
  174. │    [X] Continuer           │ des scènes existantes dans le répertoire.
  175. └────────────────────────────┘ Pour en créer une nouvelle, il suffit d'écrire
  176.  son nom dans la zone de texte, puis de l'éditer. L'interrupteur 'Continuer'
  177.  doit être activé pour continuer le rendu d'une scène entamée.
  178.  
  179. ┌─────── Image ────────┐ Si ces deux champs ne sont pas vide, leurs valeurs
  180. │ Largeur .... (■) RAW │ seront utilisées pour fixer la largeur et la hauteur
  181. │ Hauteur ...  (■) TGA │ (en pixels) de l'image. Le sélecteur spécifie le
  182. └──────────────────────┘ format de sortie de la scène à calculer.
  183.  
  184. ┌────────── Option ──────────┐ 
  185. │ Facteur proportionnel .... │ -> option +f  ) Voir 
  186. │ Type d'objectif ..         │ -> option +o  ) chapitre
  187. │ [X] Rapport ASCII .RAP     │ -> option +r  ) suivant
  188. │ [X] Carte vidéo ≡≡    ≡≡   │ Active ou désactive le rendu en mode vidéo
  189. └────────────────────────────┘ graphique utilisant les compétences de la
  190.  carte vidéo. Le premier bouton pression ouvre la liste des cartes gérées,
  191.  tandis que le second ouvre une boîte dans laquelle on fixe le type de
  192.  palette de couleurs à utiliser pour l'écran pendant le rendu (option +v du
  193.  prochain chapitre). Cette palette ne concerne évidemment pas le fichier
  194.  RAW ou TGA créé.
  195.  
  196. ┌─────── Rendu ────────┐ Règle la qualité du rendu. Cette qualité est au
  197. │ [X] Lumière diffuse  │ maximum lorsque toutes les propriétés sont activées.
  198. │ [X] Réflexions       │ Une propriété désactivée diminuera les temps de
  199. │ [X] Réfraction       │ calcul mais le réalisme de l'image obtenue sera
  200. │ [X] Ombres portées   │ également affecté.
  201. └──────────────────────┘
  202.  
  203. ┌───────┐ Ordonne le rendu de la scène en cours. Le programme revient toujours
  204. │LANCER │ au bureau une fois la scène calculée, sauf si le calcul a été lancé
  205. └───────┘ en ligne de commande.
  206.  
  207. ┌──────┐ Bascule le bureau en mode Editeur de script. 
  208. │EDITER│ La scène dont le nom est inscrit dans le champ 'Scène' sera alors
  209. └──────┘ passé à l'éditeur afin d'en traiter le contenu.
  210.  Il se présente sous la forme :
  211.  - La ligne d'édition est écrite en blanc sur fond rouge. Le curseur se trouve
  212.    donc toujours sur cette ligne.
  213.  - Le reste du texte est écrit en vert sur fond noir.
  214.  - Les barres d'état en haut et en bas de l'écran sont écrite en blanc sur fond
  215.    bleu.
  216.  - Tout message de l'éditeur sera écrit en bleu clair sur l'avant dernière
  217.    ligne de l'écran.
  218.  - A partir du moment où un caractère est inséré ou supprimé du script, celui-
  219.    ci est considéré comme modifié et un astérisque clignotant s'affiche devant
  220.    le nom du fichier en haut à gauche de l'écran.
  221.  - L'écran récapitulatif des principales touches opérationnelles s'obtient en
  222.    appuyant sur la touche F1.
  223.  
  224. ┌───────┐
  225. │QUITTER│ Termine la session DIRECTOR-3D et revient sous DOS.
  226. └───────┘
  227.  
  228.  
  229.  
  230. 3) LANCER LE RENDU D'UNE SCENE EN LIGNE DE COMMANDE
  231. ===================================================
  232.  
  233. Il est possible de faire directement calculer une scène à DIRECTOR-3D sans
  234. avoir à passer par le bureau. Il suffit de spécifier, après l'exécutable
  235. DIRECTOR.EXE, le nom d'un script créé et, éventuellement, une série d'options.
  236. Considérons que le fichier contenant la description de la scène se nomme
  237. SCENE01.DAT ; son rendu se lance donc en tapant du système DOS la ligne
  238. de commande :
  239.     DIRECTOR SCENE01.DAT
  240. Dans ce  cas, DIRECTOR-3D  utilise toutes  les informations  contenues
  241. dans ce fichier sans rien modifier.
  242. Mais il  est possible  d'ajouter une  série d'options  sur la ligne de
  243. commande qui  vont permettre  de spécifier  de nouvelles  valeurs  aux
  244. paramètres obligatoires  de la  commande «Configuration» du fichier de
  245. description (voir  le  chapitre  sur  le  langage  pour  connaître  la
  246. fonction de  cette commande).  Ce seront  ces  nouvelles  valeurs  qui
  247. seront prises  en compte et non plus celles de «Configuration» dans le
  248. fichier. Ceci  permet de  donner directement  une autre résolution, un
  249. autre facteur  proportionnel ou  un autre  objectif sans  avoir  à  en
  250. modifier le contenu.
  251.  
  252. Ces options sont :
  253. ----------------
  254.  
  255. +x [largeur]  = Resolution_en_x
  256.  
  257. +y [hauteur]  = Resolution_en_y
  258.  
  259. +f [facteur]  = Facteur_proportionnel
  260.  
  261. +o [objectif] = Objectif
  262.  
  263. +s [nom_de_fichier(.TGA) ou (.RAW)] = Fichier_de_sortie
  264.  
  265. +r          = Etablit un  rapport complet  pendant le rendu d'une scène dans
  266.               un  fichier ascii  texte d'extension .RAP et de  nom semblable
  267.               à celui du fichier script.
  268.  
  269. +c          = Pour reprendre et continuer le rendu d'un fichier entamé.
  270.  
  271. -ombr       = Indique au programme de ne pas tenir compte des ombres dans le
  272.               rendu de la scène. Ce facteur en moins accélèrera le temps de
  273.               calcul mais réduira sensiblement le réalisme de l'image obtenue.
  274.  
  275. -diff       = Indique au programme de ne pas tenir compte de la lumière
  276.               diffuse des objets de la scène. Ce facteur en moins accélèrera
  277.               le temps de calcul mais réduira énormement le réalisme de
  278.               l'image obtenue.
  279.  
  280. -refl       = Indique au programme de supprimer toute propriété de réflexion
  281.               à la surface des objets de la scène. Ce facteur en moins accé-
  282.               lèrera le temps de calcul mais ne donnera pas à l'image obtenue
  283.               ce photoréalisme propre au ray-tracing.
  284.  
  285. -refr       = Indique au programme de supprimer toute propriété de réfraction
  286.               à la surface des objets de la scène. Ce facteur en moins accé-
  287.               lèrera le temps de calcul mais ne donnera pas à l'image obtenue
  288.               ce photoréalisme propre au ray-tracing.
  289.  
  290. +v [carte] [palette] = Active le rendu en mode vidéo graphique. Le paramètre
  291.                        'carte' spécifie la référence de la carte vidéo, tandis
  292.                        que 'palette' permet de choisir le type de palette de
  293.                        couleurs à utiliser pour la conversion en temps réel.
  294.                        Voici la référence de chaque carte :
  295.                          0 = Auto-détectée
  296.                          1 = VGA 320x200x256c
  297.                          2 = MVGA 360x480
  298.                          3 = Tseng Labs ET-3000
  299.                          4 = Tseng Labs ET-4000
  300.                          5 = AT&T VDC600 SVGA
  301.                          6 = Oak Technologies OTI
  302.                          7 = Video Seven SVGA
  303.                          8 = Video Seven Vega VGA
  304.                          9 = Paradise SVGA
  305.                          A = Ahead Systems v.A
  306.                          B = Ahead Systems v.B
  307.                          C = Chip and Technologies
  308.                          D = ATI VGA Wonder
  309.                          E = Everex SVGA
  310.                          F = Trident SVGA
  311.                          G = Standard V.E.S.A.
  312.                          O = TIGA/Hercules 16bit
  313.                          P = TIGA/Hercules 24bit
  314.  
  315.                        Les 3 palettes possibles sont :
  316.                          0 = 256 couleurs
  317.                          1 = 64 tons de gris
  318.                          2 = 32768 couleurs (pour SIERRA DAC)
  319.  
  320. Exemple :
  321. -------
  322. DIRECTOR SCENE01.DAT +x 640 +y 480 -ombr +v 0 1
  323.  
  324. Le programme passe alors en phase de lecture du fichier spécifié. Dans
  325. un premier  temps, il  vérifie soigneusement  que tous  les paramètres
  326. sont corrects  ou plausibles.  Si une  erreur  de  description  ou  de
  327. paramétrage est  décelée, elle  est tout  de suite indiquée (numéro de
  328. ligne  et   message  d'erreur   correspondant)  et  la  procédure  est
  329. immédiatement stoppée. Dans le cas contraire, il se construit un monde
  330. virtuel d'après les commandes du script (disposition  des objets dans
  331. l'espace).
  332. Dès que cette première phase est complétée (quasi instantanément), le
  333. moteur de ray-tracing commence la modélisation de la scène : suivi  de
  334. chaque rayon à partir de la grille d'écran, recherche de leurs impacts
  335. sur les objets et calcul de l'intensité du pixel en cours.
  336.  
  337. Si le rendu s'effectue en mode graphique, l'image apparaît en couleurs
  338. ou  en niveaux  de gris au  fur et à  mesure que  le ray-tracer trouve
  339. l'intensité du pixel en cours.
  340. Si le calcul a été demandé en mode texte, les informations, et notamment
  341. le numéro de la ligne en cours de traitement, s'affichent dans une fenêtre. 
  342. Dans ce second cas, une pression sur la touche ECHAP affichera une fenêtre
  343. dans laquelle il vous faudra confirmer, par oui ou non, l'arrêt immédiat
  344. du rendu de la scène. Vous avez la possibilité de reprendre les calculs d'un
  345. fichier interrompu à l'endroit précis où il a été stoppé grâce à
  346. l'interrupteur 'Continuer' du bureau, ou à l'option +c en ligne de commande.
  347.  
  348.  
  349.  
  350. 4) LES FICHIERS D'EXEMPLES
  351. ==========================
  352.  
  353. Le package de DIRECTOR-3D v2.0 contient plusieurs fichiers scripts
  354. (.DAT). Ils  ont été  créés dans  le but  de montrer quelques unes des
  355. capacités de  ce Ray-Tracer,  mais également  pour faciliter  et  pour
  356. accélérer la  compréhension de  la mise  en oeuvre  de  vos  premières
  357. scènes. Le  package contient  également le fichier graphique au format
  358. GIF (320 x 200 en 256 couleurs) de chacun d'eux.
  359.  
  360.  
  361.  
  362. 5) LE LANGAGE DE DESCRIPTION
  363. ============================
  364.  
  365. Comme nous allons le voir, tout ce qui a un rapport avec le  placement
  366. et  la mise  à l'échelle  d'objets  dans la scène  est indiqué par des
  367. vecteurs. En effet, DIRECTOR-3D se paramètre en coordonnées cartésiennes
  368. et utilise donc comme repère un  système d'axes  orthonormés (abscisse,
  369. ordonnée et  cote). Chaque coordonnée  est exprimée  par trois  nombres
  370. X, Y et Z dont les valeurs peuvent être entières ou décimales, positives
  371. ou négatives sachant que
  372. - l'on regarde à travers l'écran sur l'axe +X
  373. - l'axe +Z tend vers la droite de l'écran
  374. - l'axe +Y tend vers le haut de l'écran
  375.  
  376. Il n'y  a pas  d'ordre particulier  à suivre  dans les  commandes  qui
  377. servent à  décrire une  scène car DIRECTOR-3D ne traite pas le fichier
  378. d'entrée comme le fait un compilateur (soit respectueusement ligne par
  379. ligne). En  effet, il  considère le  contenu du fichier de description
  380. comme un tout.
  381.  
  382. Lors de  la création  du fichier  de description  d'une scène, il faut
  383. savoir que  les  trois  commandes  suivantes  de  DIRECTOR-3D  doivent
  384. obligatoirement figurer :
  385.  
  386.     Fichier_de_sortie
  387.  
  388.     Configuration
  389.  
  390.     Camera
  391.  
  392. L'utilisation des  majuscules/minuscules n'a  aucune incidence  sur le
  393. nom des commandes. En effet, si l'orthographe est respectée, un nom de
  394. commande   peut   être   écrit   de   diverses   façons   (exemple   :
  395. Source_Lumineuse, SOURCE_lumineuse, source_luMINEUSE etc ...).
  396. Même si  toutes les commandes du langage sont en français, je n'ai pas
  397. pris en  compte les accents. Donc, faites bien attention d'écrire, par
  398. exemple, «sphere» et non pas «sphère».
  399.  
  400. Dans les  explications  suivantes  sur  chacune  des  commandes,  j'ai
  401. utilisé une  syntaxe qui  permet de savoir quel type de paramètres est
  402. utilisé par la commande décrite.
  403. Cette syntaxe est représentée dans le tableau ci-dessous :
  404.  
  405. ╒════════════╤════════════════╤═════════════════╤════════════════╕
  406. │ Paramètres │   Définition   │     Exemple     │     Valeurs    │
  407. ╞════════════╪════════════════╪═════════════════╪════════════════╡
  408. │ (x, y, z)  │ Vecteur        │ (5, -47, 62.11) │ Toutes         │
  409. │ (r, v, b)  │ Couleur        │ (0, .25, 1)     │ Entre 0 et 1   │
  410. │ ent        │ Entier         │ 9               │ Entre 0 et 127 │
  411. │ déc        │ Décimal        │ -17.26          │ Toutes         │
  412. │ pos        │ Décimal pos    │ 17.26           │ Toutes > 0     │
  413. │ text       │ Chaîne de car. │ LE_SOL          │ ASCII          │
  414. ╘════════════╧════════════════╧═════════════════╧════════════════╛
  415.  
  416. Attention :
  417. ---------
  418.  
  419. - Dans  une chaîne  de caractères  (paramètre text),  les espaces sont
  420.   représentés par le caractère de soulignement _.
  421. - Les  valeurs du  triplet (r,  v, b)  représentant une  couleur  sont
  422.   considérées par le programme comme des pourcentages (ex : .25 = 25%,
  423.   1 = 100%, 0 = 0%).
  424.  
  425.  
  426. 5.1) Les commandes :
  427. ==================
  428.  
  429. La plupart des commandes ont des paramètres optionnels. Le nom de ceux
  430. qui sont obligatoires sera donc précédé du caractère #.
  431.  
  432.  
  433. 5.1.1) CIEL
  434. °°°°°°°°°°°
  435.  
  436. Permet de  définir la  couleur du  ciel qui  est placé, par défaut, en
  437. arrière-plan.
  438.  
  439. Paramètres :
  440. # Couleur_au_zenith = (r, v, b)
  441. # Couleur_a_horizon = (r, v, b)
  442. Degrade = ent
  443.  
  444. DIRECTOR-3D s'efforcera  de construire  un dégradé  aussi  fluide  que
  445. possible (suivant  la valeur  de  Degrade)  afin  que  le  passage  de
  446. l'horizon au zénith reste très naturel.
  447.  
  448. Exemple :
  449. CIEL ( Couleur_au_zenith = (0, .5, .8),
  450.        Couleur_a_horizon = (0, .5, .4),
  451.        Degrade = 5  [je vous conseille de rester entre 1 et 7...]
  452.      )
  453.  
  454.  
  455. 5.1.2) OBJECTIF
  456. °°°°°°°°°°°°°°°
  457.  
  458. Permet de  définir la  longueur focale  de la  lentille de 35mm placée
  459. dans l'objectif de la caméra.
  460.  
  461. Pas de paramètres.
  462.  
  463. Objectif = ent
  464.  
  465. La valeur  par défaut  est 50.  L'indication d'une  valeur plus grande
  466. provoque  un   effet  "Téléphoto",  tandis  qu'une  valeur  inférieure
  467. engendre une vue en grand angle et légèrement déformée.
  468.  
  469. Exemple :
  470. OBJECTIF = 60
  471.  
  472.  
  473. 5.1.3) FICHIER_DE_SORTIE
  474. °°°°°°°°°°°°°°°°°°°°°°°°
  475.  
  476. Permet d'attribuer  un nom  et un  format au  fichier  qui  contiendra
  477. l'image calculée.
  478.  
  479. Pas de paramètres.
  480.  
  481. Fichier_de_sortie = text
  482.  
  483. Le nom  doit avoir  un nombre  maximum de  huit caractères  suivis  du
  484. suffixe .TGA  pour un  format TARGA 24 bits ou .RAW pour un format RAW
  485. 15 bits.  Les espaces sont remplacés par le caractère _ . Il est clair
  486. qu'un fichier de format TGA sera sensiblement plus gros qu'un autre de
  487. format RAW puisqu'il y a 9 bits de différence entre-eux.
  488.  
  489. Exemple :
  490. FICHIER_DE_SORTIE = scene01.TGA
  491.  
  492.  
  493. 5.1.4) CAMERA
  494. °°°°°°°°°°°°°
  495.  
  496. Permet d'indiquer  l'emplacement de  la caméra  par rapport à la scène
  497. décrite.
  498.  
  499. Paramètres :
  500. # Position = (x, y, z)
  501. # Pointee_vers = (x, y, z)
  502. Inclinee_vers = (x, y, z)
  503.  
  504. Les vecteurs  du paramètre  Pointee_vers précisent  la direction  dans
  505. laquelle la  caméra est  braquée (une  valeur du vecteur z plus grande
  506. que 0 permet de faire un zoom sur un endroit précis depuis la position
  507. de la caméra). Inclinee_vers permet d'incliner la caméra vers le ciel,
  508. ou d'avoir une vue plongeante si elle est surélevée.
  509.  
  510. Précisions :
  511. Les  valeurs   du  paramètre  Position  doivent  être  différentes  de
  512. Pointee_vers. Celles  de  Pointee_vers  doivent  être  différentes  de
  513. Inclinee_vers.
  514.  
  515. Exemple :
  516. CAMERA  ( Position = (0, 0, 0),
  517.           Pointee_vers = (80, 10, -10)
  518.         )
  519.  
  520.  
  521. 5.1.5) SOURCE_LUMINEUSE
  522. °°°°°°°°°°°°°°°°°°°°°°°
  523.  
  524. Permet de  placer une  source lumineuse (de plus s'il y en a déjà une,
  525. ou de la définir s'il n'y en a pas encore) dans la scène à décrire.
  526.  
  527. Paramètres :
  528. # Position = (x, y, z)
  529. # Distance = pos
  530. Lumiere_ambiante = (r, v, b)
  531. Rayon = pos
  532.  
  533. Les valeurs du paramètre Lumiere_ambiante définissent la couleur de la
  534. source lumineuse  ( (1,  1,  1)  équivaut  à  une  lumière  totalement
  535. blanche).
  536. Distance fixe  la distance minimale qui rendra normale l'intensité des
  537. objets. Ceux  qui seront  les plus  proches de la source recevront une
  538. lumière plus  forte que  ceux qui  s'en éloignent.  Au-delà  de  cette
  539. distance, l'assombrissement  des objets  sera calculé  en fonction  de
  540. leur position par rapport à la source.
  541.  
  542. Exemple :
  543. SOURCE_LUMINEUSE ( Position = (200, 40, -70),
  544.                    Distance = 55,
  545.                    Rayon = 8
  546.                  )
  547.  
  548.  
  549. 5.1.6) SPHERE
  550. °°°°°°°°°°°°°
  551.  
  552. Permet de  créer et  de placer une sphère en lui attribuant toutes les
  553. caractéristiques qu'elle devra avoir lors du suivi de rayons.
  554.  
  555. Paramètres :
  556. # Position = (x, y, z)
  557. # Rayon = pos
  558. Nom = text                     -> identificateur de la sphère
  559. Motif = text                   -> matière composite attribuée
  560. Motif_supprime = text          -> matière composite à lui extraire
  561. Lumiere_ambiante = (r, v, b)
  562. Lumiere_diffuse = (r, v, b)    
  563. Emission = (r, v, b)           -> émission de lumière
  564. Densite = (r, v, b)            -> atténuation de lumière
  565. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  566. Indice_de_refraction = pos     -> taux de transparence
  567. Degrade = ent
  568. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  569. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  570.  
  571. La plupart  des paramètres  ci-dessus ont  fait l'objet d'explications
  572. détaillées  dans   la  seconde   partie  du   deuxième  chapitre.  Ces
  573. explications  sont   valables  pour   toutes  les  commandes  qui  les
  574. utilisent.  Cependant,   elles  restent   un  peu  trop  générales  et
  575. théoriques.  Vous  trouverez  donc  dans  le  paragraphe  suivant  une
  576. explication   plus   appropriée   à   DIRECTOR-3D   de   ces   modèles
  577. d'illumination, ainsi que le détail des autres paramètres pré-cités.
  578.  
  579. * Motif : Indique simplement le nom du motif (préalablement défini par
  580. une autre commande) qui devra  être "collé" sur la surface de l'objet.
  581. Les motifs  sont cumulables,  c'est  pourquoi  l'emploi  du  paramètre
  582. suivant s'avère parfois judicieux.
  583.  
  584. * Motif_supprime  : Indique  le nom du motif (préalablement défini par
  585. une autre commande) qui devra être "arraché" de la surface de l'objet.
  586.  
  587. * Lumiere_ambiante  : Le  triplet (r,  v, b) sert à définir la couleur
  588. intrinsèque de l'objet.
  589.  
  590. * Emission  : Fixe  le taux  de luminosité  à émettre  par l'objet  en
  591. question. Plus particulièrement, ce paramètre indique à DIRECTOR-3D la
  592. quantité de  lumière qu'il  doit supprimer  aux ombres  projetées  par
  593. l'objet.
  594.  
  595. * Densite  : Ce facteur est utilisé pour atténuer la lumière au fur et
  596. à mesure  de sa  pénétration  dans  l'objet.  Le  triplet  de  couleur
  597. représente donc  l'atténuation qui  sera rendue  au travers de l'objet
  598. par unité  de distance  (si sa  taille est  de 5  unités, la  dernière
  599. atténuation sera 5 fois moindre que la première).
  600.  
  601. * Reflexion : Précise la quantité de lumière directement réfléchie par
  602. l'objet. Cette  caractéristique est  le propre  d'un miroir. En effet,
  603. pour que  la surface  d'un objet  soit un parfait miroir, il suffit de
  604. donner la  valeur   maximale (1,  1, 1)  au triplet  de couleurs.  Par
  605. contre, si  une des  trois valeurs  est nettement  supérieure aux deux
  606. autres, le miroir apparaîtra dans le ton de la couleur dominante.
  607.  
  608. * Degrade  : Donne  la quantité  de couleur  en dégradé  à appliquer à
  609. l'objet en question. C'est un procédé qui permet d'obtenir une palette
  610. de couleurs  en mélangeant  d'autres couleurs méticuleusement choisies
  611. afin d'avoir  une impression de fluidité sur la surface. La valeur par
  612. défaut de ce paramètre est 3 (valeurs conseillées : de 1 à 6).
  613.  
  614. * Reflexion_speculaire  : Stipule  le pourcentage de lumière réfléchie
  615. dans la partie de l'objet dégageant de la réflexion spéculaire, tandis
  616. que      l'autre       paramètre      qui       va      de      paire,
  617. Coefficient_reflexion_speculaire,   détermine    le   coefficient   de
  618. réflexion spectrale  utilisé par  le modèle. En d'autres termes, d'une
  619. valeur élevée du coefficient résultera une étroite et petite réflexion
  620. spéculaire et  une apparence  assez métallique  de l'objet. Une petite
  621. valeur du  coefficient doit  être accompagnée  d'une petite  valeur de
  622. réflexion afin  de produire  une surface d'apparence plutôt terne, tel
  623. du papier.
  624.  
  625. Exemple :
  626. SPHERE  ( Position = (150, 25, 0),
  627.           Rayon = 20,
  628.           Lumiere_Diffuse = (.9, .1, .1),
  629.           Lumiere_Ambiante = (.4, .4, .4),
  630.           Reflexion_Speculaire = .70,
  631.           Coefficient_Reflexion_Speculaire = 20
  632.         )
  633.  
  634.  
  635.  
  636. 5.1.7) PARALLELOGRAMME
  637. °°°°°°°°°°°°°°°°°°°°°°
  638.  
  639. Permet de  créer et  de placer  un parallélogramme  en lui  attribuant
  640. toutes les caractéristiques qu'il devra avoir lors du suivi de rayons.
  641.  
  642. Paramètres :
  643. # Position = (x, y, z)
  644. # Premier_coin = (x, y, z)
  645. # Second_coin = (x, y, z)
  646. Nom = text                     -> identificateur du parallélogramme
  647. Motif = text                   -> matière composite attribuée
  648. Motif_supprime = text          -> matière composite à lui extraire
  649. Lumiere_ambiante = (r, v, b)
  650. Lumiere_diffuse = (r, v, b)    
  651. Emission = (r, v, b)           -> émission de lumière
  652. Densite = (r, v, b)            -> atténuation de lumière
  653. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  654. Indice_de_refraction = pos     -> taux de transparence
  655. Degrade = ent
  656. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  657. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  658.  
  659. Les  vecteurs   des  deux   paramètres  Premier_coin   et  Second_coin
  660. définissent la forme du parallélogramme dans l'espace.
  661.  
  662. Exemple :
  663. PARALLELOGRAMME ( Position = (150, 0, 100),
  664.                   Premier_Coin = (100, 0, -100),
  665.                   Second_Coin = (0, 180, 0),
  666.                   Lumiere_Diffuse = (.1, .1, .1),
  667.                   Reflexion = (.7, .7, .7),
  668.                   Motif = DAMIER
  669.                 )
  670.  
  671.  
  672. 5.1.8) TRIANGLE
  673. °°°°°°°°°°°°°°°
  674.  
  675. Permet de  créer et de placer un triangle en lui attribuant toutes les
  676. caractéristiques qu'il devra avoir lors du suivi de rayons.
  677.  
  678. Paramètres :
  679. # Position = (x, y, z)
  680. # Premier_sommet = (x, y, z)
  681. # Second_sommet = (x, y, z)
  682. Nom = text                     -> identificateur du triangle
  683. Motif = text                   -> matière composite attribuée
  684. Motif_supprime = text          -> matière composite à lui extraire
  685. Lumiere_ambiante = (r, v, b)
  686. Lumiere_diffuse = (r, v, b)    
  687. Emission = (r, v, b)           -> émission de lumière
  688. Densite = (r, v, b)            -> atténuation de lumière
  689. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  690. Indice_de_refraction = pos     -> taux de transparence
  691. Degrade = ent
  692. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  693. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  694.  
  695. Les vecteurs  des  deux  paramètres  Premier_sommet  et  Second_sommet
  696. définissent la forme du triangle dans l'espace.
  697.  
  698. Exemple :
  699. TRIANGLE ( Position = (120, 0, 300),
  700.            Premier_Sommet = (86, 0, -50),
  701.            Second_Sommet = (43, 250, -50),
  702.            Lumiere_Diffuse = (.6, .2, .2),
  703.            Reflexion = (.8, .8, .8),
  704.            Motif = GLACE
  705.          )
  706.  
  707.  
  708. 5.1.9) ANNEAU
  709. °°°°°°°°°°°°°
  710.  
  711. Permet de  créer et  de placer  un anneau en lui attribuant toutes les
  712. caractéristiques qu'il devra avoir lors du suivi de rayons.
  713.  
  714. Paramètres :
  715. # Position = (x, y, z)
  716. # Vecteur1 = (x, y, z)
  717. # Vecteur2 = (x, y, z)
  718. # Rayon_interne = pos
  719. # Rayon_externe = pos
  720. Nom = text                     -> identificateur de l'anneau
  721. Motif = text                   -> matière composite attribuée
  722. Motif_supprime = text          -> matière composite à lui extraire
  723. Lumiere_ambiante = (r, v, b)
  724. Lumiere_diffuse = (r, v, b)    
  725. Emission = (r, v, b)           -> émission de lumière
  726. Densite = (r, v, b)            -> atténuation de lumière
  727. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  728. Indice_de_refraction = pos     -> taux de transparence
  729. Degrade = ent
  730. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  731. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  732.  
  733. Les deux  paramètres Vecteur1  et Vecteur2  définissent  la  forme  de
  734. l'anneau  dans   l'espace  et   les  deux   autres,  Rayon_interne  et
  735. Rayon_externe, définissent  son  épaisseur.  Si  la  valeur  du  rayon
  736. interne est égale à zéro, l'anneau devient un simple cercle.
  737.  
  738. Précision :
  739. 0 < rayon_interne < rayon_externe
  740.  
  741. Exemple :
  742. ANNEAU ( Position = (150, 50, 0),
  743.          Vecteur1 = (1, 0, 0),
  744.          Vecteur2 = (0, 0, 1),
  745.          Rayon_externe = 15,
  746.          Rayon_interne = 8,
  747.          Lumiere_diffuse = (.2, .8, .8)
  748.        )
  749.  
  750.  
  751. 5.1.10) QUADRIQUE
  752. °°°°°°°°°°°°°°°°°
  753.  
  754. Permet de  créer et de placer une quadrique en lui attribuant toutes les 
  755. caractéristiques qu'elle devra avoir lors du suivi de rayons.
  756.  
  757. Cette surface répond à l'équation : ax² + by² + cz² = d.
  758.  
  759. Paramètres :
  760. # Position = (x, y, z)
  761. # a = déc (exprime x² dans la quadrique)
  762. # b = déc (exprime y² dans la quadrique)
  763. # c = déc (exprime z² dans la quadrique)
  764. # d = déc (exprime la constante dans la quadrique)
  765. Valeur_maximum_x = déc
  766. Valeur_minimum_x = déc
  767. Valeur_maximum_y = déc
  768. Valeur_minimum_y = déc
  769. Valeur_maximum_z = déc
  770. Valeur_minimum_z = déc
  771. Nom = text                     -> identificateur de l'équation
  772. Motif = text                   -> matière composite attribuée
  773. Motif_supprime = text          -> matière composite à lui extraire
  774. Lumiere_ambiante = (r, v, b)
  775. Lumiere_diffuse = (r, v, b)    
  776. Emission = (r, v, b)           -> émission de lumière
  777. Densite = (r, v, b)            -> atténuation de lumière
  778. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  779. Indice_de_refraction = pos     -> taux de transparence
  780. Degrade = ent
  781. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  782. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  783.  
  784. Les coefficients  a, b,  c et  d doivent  donc être  spécifiés.  Cette
  785. primitive  permet   de  reproduire  des  cylindres,  cônes,  sphéroïde
  786. oblongue  etc...   Les  paramètres  de  type  Valeur_minimum_[xyz]  et
  787. Valeur_maximum_[xyz] permettent  de définir  l'étendue maximale  de la
  788. surface dans l'espace.
  789.  
  790. Exemple :
  791. QUADRIQUE ( Position = (200, 90, 1),
  792.             A = 1,
  793.             B = 1,
  794.             C = 0,
  795.             D = 150,
  796.             Valeur_minimum_x = -13,
  797.             Valeur_maximum_x = 13,
  798.             Valeur_minimum_y = -13,
  799.             Valeur_maximum_y = 13,
  800.             Valeur_minimum_z = -80,
  801.             Valeur_maximum_z = 80,
  802.             Lumiere_diffuse = (.8, .1, .1),
  803.             Reflexion_speculaire = .65,
  804.             Coefficient_reflexion_speculaire = 20
  805.           )
  806.  
  807.  
  808. 5.1.11) MOTIF
  809. °°°°°°°°°°°°°
  810.  
  811. Permet de  créer la  définition d'un  motif qui pourra être attribué à
  812. n'importe quelle primitive.
  813.  
  814. Paramètres :
  815. # Nom = text
  816. # Taille_en_x = pos
  817. # Taille_en_y = pos
  818. Cercle ( structure de déclaration de la primitive de motif Cercle )
  819. Rectangle ( structure de déclaration de la primitive de motif Rectangle )
  820. Polygone ( structure de déclaration de la primitive de motif Polygone )
  821.  
  822. Un motif est donc une zone en deux dimensions qui peut être collée sur
  823. la surface  d'une primitive.  Pour pouvoir  utiliser un  motif dans la
  824. définition d'un  objet, il  faut auparavant  l'avoir défini avec cette
  825. commande.
  826. Vous avez  certainement remarqué  que nous  avons  déjà  rencontré  le
  827. mnémonique  Motif   dans  la   liste  des  paramètres  optionnels  qui
  828. permettent de  définir un  objet. Ce  paramètre fait donc référence au
  829. nom du motif qui est défini avec la présente commande. Il ne faut donc
  830. pas confondre paramètre et commande.
  831. Un motif  est défini  en lui  donnant un  nom, une  taille et,  le cas
  832. échéant, la  ou les déclarations de primitives de motifs.
  833. Il y a 3 types de primitives de motifs : Cercle, Rectangle et Polygone
  834. qui peuvent être enchaînés dans la liste de déclaration.
  835. Les paramètres  Taille_en_x et  Taille_en_y spécifient  la  taille  du
  836. motif. Ce  motif sera  répété  autant  de  fois  qu'il  le  faut  pour
  837. recouvrir entièrement la surface de l'objet.
  838. Avant de  détailler la  façon de  déclarer les  primitives de  motifs,
  839. voici un  exemple de  définition d'un  motif en Damier A qui servira à
  840. recouvrir le  sol utilisé  dans une  scène A  (un  classique  du  Ray-
  841. Tracing) :
  842.  
  843. - Définition du motif :
  844.  
  845. MOTIF ( Taille_En_X = 60,
  846.         Taille_En_Y = 60,
  847.         Nom = DAMIER,
  848.         Rectangle (
  849.                    Coin_Superieur_Gauche_X = 0,
  850.                    Coin_Superieur_Gauche_Y = 0,
  851.                    Coin_Inferieur_Droit_X = 30,
  852.                    Coin_Inferieur_Droit_Y = 30,
  853.                    Lumiere_Diffuse = (.1, 1.0, .1),
  854.                   )
  855.         Rectangle (
  856.                    Coin_Superieur_Gauche_X = 30,
  857.                    Coin_Superieur_Gauche_Y = 30,
  858.                    Coin_Inferieur_Droit_X = 60,
  859.                    Coin_Inferieur_Droit_Y = 60,
  860.                    Lumiere_Diffuse = (.1, 1.0, .1),
  861.                   )
  862.       )
  863.  
  864. - Attribution de ce motif au sol (avec quelques précisions
  865. supplémentaires concernant l'illumination) :
  866.  
  867. PARALLELOGRAMME ( Position = (-10000, 0, -10000),
  868.                   Premier_Coin = (20000, 0, 0),
  869.                   Second_Coin = (0, 0, 20000),
  870.                   Lumiere_Diffuse = (.8, .8, 0),
  871.                   Lumiere_Ambiante = (.1, .1, .1),
  872.                   Motif = DAMIER
  873.                  ┌─ Multiplie_Taille_En_X = 2
  874. ┌────────────────┴─ Multiplie_Taille_En_Y = 2
  875. │               )
  876. └─> Ces  deux nouveaux  paramètres seront  expliqués dans le paragraphe
  877. 5.1.11.4 «PARAMETRES COMMUNS».
  878.  
  879. Comme vous  avez pu  le constater,  je n'ai  pas implanté  de commande
  880. spécifique au  Sol (comme  il en  existe une  pour le  Ciel) puisqu'il
  881. suffit de le définir comme étant un gigantesque parallélogramme.
  882. Voyons à  présent les  paramètres qui  permettent la  déclaration  des
  883. primitives de motifs :
  884.  
  885. 5.1.11.1) RECTANGLE
  886. °°°°°°°°°°°°°°°°°°°
  887.  
  888. Paramètres :
  889. # Coin_superieur_gauche_x = pos
  890. # Coin_superieur_gauche_y = pos
  891. # Coin_inferieur_droit_x = pos
  892. # Coin_inferieur_droit_y = pos
  893. Lumiere_ambiante = (r, v, b)
  894. Lumiere_diffuse = (r, v, b)    
  895. Emission = (r, v, b)           -> émission de lumière
  896. Densite = (r, v, b)            -> atténuation de lumière
  897. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  898. Indice_de_refraction = pos     -> taux de transparence
  899. Degrade = ent
  900. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  901. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  902.  
  903. Les quatre  paramètres obligatoires  sont  utilisés  pour  définir  la
  904. position des deux coins opposés Supérieur gauche et Inférieur droit.
  905.  
  906. Précisions :
  907. Cette commande ne peut s'utiliser que dans la définition d'un motif.
  908. Coin_superieur_gauche_x < Coin_inferieur_droit_x
  909. Coin_superieur_gauche_y < Coin_inferieur_droit_y
  910.  
  911. 5.1.11.2) CERCLE
  912. °°°°°°°°°°°°°°°°
  913.  
  914. Paramètres :
  915. # Rayon = pos
  916. Lumiere_ambiante = (r, v, b)
  917. Lumiere_diffuse = (r, v, b)
  918. Emission = (r, v, b)           -> émission de lumière
  919. Densite = (r, v, b)            -> atténuation de lumière
  920. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  921. Indice_de_refraction = pos     -> taux de transparence
  922. Degrade = ent
  923. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  924. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  925.  
  926. Le paramètre Rayon définit le rayon du cercle.
  927.  
  928. Précision :
  929. Cette commande ne peut s'utiliser que dans la définition d'un motif.
  930.  
  931. Exemple :
  932. CERCLE ( Rayon = 5,
  933.          Lumiere_Diffuse = (.9, .8, .2),
  934.          Reflexion = (.2, .2, .3)
  935.        )
  936.  
  937. 5.1.11.3) POLYGONE
  938. °°°°°°°°°°°°°°°°°°
  939.  
  940. Paramètres :
  941. # Point = (x, y)
  942. Lumiere_ambiante = (r, v, b)
  943. Lumiere_diffuse = (r, v, b)
  944. Emission = (r, v, b)           -> émission de lumière
  945. Densite = (r, v, b)            -> atténuation de lumière
  946. Reflexion = (r, v, b)          -> niveau arbitraire de réflexion
  947. Indice_de_refraction = pos     -> taux de transparence
  948. Degrade = ent
  949. Coefficient_reflexion_speculaire = pos -> lissage de Phong
  950. Reflexion_speculaire = pos     -> pourcentage de réflexion spéculaire
  951.  
  952. Le paramètre  Point est utilisé pour définir chaque point du polygone.
  953. Autant de points que possible peuvent être choisis, mais un minimum de
  954. quatre est  requis, le  dernier ayant  les mêmes  coordonnées  que  le
  955. premier afin de créer un polygone fermé.
  956.  
  957. Précision :
  958. Cette commande ne peut s'utiliser que dans la définition d'un motif.
  959.  
  960. Exemple (de déclaration d'un triangle) :
  961. POLYGONE ( Point = (0, 0),
  962.            Point = (10, 0),
  963.            Point = (0, 10),
  964.            Point = (0, 0),
  965.            Lumiere_ambiante = (.5, .5, .5),
  966.            Emission = (.1, .6, .4)
  967.          )
  968.  
  969. 5.1.11.4 PARAMETRES COMMUNS
  970. °°°°°°°°°°°°°°°°°°°°°°°°°°°
  971.  
  972. Les deux  paramètres  Multiplie_taille_en_x  et  Multiplie_taille_en_y
  973. peuvent être  utilisés par n'importe laquelle des 5 primitives objets.
  974. Ils n'interviennent  que sur  le motif  de l'objet  en cours afin d'en
  975. changer la  taille. Cela  permet donc  d'utiliser le  même  motif  sur
  976. différents objets  sans qu'il  n'ai la  même apparence de taille ou de
  977. forme, si le changement de taille n'est pas proportionnel.
  978.  
  979.  
  980. 5.1.12) DEBUT_DE_BOITE & FIN_DE_BOITE
  981. °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  982.  
  983. Permet d'introduire  une série  d'objets ou  de blocs  dans une  boîte
  984. englobante invisible  destinée à limiter les tests d'intersections des
  985. rayons sur  les objets  et donc d'accélérer le processus de rendu. Une
  986. boîte adapte sa taille en fonction de ce qu'elle doit englober. Il est
  987. possible d'utiliser  autant  de  boîtes  englobantes  que  de  mémoire
  988. disponible.
  989.  
  990. Paramètres :
  991. Nom = text
  992.  
  993. Ce  paramètre   optionnel  doit   être   placé   avant   la   commande
  994. DEBUT_DE_BOITE afin  d'indiquer à  DIRECTOR-3D que  la boîte  qui suit
  995. doit porter ce nom. Une boîte placée à l'intérieur d'une autre n'a pas
  996. besoin d'être  nommée car l'emploi de cette dernière par son nom sous-
  997. entend également le traitement de tout ce qu'elle contient.
  998.  
  999. Exemple (d'une  boîte englobant  deux primitives, le tout défini en un
  1000. bloc) :
  1001.  
  1002. DEBUT_DE_BLOC
  1003.  
  1004.   nom = Premier_objet
  1005.   DEBUT_DE_BOITE
  1006.  
  1007.     EQUATION ( position = (200, 100, 100),
  1008.                a = 1,
  1009.                b = 2,
  1010.                c = 1,
  1011.                d = 900,
  1012.                valeur_minimum_x = -30,
  1013.                valeur_maximum_x = 30,
  1014.                valeur_minimum_y = -15,
  1015.                valeur_maximum_y = 0,
  1016.                valeur_minimum_z = -30,
  1017.                valeur_maximum_z = 30,
  1018.                lumiere_diffuse = (1, .1, .1),
  1019.                reflexion_speculaire = .8
  1020.                coefficient_reflexion_speculaire = 20
  1021.              )
  1022.  
  1023.     SPHERE ( position = (185, 95, 110),
  1024.              rayon = 7,
  1025.              lumiere_diffuse = (.1, .1, 1)
  1026.            )
  1027.  
  1028.  FIN_DE_BOITE
  1029.  
  1030. FIN_DE_BLOC
  1031.  
  1032.  
  1033. 5.1.13) DEBUT_DE_BLOC & FIN_DE_BLOC
  1034. °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  1035.  
  1036. Permet de  définir un  ensemble de  primitives afin de les replacer et
  1037. les redimensionner ultérieurement à différents endroits de la scène.
  1038. Un bloc ne peut contenir que des boîtes et non pas d'autres blocs.
  1039. Chacune de ces boîtes doit être déclarée nominativement.
  1040. Dans l'exemple  suivant, trois  objets sont  définis :  Objet1,  Sous-
  1041. objet1 et  Objet2.  Toute  inclusion  de  Objet1  par  la  (prochaine)
  1042. commande GROUPE_DE_BLOC  inclura implicitement  Sous-objet1, mais  pas
  1043. Objet2.
  1044.  
  1045. Exemple :
  1046. DEBUT_DE_BLOC
  1047.  
  1048.     nom = Objet1
  1049.     DEBUT_DE_BOITE
  1050.      [ déclaration de primitives définissant l'objet ]
  1051.         nom = Sous-objet1
  1052.         DEBUT_DE_BOITE
  1053.          [ inclusion d'autres primitives pour la déclaration du même objet ]
  1054.         FIN_DE_BOITE
  1055.     FIN_DE_BOITE
  1056.  
  1057.     nom = Objet2
  1058.     DEBUT_DE_BOITE
  1059.      [ déclaration de primitives définissant le second objet ]
  1060.     FIN_DE_BOITE
  1061.  
  1062. FIN_DE_BLOC
  1063.  
  1064.  
  1065. 5.1.14) GROUPE_DE_BLOC
  1066. °°°°°°°°°°°°°°°°°°°°°°
  1067.  
  1068. Permet de  replacer nominativement  un arbre  de  blocs  préalablement
  1069. défini (et nommé) avec les commandes DEBUT_DE_BLOC et FIN_DE_BLOC.
  1070.  
  1071. Paramètres :
  1072. # Nom = text
  1073. # Position = (x, y, z)
  1074. Echelle = (x, y, z)
  1075.  
  1076. Cette commande  réalisera donc  une copie de l'arbre de blocs spécifié
  1077. par Nom à l'endroit indiqué par les vecteurs de Position.
  1078. Il est également possible, avec Echelle, de redimensionner ce groupe à
  1079. son emplacement.
  1080.  
  1081. Exemple :
  1082. GROUPE_DE_BLOC ( nom = Objet1,
  1083.                  position = (100, -50, 17)
  1084.                )
  1085.  
  1086. Précisions :
  1087. Tous les vecteurs de Echelle doivent être supérieurs à 0.
  1088. Le fait  de choisir  des vecteurs  inégaux pour  le paramètre Echelle,
  1089. entraînera une  déformation de  toutes les primitives se trouvant dans
  1090. le groupe.
  1091.  
  1092.  
  1093. 5.1.15) CONFIGURATION
  1094. °°°°°°°°°°°°°°°°°°°°°
  1095.  
  1096. Permet  de  spécifier  les  caractéristiques  majeures  de  l'image  à
  1097. calculer.
  1098.  
  1099. Paramètres :
  1100. # Resolution_en_x = pos
  1101. # Resolution_en_y = pos
  1102. # Facteur_proportionnel = pos
  1103. sans_ombre
  1104. sans_source_lumineuse
  1105. seuil_de_tolerance = pos
  1106. Lumiere_ambiante = (r, v, b)
  1107. Lumiere_diffuse = (r, v, b)
  1108. Emission = (r, v, b)
  1109. Densite = (r, v, b)
  1110. Reflexion = (r, v, b)
  1111. Indice_de_refraction = pos
  1112. Degrade = ent
  1113. Coefficient_reflexion_speculaire = pos
  1114. Reflexion_speculaire = pos
  1115.  
  1116. Les deux  premiers paramètres  spécifient  la  résolution  de  l'image
  1117. rendue.
  1118. Le Facteur_proportionnel se calcule de la façon suivante :
  1119.     (Xrés/Xdim) / (Yrés/Ydim)
  1120.     Xrés = Résolution maximale en X du moniteur
  1121.     Yrés = Résolution maximale en Y du moniteur
  1122.     Xdim = Largeur de l'écran du moniteur en unité arbitraire
  1123.     Ydim = Hauteur de l'écran du moniteur en unité arbitraire.
  1124.  
  1125. Ceci donne  un facteur  proportionnel de  0.66 à 0.76 pour un écran de
  1126. 14" avec une résolution maximale de 1024x768.
  1127. Si le  paramètre sans_ombre est spécifié, DIRECTOR-3D ne calculera pas
  1128. la projection  des ombres dans la scène, ce qui diminuera les temps de
  1129. calcul, mais  donnera une  image assez  peu réaliste  compte tenu  des
  1130. sources lumineuses.  L'option sans_source_lumineuse  «éteindra» toutes
  1131. les lumières  et ne  fera apparaître  les objets  que par leur lumière
  1132. ambiante.
  1133. Le paramètre  optionnel Seuil_de_tolerance  ordonne au programme de ne
  1134. pas suivre  les rayons en réflexion ou en émission de lumière qui sont
  1135. au-delà du pourcentage indiqué de leur intensité originale.
  1136.  
  1137.  
  1138. 5.1.16) Les commentaires
  1139. °°°°°°°°°°°°°°°°°°°°°°°°
  1140.  
  1141. Ils peuvent être placés n'importe où dans le fichier script à condition
  1142. d'être entre crochets [....]
  1143. Exemple :
  1144.  
  1145. [ Déclaration de la configuration de base ]
  1146.  
  1147. Configuration ( Resolution_en_X = 1024,        [ Largeur de l'image ]
  1148.                 Resolution_en_Y = 768,         [ Hauteur de l'image ]
  1149.                 Facteur_Proportionnel = 0.66   [ Ecran de 14" ]
  1150.               )
  1151.  
  1152.  
  1153.  
  1154. 6) LES MESSAGES D'ERREUR
  1155. ========================
  1156.  
  1157. Voici la  liste des  messages d'erreur qui peuvent apparaître avant le
  1158. calcul d'une image, lors de la phase de lecture du fichier d'entrée :
  1159.  
  1160. - Paramètre  illégal : le paramètre spécifié de convient pas à ce type
  1161.   de commande.
  1162.  
  1163. - Manque  de paramètres  : tous  les paramètres  nécessaires  à  cette
  1164.   commande ne sont pas spécifiés.
  1165.  
  1166. - Type  d'objet illégal  : le  programme ne  comprend pas  le type  de
  1167.   primitive indiqué.
  1168.  
  1169. - Mémoire  insuffisante pour  la reproduction  de  cette  scène  :  la
  1170.   mémoire  disponible  pour le  traitement  du  fichier  d'entrée  est
  1171.   insuffisante. Cela  est dû à un  nombre de programmes résidents trop
  1172.   élevé ou à un nombre d'objets, de boîtes, ou de blocs trop important
  1173.   à calculer par rapport à la mémoire restante.
  1174.  
  1175. - Erreur  de syntaxe  : l'utilisateur  n'a pas  respecté la syntaxe du
  1176.   langage de description.
  1177.  
  1178. - Confusion  dans la  description de  la scène  : erreur  interne très
  1179.   rare. Nécessite  une relecture  du fichier de description  car  trop
  1180.   "hétéroclite".
  1181.  
  1182. - Erreur  système DIRECTOR-3D : le programme n'est pas arrivé à ouvrir
  1183.   ou fermer le fichier de sortie. Vérifier la longueur du nom qui  lui
  1184.   a été attribué.
  1185.  
  1186. - Motif  non défini  : le  nom de  motif indiqué n'appartient pas à un
  1187.   motif déjà défini.
  1188.  
  1189. - Motif déjà défini : le nom de motif spécifié existe déjà.
  1190.  
  1191. - Caméra  non définie  : la commande obligatoire CAMERA n'est pas dans
  1192.   le fichier de description.
  1193.  
  1194. - Paramètre inconnu : ce paramètre n'est pas légal.
  1195.  
  1196. - Un  indice de  réfraction est  égal à  0 : un objet transparent a un
  1197.   indice de réfraction égal à 0.
  1198.  
  1199. - Une  caractéristique de  surface n'a  pas été correctement définie :
  1200.   les valeurs correctes sont entre 0.0 et 1.0 compris.
  1201.  
  1202. - Paramètre doit être supérieur ou égal à zéro.
  1203.  
  1204. - Un  multiplicateur de  taille de  motif est  égal à 0 : ce paramètre
  1205.   doit toujours être supérieur à 0.
  1206.  
  1207. - Nom  inconnu : la commande GROUPE_DE_BLOC en question utilise un nom
  1208.   de groupe qui n'a pas été déclaré dans un bloc.
  1209.  
  1210. - Parenthèse  ouvrante égarée  : la  parenthèse doit  être ouverte sur
  1211.   cette ligne.
  1212.  
  1213. - Parenthèse  fermante égarée  : la  parenthèse doit  être fermée  sur
  1214.   cette ligne.
  1215.  
  1216. - Vecteur  mal spécifié : la structure (x, y, z) de ce vecteur n'a pas
  1217.   été respectée.
  1218.  
  1219. - Triplet  de couleur  incorrect : une des trois valeurs de définition
  1220.   de couleur est invalide.
  1221.  
  1222. - Option  incorrecte :  une des  options de  la ligne  de commande est
  1223.   invalide.
  1224.  
  1225. - Erreur  dans la  description de la scène : une erreur inconnue autre
  1226.   que celles qui ont été explicitées est détectée.
  1227.  
  1228. - L'extension  du nom de fichier de l'option +s doit être .RAW ou .TGA :
  1229.   signale une mauvaise extension du nom de fichier de sortie mentionné
  1230.   par l'option +s qui  remplace  celui spécifié  dans  le  fichier  de
  1231.   description.
  1232.  
  1233. - Impossible de  continuer un fichier  inexistant :  l'option +c a été
  1234.   demandée alors qu'il n'y a aucun fichier de sortie de même nom que le
  1235.   fichier script présent sur le disque.
  1236.  
  1237.  
  1238. 7) UTILITAIRES
  1239. ==============
  1240.  
  1241. RAW2GIF.EXE
  1242. °°°°°°°°°°°
  1243. Convertit une image RAW au format GIF. Le fichier GIF créé porte le même nom
  1244. que le fichier RAW spécifié. Pendant la conversion, une série de messages
  1245. s'affichent à l'écran.
  1246.  
  1247. Syntaxe : RAW2GIF nom_de_fichier_RAW (sans extension).
  1248. Exemple : RAW2GIF immeuble
  1249.  
  1250.  
  1251. GIFPEG v2.1
  1252. °°°°°°°°°°°
  1253. Programme de visualisation avancée de fichiers .GIF et .JPG.
  1254. Voir la documentation dans le fichier GIFPEG.DOC
  1255.