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).
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!
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
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
Returns void
Montre les axes d'origine de l'espace.
Example
(show-axis 1)
Returns void
Montre le compte fps dans le coin gauche de l'écran.
Example
(show-fps 1)
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))
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))
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
Returns void
Vide le cache de textures, signifie que les textures modifiées sur le disque sont rechargées.
Example
(clear-texture-cache)
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
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
Returns void
Passe en projection orthographique - sans perspective
Example
(ortho)
Returns void
Passe en projection perspective (par defaut) après qu'une orthographique ait été activée.
Example
(persp)
Returns void
Fixe le niveau de zoom de la projection orthographique.
Example
(set-ortho-zoom 2)
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!!!
Returns void
Fixe l'effacement de frame sur on ou off.
Example
(clear-frame 0) (clear-frame 1)
Returns void
Fixe l'effacement du zbuffer sur on ou off.
Example
(clear-zbuffer 0) (clear-zbuffer 1)
Returns void
Fixe l'effacement du buffer d'accumulation sur on ou off.
Example
(clear-accum 1)
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))))
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))))
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))))
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)
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)
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)))
Returns projection-matrice
Récupère la matrice de projection.
Example
(get-projection-transform)
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))
Returns taille-vecteur
Retourne un vecteur contenant la largeur et hauteur actuelle de la fenêtre.
Example
(get-screen-size)
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!
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)
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)
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.
Returns void
Choisi quel buffer dessiner. Pour le mode stéréo, celà devrait être 'back-right et 'back-left
Example
(draw-buffer 'back)
Returns void
Choisi un buffer duquel lire.
Example
(read-buffer 'back)
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)
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))
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)
Returns void
Fixe la longueur du volume d'ombres.
Example
(shadow-length 10)
Returns void
Active le débuguage du rendu de volume d'ombres.
Example
(shadow-debug 1)
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)
Returns void
Affiche une quantité d'information sur l'afficheur
Example
(print-info)
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)
Returns void
Demande à ce que la fenêtre fluxus courante soit mise en plein écran.
Example
(set-full-screen)