3DControls - Interface utilisateur 3D
Debug / 3D Controls (v0.4)
voir aussi: 3D Controls
:: But ::

Interface intermédiaire à ce qui deviendra un véritable éditeur, elle permet de vérifier en temps réel le resultat de toutes configuration possibles du moteur de rendu 3d, ainsi que chacune des faces.

L'éditeur consistera à une plus jolie interface (sans doute en 3d elle même), avec possibilité d'ajout de primitive.

   
:: Interface ::

Vue générale

En haut à gauche la fenêtre de rendu (obtenue en appuyant sur 't' puis 'f')

A droite l'interface de debugage (obtenu en appuyant sur 'd')

En bas à gauche, une fenêtre qui disparaîtra dans les versions suivantes, elle indique le calcul du FPS, les faces de picking en cours de sélection.

En bas à droite 2 fenêtres devenues indépendantes (par le bouton "move") , elles permettent de faire varier 2 élements.

   
:: Principe ::

L'interface est un bon moyen de montrer les concepts de ce projet

La brique de base est la face. Elle peut elle-même contenir d'autres faces, et elle a énormement de propriétés:

  • nom utilisant la syntaxe suivant "nom_de_ma_fenetre" si elle fait partie d'une primitive plus complexe, le nom est suivi de "[specification]". Ex.: "windows [back]"
  • angle x et z par rapport a son conteneur.
  • modes:
    • visible, la face s'affiche ou pas
    • anti-ecretage, netteté du tracé
    • brouillard, la face doit-elle utiliser le brouillard courant ?
    • transparence, la face est-elle transparente (uilise alors les paramètres alpha du matériel) ?
    • détourage, affiche une ligne de contour de la face dont on peut regler l'épaisseur
  • incurvation: une surface est decoupée en sous-surfaces, très utiles pour montrer l'influence de la lumière spéculaire.
    • position du centre de l'incurvation en x,y et z
    • nb de découpages dans les x et y
  • position par rapport au conteneur
    • xDeb, yDeb, xFin, yFin exprimés avec 2 paramètres:
      • pourcentage
      • constante

      normée:

      • de droite à gauche
      • de haut vers le bas.

      Par exemple

      • xDeb = 0%+0: à gauche
      • xDeb = 100%+0 à droite
      • xDeb = 100%-2 à droite, puis 2 unités à gauche
      • xDeb = 50%+1 centré, puis 1 unité à droite
  • dimension de la face est une valeur ou une liaison avec un autre élement de dimension du père
    • deltaX_logic, deltaY_logic, deltaZ_logic
      • deltaX est obtenu grace deltaX_logic
      • deltaYest obtenu grace deltaY_logic
      • deltaZ est obtenu grace deltaZ_logic
      Les delta_logic peuvent avoir soit une valeur, soit un réferant parmi:
      • deltaXparent
      • deltaXparent/2
      • deltaYparent
      • deltaYparent/2

      rapport entre angles, deltaZrayon et deltaZcenter

    • deltaZcenter est la dimension z avant le z du rayon (elle ne respecte donc par les rotations)
  • materiaux, utilisation des crominances rouge,verte,bleu et alpha (profondeur de la transparence)
   
:: Notion ::

Tous les élémets décrits ci-dessous sont triviaux pour des personnes connaissant la 3d et plus particulièrement OpenGL

bouillard (fog)

  • start, distance z du début de brouillard
  • stop, distance z de fin de bouillard
  • mode
    • Linéaire
    • Exp
    • Exp2
  • densité, paramètres de Exp ou Exp2

transparance (blending)

Utlise les paramètres alpha des matériaux pour rendre plus ou moins opaque une surface. L'ordre des faces joue énormément sur le rendu, il faut savoir que l'on ne peut réellement respecter la transparence qu'avec les faces deja dessinées.

anti-écrêtage (antialiasing)

Consiste à enrichir un tracé par des couleurs intermédiaire pour éviter l'effet d'escalier propre a la pixelisation.

Utilisable uniquement sur carte graphique GForce3Ti ou supérieure (encore jamais testé)

Pour information, on utilise pour celà l'extension d'openGL "ARB_MULTISAMPLE"

materiaux

  • composé par les couleurs:
    • ambiante: C'est la lumière qui a tellement été dispersée et renvoyée par l'environnement qu'il est impossible de déterminer la direction d'où elle émane. Elle semble venir de toutes les directions. Quand une lumière ambiante rencontre une surface, elle est renvoyée dans toutes les directions.
    • diffuse: C'est la lumière qui vient d'une direction particulière, et qui ne va être plus brillante si elle arrive perpendiculairement à la surface que si elle est rasante. Par contre, après avoir rencontré la surface, elle est renvoyée uniformément dans toutes les directions.
    • spéculaire: La lumière spéculaire vient d'une direction particulière et est renvoyée par la surface dans une direction particulière. Par exemple un rayon laser réfléchi par un miroir.
    • émission: émission d' une lumière propre, qui augmentera son intensité, mais n'affectera pas les autres objets de la scène.
  • brillance (shiness)

textures application d'une image sur une face, dans ce moteur on peut utiliser des textures dont les dimensions ne sont pas forcément des exposant de 2 (imposé par openGL), des paramètres comme xScale et yScale sont alors utilisés.

brouillard

transparence


Acceuil | Haut de page | Rapporter une erreur