global-state

Description

L'état global est tout ce qui contrôle l'afficheur vraiment globalement, ceci affecte donc toutes les primitives ou contrôle les afficheurs directement. Par exemple le control des caméras ou les effets plein-écran comme le flou (blur).

(clear-engine)

Returns void

Efface l'afficheur et le systême physique. Cette commande ne devrait pas être appellée directement, utiliser plutôt clear qui efface plusieurs autres choses, et appelle clear-engine elle-même.

Example

 (clear-engine) ; woo hoo!

(blur quantité-nombre)

Returns void

Fixe la valeur de l'effet de flou plein-écran. Moins la valeur est grande, plus l'effet est important, mais s'il est trop bas, celà rend la lecture à l'écran impossible. Donc, penser à sauvegarder le script avant.

Example

 (blur 0.1) ; pour de jolies trainées

(fog couleur-brouillard-vector quantité-nombre début-nombre fin-nombre)

Returns void

Fixe les paramètres de brouillard pour donner une profondeur optique (profondeur de champs en jargon de peintre) Ceci peut obsurcir l'édition à l'écran, donc garder la quantité faible.

Example

 (clear-colour (vector 0 0 1))   ; rends bien si le fond correspond
 (fog (vector 0 0 1) 0.01 1 100) ; brouillard bleu

(show-axis montrer-nombre)

Returns void

Montre les axes d'origine de l'espace.

Example

 (show-axis 1)

(show-fps montrer-nombre)

Returns void

Montre le compte fps dans le coin gauche de l'écran.

Example

 (show-fps 1)

(lock-camera primitiveid-nombre)

Returns void

Bloque la transformation caméra sur les transformation d'une primitive spécifiée. Celà s'apparente a parenter la caméra à un objet. C'est la manière la plus simple de commander la caméra en procédural. Utiliser le nombre identifiant 0 pour débloquer la caméra.

Example

 (clear)
 (define obj (build-cube)) ; make a cube for the camera to lock to

 (with-state ; make a background cube so we can tell what's happening
     (hint-wire)
     (hint-unlit)
     (texture (load-texture "test.png"))
     (colour (vector 0.5 0.5 0.5))
     (scale (vector -20 -10 -10))
     (build-cube))

 (lock-camera obj) ; lock the camera to our first cube
 (camera-lag 0.1)  ; set the lag amount, this will smooth out the cube jittery movement

 (define (animate)
     (with-primitive obj
         (identity)
         (translate (vector (fmod (time) 5) 0 0)))) ; make a jittery movement

 (every-frame (animate))

(camera-lag quantité-nombre)

Returns void

Le verrou de caméra possède un lag intégré, ce qui signifie qu'il va doucement s'adapter au mouvemement de la primitive à laquelle il est rattaché.

Example

 (clear)
 (define obj (build-cube)) ; make a cube for the camera to lock to

 (with-state ; make a background cube so we can tell what's happening
     (hint-wire)
     (hint-unlit)
     (texture (load-texture "test.png"))
     (colour (vector 0.5 0.5 0.5))
     (scale (vector -20 -10 -10))
     (build-cube))

 (lock-camera obj) ; lock the camera to our first cube
 (camera-lag 0.1)  ; set the lag amount, this will smooth out the cube jittery movement

 (define (animate)
     (with-primitive obj
         (identity)
         (translate (vector (fmod (time) 5) 0 0)))) ; make a jittery movement

 (every-frame (animate))

(load-texture png-nom-de-fichier-string optionel-paramètres-de-création-list)

Returns textureid-nombre

Charge une image à partir du disque, la convertis en texture, et retourne le numéro identifiant. Le chargement de texture est enregistré en mémoire, donc les chargements répétitifs ne ferons pas charger de nouveau. Le cache peut être éffacé avec clear-texture-cache. Le png peut être RGB ou RGBA pour utiliser la transparence. Pour mieux controler comment la texture est crée, la liste de paramètres peut-être utlisée. Voir l'exemple pour plus d'explications. Utiliser l'identifiant pour ajouter plus de données de textures à des textures existantes, comme les niveau mipmap, ou le texturage des faces d'un cube. Note: Si le mipmapping est tourné sur off, et qu'une selue texture est spécifiée, elle devrait être attribuée au nivau mip 0, et les réglages es filtres min et mag devront petre mis à linear ou nearest (voir texture-params).

Example

 ; simple usage:
 (texture (load-texture "mytexture.png"))
 (build-cube) ; the cube will be texture mapped with the image

 ; complex usages:

 ; the options list can contain the following keys and values:
 ; id: texture-id-number (for adding images to existing textures - for mipmapping and cubemapping)
 ; type: [texture-2d cube-map-positive-x cube-map-negative-x cube-map-positive-y
 ;         cube-map-negative-y cube-map-positive-z cube-map-negative-z]
 ; generate-mipmaps : exact integer, 0 or 1
 ; mip-level : exact integer
 ; border : exact integer

 ; setup an environment cube map
 (define t (load-texture "cube-left.png" (list 'type 'cube-map-positive-x)))
 (load-texture "cube-right.png" (list 'id t 'type 'cube-map-negative-x))
 (load-texture "cube-top.png" (list 'id t 'type 'cube-map-positive-y))
 (load-texture "cube-bottom.png" (list 'id t 'type 'cube-map-negative-y))
 (load-texture "cube-front.png" (list 'id t 'type 'cube-map-positive-z))
 (load-texture "cube-back.png" (list 'id t 'type 'cube-map-negative-z))
 (texture t)

 ; setup a mipmapped texture with our own images
 ; you need as many levels as it takes you to get to 1X1 pixels from your
 ; level 0 texture size
 (define t2 (load-texture "m0.png" (list 'generate-mipmaps 0 'mip-level 0)))
 (load-texture "m1.png" (list 'id t2 'generate-mipmaps 0 'mip-level 1))
 (load-texture "m2.png" (list 'id t2 'generate-mipmaps 0 'mip-level 2))
 (load-texture "m3.png" (list 'id t2 'generate-mipmaps 0 'mip-level 3))
 (texture (load-texture "mytexture.png"
        (list
          'generate-mipmaps 0  ; turn mipmapping off
              'border 2)))          ; add a border to the texture

 (build-cube) ; the cube will be texture mapped with the image

(clear-texture-cache)

Returns void

Vide le cache de textures, signifie que les textures modifiées sur le disque sont rechargées.

Example

 (clear-texture-cache)

(frustum gauche-nombre droite-nombre bas-nombre haut-nombre)

Returns void

Fixe le frustrum caméra, et par conséquent les proportions de la frame.

Example

 (frustum -1 1 -0.75 0.75) ; valeurs par défaut

(clip devant-nombre arrière-nombre)

Returns void

Fixe le devant et l'arrière du découpage des faces pour le frustrum caméra, et donc les angles de vue. Changer la distance du découpage de devant modifie la perspective de téléobjectif à à oeil de poisson (fisheye).

Example

 (clip 1 10000) ; valeurs par défaut

(ortho)

Returns void

Passe en projection orthographique - sans perspective

Example

 (ortho)

(persp)

Returns void

Passe en projection perspective (par defaut) après qu'une orthographique ait été activée.

Example

 (persp)

(set-ortho-zoom quantitié-nombre)

Returns void

Fixe le niveau de zoom de la projection orthographique.

Example

 (set-ortho-zoom 2)

(clear-colour couleur-vecteur)

Returns void

Attribue la couleur avec laquelle l'afficheur est effacé, ceci forme la couleur de fond de la scène.

Example

 (clear-colour (vector 1 0 0)) ; ROUGE!!!

(clear-frame valeur-nombre)

Returns void

Fixe l'effacement de frame sur on ou off.

Example

 (clear-frame 0)
 (clear-frame 1)

(clear-zbuffer valeur-nombre)

Returns void

Fixe l'effacement du zbuffer sur on ou off.

Example

 (clear-zbuffer 0)
 (clear-zbuffer 1)

(clear-accum valeur-nombre)

Returns void

Fixe l'effacement du buffer d'accumulation sur on ou off.

Example

 (clear-accum 1)

(build-camera)

Returns cameraid-nombre

Ajoute une nouvelle caméra et retourne son identifiant.

Example

 (clear)
 (viewport 0 0.5 0.5 0.5)

 (define cam2 (build-camera))
 (current-camera cam2)
 (viewport 0.5 0 0.5 1)

 (define cam3 (build-camera))
 (current-camera cam3)
 (set-camera (mmul (mtranslate (vector 0 0 -5))
         (mrotate (vector 0 45 0))))
 (viewport 0 0 0.5 0.5)

 ; render a primitive in one view only
 (define t (with-state
     (translate (vector 3 0 0))
     (scale 0.3)
     (colour (vector 1 0 0))
     (build-torus 1 2 10 10)))

 (with-primitive t
     (hide 1) ; hide in all
     (camera-hide 0)) ; unhide in current camera


 (current-camera 0)

 (define c (with-state
         (hint-cull-ccw)
         (hint-unlit)
         (hint-wire)
         (line-width 2)
         (colour (vector 0.4 0.3 0.2))
         (wire-colour (vector 0 0 0))
         (scale 10)
         (build-cube)))

 (define p (with-state
         (scale 3)
         (load-primitive "widget.obj")))

 (every-frame
     (with-primitive p
         (rotate (vector 0 1 0))))

(current-camera cameraid-nombre)

Returns void

Choisi quelle caméra utiliser.

Example

 (clear)
 (viewport 0 0.5 0.5 0.5)

 (define cam2 (build-camera))
 (current-camera cam2)
 (viewport 0.5 0 0.5 1)

 (define cam3 (build-camera))
 (current-camera cam3)
 (set-camera (mmul (mtranslate (vector 0 0 -5))
         (mrotate (vector 0 45 0))))
 (viewport 0 0 0.5 0.5)

 ; render a primitive in one view only
 (define t (with-state
     (translate (vector 3 0 0))
     (scale 0.3)
     (colour (vector 1 0 0))
     (build-torus 1 2 10 10)))

 (with-primitive t
     (hide 1) ; hide in all
     (camera-hide 0)) ; unhide in current camera


 (current-camera 0)

 (define c (with-state
         (hint-cull-ccw)
         (hint-unlit)
         (hint-wire)
         (line-width 2)
         (colour (vector 0.4 0.3 0.2))
         (wire-colour (vector 0 0 0))
         (scale 10)
         (build-cube)))

 (define p (with-state
         (scale 3)
         (load-primitive "widget.obj")))

 (every-frame
     (with-primitive p
         (rotate (vector 0 1 0))))

(viewport x-nombre y-nombre largeur-nombre hauteur-nombre)

Returns void

Fixe la taille d'affichage de la caméra courante. Ceci est l'aire de la fenêtre que la caméra va occuper. 0,0 est le coin bas gauche et 1,1 est le coin haut droite.

Example

 (clear)
 (viewport 0 0.5 0.5 0.5)

 (define cam2 (build-camera))
 (current-camera cam2)
 (viewport 0.5 0 0.5 1)

 (define cam3 (build-camera))
 (current-camera cam3)
 (set-camera (mmul (mtranslate (vector 0 0 -5))
         (mrotate (vector 0 45 0))))
 (viewport 0 0 0.5 0.5)

 ; render a primitive in one view only
 (define t (with-state
     (translate (vector 3 0 0))
     (scale 0.3)
     (colour (vector 1 0 0))
     (build-torus 1 2 10 10)))

 (with-primitive t
     (hide 1) ; hide in all
     (camera-hide 0)) ; unhide in current camera


 (current-camera 0)

 (define c (with-state
         (hint-cull-ccw)
         (hint-unlit)
         (hint-wire)
         (line-width 2)
         (colour (vector 0.4 0.3 0.2))
         (wire-colour (vector 0 0 0))
         (scale 10)
         (build-cube)))

 (define p (with-state
         (scale 3)
         (load-primitive "widget.obj")))

 (every-frame
     (with-primitive p
         (rotate (vector 0 1 0))))

(get-camera)

Returns matrix-vector

Récupère la matrix de transformation de la caméra courante. Ceci est une fonction bas-niveau, utiliser plutôt la fonction get-camera-transform.

Example

 (get-camera)

(get-locked-matrix)

Returns matrix-vector

Récupère la matrix de transformation de la caméra courante. Prend en compte le niveau de lag.

Example

 (get-locked-matrix)

(set-camera)

Returns void

Fixe la matrix de transformation de la caméra. Ceci est l'interface bas-niveau utilisée par set-camera-transform, qui devrait être utilisée à la place.

Example

 (set-camera (mtranslate (vector 0 0 -10)))

(get-projection-transform)

Returns projection-matrice

Récupère la matrice de projection.

Example

 (get-projection-transform)

(set-projection-transform matrice-vecteur)

Returns void

Fixe directement la matrice de projection.

Example

 (set-projection-transform (vector 1 0 0 0 0 4/3 0 0 0 0 -1 -1 0 0 -2 -0))

(get-screen-size)

Returns taille-vecteur

Retourne un vecteur contenant la largeur et hauteur actuelle de la fenêtre.

Example

 (get-screen-size)

(set-screen-size taille-vecteur)

Returns void

Fixe la largeur et hauteur de la fenêtre.

Example

 (set-screen-size (vector 10 10)) ; small window time :)
 (set-screen-size (vector 720 576)) ; and back again!

(select position-écran-x-nombre position-écran-y-nombre taille-pixel-nombre)

Returns primitiveid-nombre

Observe une région spécifiée et retourne l'identifiant de la primitive la plus proche dans le rendu de la caméra, ou 0 si aucun n'est trouvé.

Example

 (display (select 10 10 2))(newline)

(select-all position-écran-x-nombre position-écran-y-nombre taille-pixel-nombre)

Returns liste de primitiveid-nombre

Observe une région spécifiée et retourne tous les identifiants affichés à l'interieur, dans une liste, ou '() si aucun n'est trouvé.

Example

 (display (select-all 10 10 2))(newline)

(desiredfps fps-nombre)

Returns void

Régule l'afficheur pour qu'il ne prenne pas 100% de cpu. Ceci donne une limit supérieur sur le taux de fps qui ne correspond pas encore aavec le nombre donné, mais le travail est en cours.

Example

 (desiredfps 100000) ; makes fluxus render as fast as it can, and take 100% cpu.

(draw-buffer buffer_nom)

Returns void

Choisi quel buffer dessiner. Pour le mode stéréo, celà devrait être 'back-right et 'back-left

Example

 (draw-buffer 'back)

(read-buffer buffer_nom)

Returns void

Choisi un buffer duquel lire.

Example

 (read-buffer 'back)

(set-stereo-mode mode)

Returns bool

Choisi quel mode séréo utiliser. Pour l'instant seul 'crystal-eyes et 'no-stereo sont supportés. Le retour indique si l'opération a réussie ou pas. 'crystal-eyes retourne false si ce n'est pas une fenêtre stéréo.

Example

 (set-stereo-mode 'crystal-eyes)

(set-colour-mask vecteur)

Returns void

Attribue un masque de couleur en passant un vecteur de 4 booléens qui correspondent respectivement aux canaux rouge, vert, bleu et alpha. Après cette opération, seules les couleurs mise à true seront visibles. Ceci est utile pour la stéréo avec les lunettes rouge et blue.

Example

 (set-colour-mask #(#t #f #f #t))

(shadow-light nombre-valeur)

Returns void

Choisi la lumière à utiliser pour générer les ombress Utiliser 0 pour désactiver le rendu des ombres.

Example

 (shadow-light 1)

(shadow-length nombre-valeur)

Returns void

Fixe la longueur du volume d'ombres.

Example

 (shadow-length 10)

(shadow-debug nombre-valeur)

Returns void

Active le débuguage du rendu de volume d'ombres.

Example

 (shadow-debug 1)

(accum mode-symbol valeur-nombre)

Returns void

Controle le buffer d'accumulation (simple appel à glAccum sous le capot). Les symboles possibles sont: accum load return add mult

Example

 (accum 'add 1)

(print-info)

Returns void

Affiche une quantité d'information sur l'afficheur

Example

 (print-info)

(set-cursor image-nom-symbol)

Returns void

Modifie le curseur de la souris. Les images de curseur sont des noms de symbol qui peuvent être: 'right-arrow, 'left-arrow, 'info, 'destroy, 'help, 'cycle, 'spray, 'wait, 'text, 'crosshair, 'up-down, 'left-right, 'top-side, 'bottom-side, 'left-side, 'right-side, 'top-left-corner, 'top-right-corner, 'bottom-right-corner, 'bottom-left-corner, 'full-crosshair, 'none, 'inherit Le curseur par défaut quand la fenêtre est créée est 'inherit.

Example

 (set-cursor 'crosshair)

(set-full-screen)

Returns void

Demande à ce que la fenêtre fluxus courante soit mise en plein écran.

Example

 (set-full-screen)