texture


texture mapping


texture
directory
brush
fac
generate
image        interpol
name
NP
transparence
validate
vol
utilisation
Voir aussi

texture

texture("pname param")

       Appelle la fonction glTexParamater d´OpenGLles avec les paramètres pname et param:
GL_TEXTURE_MIN_FILTER
       GL_NEAREST
       GL_LINEAR
       GL_NEAREST_MIPMAP_NEAREST
       GL_LINEAR_MIPMAP_NEAREST
       GL_NEAREST_MIPMAP_LINEAR
       GL_LINEAR_MIPMAP_LINEAR

GL_TEXTURE_MAG_FILTER
       GL_LINEAR
       GL_NEAREST

GL_TEXTURE_WRAP_S
       GL_CLAMP
       GL_REPEAT

GL_TEXTURE_WRAP_T

GL_TEXTURE_BORDER_COLOR

GL_TEXTURE_PRIORITY


Par défaut les mappes sont initialisées à ("GL_TEXTURE_MIN_FILTER GL_NEAREST").

texture brush

texture brush(id1)

       Returns the identifier of the image associated with the brush id1 of type texture.

texture brush(id1)=id2

       Changes this identifier.
Note:
When displayed at the point (x,y) the brush id1 will be filled with the window (x,y,x+nx-1,y+ny-1) of image id2 (with (nx,ny = radius brush(id1).

texture directory

texture directory("dir")

Construit texture name=dir/*.ima et retourne le nombre de ces fichiers.
Remarque:
si dir contient des directorys dir1, dir2, .. contenant des fichiers *.ima les noms de ces fichiers sont arrangés dans des objets texture directories name diri, voir edit texture
Options:
Options:
dim(nx,ny): modifie la taille des fichiers *.ima.
memory: les fichiers sont chargés en mémoire.
NP(nd): seulement nd dossiers sont chargés, la valeur par défaut est le nombre de dossiers en mode memory et 3 en mode no memory (les autres sont dynamiquement lus).
read(num): charge les fichiers dans les images [num,num+1,...] (obligatoire).

texture directory NP

Retourne le nombre des directorys chargés de texture directory
Options:
disk: retourne le nombre de tous les dossiers de texture directory

texture fac

texture fac(f) vol(id)

       Retourne le numéro de la texture associée à la facette f du volume id.

texture fac(f) vol(id)=num

       Modifie ce numéro.
Remarque: texture vol et texture fac vol sont incompatibles, l'une détruisant l´autre.

texture generate

texture generate vol(id)

Retourne la propriété texture generate property of vol id automatiquement générée par la commande image dim texture

texture image

texture image(id)

       Retourne le numéro de la texture associée à l´image id.

texture image(id)=num

       Modifie ce numéro.

texture image NP

Retourne le nombre de fichiers *.ima lus par texture directory.

texture interpol

texture interpol obj(id)=ni

Construit la propriété texture interpol de l´objet obj id (obj peut être vol ou image):
       cpt
       ni: nombre d´ images interpolées
       debug
       bit1, inc_bit1, number1, nz1
       bit2, inc_bit2, number2, nz2
       law
       fbit1, fbit2
       speed
       type1, type2
       numéro du directory
       nb_limit, limit
Si obj=vol permet d´animer des textures sur des grilles à partir d´mages 3D.
Voir un exemple simple dans basic1_texture._interpolfunc
Si obj=image permet d´animer des images.

bitmap
debug
directory
law
limit
name
number
secz
speed
type
var

texeture interpol bitmap obj(id)

Retourne (bit1,bit2)

texture interpol debug(d)obj(id)

fait texture interpol debug obj(id)=d.
si(d==1): mode debug, imprime des informations.

texture interpol directory obj(id)

Retourne directory
texture interpol directory(d)obj(id): modifie directory in [1,texture NP[
Permet de limiter les images à celles de ce directory.

texture interpol law obj(id)

Retourne law

texture interpol law(x1,y1,0, x2,y2,0, ...)obj(id)

Modifie law.

texture interpol limit obj(id)

Retourne limit.

texture interpol limit obj(id)=d1,d2,...,dn

Restreint les directoriys à di. type obj(id)=0 || 1: directorys périodiques ou aléatoires.

texture interpol name obj(id)

Retourne le nom du cirectorry courant du volume id.
Options:
image(num): retourne le nom de l´image num du cirectorry courant du volume id.

texture interpol number obj(id)

Retourne number1,number2.

texture interpol number(number1,number2)obj(id)

texture obj(id) est number1,number2 en boucle.

texture interpol number(number2)obj(id)

Modifie seulement number2 en préservant number1 permet de dé:marrer une seconde couche de texture. (continuement avec l´option law).

texture interpol secz obj(id)

Retourne (nz1,nz2)

texture interpol speed obj(id)

Retourne speed de bitmaps.

interpol texture speed vol(id)=s

Modifie cette vitesse.

texture interpol type obj(id)

Retourne type
texture interpol type(s)obj(t) ou
type texture interpol type obj(t) : modifie type
       type(-2): inchangé, changé par: texture interpol number(num)obj(id)
       type(-1): periode
       type(0): random
Options:
directory(d): relative to the layer d of directories dans [1,texture directory NP].

texture interpol var obj(id)

Retourne 1 (directory constant), 0 (directory variable)

texture interpol var obj(id)=v

Modifie var.
edit texture interpol vol(id)
       imprime ces paramètres.

texture brush

texture brush(id1)

       Retourne l´ identificateur de l´image associée avec le pinceau id1 de type texture.

texture brush(id1)=id2

       Change cet identificateur.
Remarque:
Lorsque le pinceau id1 est affiché au point (x,y) il sera rempli avec la fenêtre (x,y,x+nx-1,y+ny-1) de l´image id2 (avec (n,ny = radiusr brush(id1).

texture validate vol

Animation de texture. Animation de textures.

Principe
directory
exec
image
interpol
law
name
period
speed
type
validate
Voir aussi
exemple

Principe

Des multi niveaux de textures sont définies sure une grille id par:
texture vol(id)=n1,n2,... et transp texture vol(id)=t1,t2,....
Une variation automatique des transparences et des validations des volumes permet d´animer ces textures.
Propriété par défaut texture validate du volume vol(id):
       flag 0
       number > 0
       image = 0
       period = 0
       interpol = 0
       val = image 3D associé à la texture
       bit = 0, inc_bit = 1 (float) bit = 0.0
       speed = 1
       nz = nombre de bitmaps
       inc = incrément d´image
       loi de transparence
       type = "period puls rand"

Principle

Multi layers texture are defining on a grid by:
texture vol(id)=n1,n2,... and transp texture vol(id)=t1,t2,....
An automatic variation of transparencies and validations of volumes allow animate those textures.

texture(num)directory("dir")vol(id)

Les images sont dnas le directory dir
Options:
read(num): charge les fichiers dans les images (num,num+1,...).

texture(num)validate exec(e)vol(id)

exec(0): inhibe texture num. exec(1): active texture num.

texture(num)validate image(ima)vol(id)

Fait de l´image associée au niveau num d´être:
       validate(ind): l´image d´index ind dans la liste validate name.
       validate("nnn.ima"): toute image de nom nnn.ima.

texture(num)validate image(ima)vol(id)

ima est l´image associée àla texture de niveau num.

texture validate interpol(ni)

ni = nombre d´images interpolant deux niveaux de textures.

texture(num)validate law(w)vol(id)

Modifie le paramètre law de la propriété num.

texture(num)name("n1.ima n2.ima ...")vol(id)

Les images are n1.ima n2.ima ...
Options:
read(num): load files in images (num,num+1,...).
read(num): charge les fichiers dans les images (num,num+1,...).

texture validate period(p)vol(id)

       period(0): stop animation (default).
       period(1): im,im+1,...,im+nb-1,im,im+1,...
       period(-1): im,im+1,...,im+nb-1,im,im+nb-2,...,im,im+1,....

texture(num)validate speed(s)vol(id)

Modifie le paramètre speed de la propriété num.

texture(num)validate type("t")vol(id)

avec l´option interpol: type("period"): numéros des images = (0,1,...,nb-1,0,1,...) type("rand"): numéros des images = rand(nb)

texture(num)validate(v)vol(id)

Fait de l´image associée au niveau num:
       validate(ind): l´image d´index ind dans la liste validate name.
       validate("nnn.ima"): toute image de nom nnn.ima.

Voir aussi

edit texture validate vol(id)
exec texture(num)validate vol(id)
period texture(num)validate vol(id)
rem texture(num)validate vol(id)
speed texture(num)validate vol(id)
type texture(num)validate vol(id)

example

Example

Construire une grille:
       grid(1)dim(800,600);
Construire une base de données d´images (101,102,...) (*.ima in directory dir):
       texture directory("dir")read(101);
Rendre les textures 1 et 2 animables:
       texture(0)validate(0)image(-1)period(-1)vol(1);
       texture(0)validate(1)image(-2)period(-1)speed(.5)vol(1); Construire une loi de variation:
       texture(2)validate law(0,1,0, .5,0,0, 1,1,0)vol(1);
ACtiver l´illumination et les textures:
       yes illum texture;
Mode interaction: interaction;

texture vol

texture vol(id)

       Retourne le numéro de la texture associée au volume id.
Remarques:
1) une texture ne peut être définie que sur un volume ayant des secx et des secy (ball, geod, grid, prism, pipe, rev).
Pour tout autre volume utiliser texture fac.
2) texture vol et texture fac vol sont incompatibles, l'une détruisant l´autre.

texture vol(id)=t

       Modifie ce numéro.

Transparence

Pour plusieurs textures texture vol(id)=t1,t2,..., il faut définir des transparences par: transp texture vol(id)=tt1,tt2,...
Pour des images 3D, bitmap vol(id) est construite automatiquement.

Utilisation:

1) Construire une image id

Soit par:
       read image(id)name("nn.ext")dim(nx,ny)
ou par:
       generate(2)image(id)poi(x,y)dim(nx,ny). nx et ny doivent être des puissances de 2 (2, 4, 8, 16, 32, ...).

2) Construire des volumes affectés de texture

texture vol(id)=num.

3) Afficher

Activer yes illum et yes texture.
Afficher: displ vol.

Remarques

1) Les mappes ne sont implémentées que sur des surfaces isomorphes à des grilles (ouvertes ou fermées):
ball
geod
grid
rev
pipe
2) Les mappes sur des facettes ne sont implémentérs que pour des facettes quadrilatères.

texture name

Retourne la liste des frichiers construite par texture directory("dir") opu par:

texture name("n1.ima n2.ima ...")

Construit la liste ("n1.ima n2.ima ...")
Options:
read(num): charge ces fichiers dans les images number num,num+1,... (num = 1 par défaut).

texture NP

Retourne nombre des fichiers chargés de texture directory read NP.
Options:
disk: retourne nombre de tous les fichiers de texture name.

texture

















































texture      rota      vol      Voir_aussi

texture rota

texture(x,y,z,v) rota
        Retourne une turbulence de paramètres: (x,y,z) = point de l´espace et v contrôle la turbulence

texture vol

vol      poles      turbulance      interpol      bump      procédurale      programmée

texture vol

texture vol num
        Retourne les paramètres de texture 3D du volume num
texture vol num=code,datas
        Le type de la texture dépend de la valeur de code

Poles de couleurs

code = 1:
        datas = D1,D2,...
        Di = (r1,r2,r3,r4,r5,v1,v2,v3,v4,v5,b1,b2,b3,b4,b5)
        r1,v1,b1 = amplitudes
        r2,v2,b2 = fréquences
        (r3,r4,r5), (v3,v4,v5) et (b3,b4,b5) = centres
        La couleur au point (x,y,z) est calculée par:
        r = SIGMA(de 1 à np) (r1 * sin(2*PI*r2*distance((x,y,z),(r3,r4,r5))))
        v = SIGMA(de 1 à np) (v1 * sin(2*PI*r2*distance((x,y,z),(v3,v4,v5))))
        b = SIGMA(de 1 à np) (b1 * sin(2*PI*r2*distance((x,y,z),(b3,b4,b5))))

Turbulance

code = 2:
        Turbulence
        datas=r,v,b: entre .000001 et 1 code = 3:
        Interpolation de textures
        datas = n1,z1,n2,z2
        ni = numéro d´une image
        zi = profondeur (par rapport à l´eye) de l´image ni
        La couleur au point (x,y,z) est calculée par interpolation, sur les z, des couleurs en (x,y) des images n1 et n2

Bump mapping

code = 4
        datas=dx,dy,dz
        La normal est bruitée de (dx,dy,dz)
Bump mapping aléatoire
code = 5
        datas = dx,dy,dz
        La normal est bruitée d´une quantité aléatoire d´amplitude (dx,dy,dz)

Procédurale

En langage anyflo)
texture vol num="name"
        Affecte la fonction de texture "name" au volume num. Lors d´un affichage (si yes texture est actif) la fonction "name" sera exécutée à chaque affichage de pixel dont la couleur sera prise égale à la valeur retournée par la fonction col.

Remarque:

Une telle fonction peut utiliser les fonctions suivantes:
        poi: Qui retourne les coordonnées du point 3D actuellement affiché
        col: Qui retourne la couleur de ce point
        normal: Qui retourne la normal em ce point
        col(r,v,b): Qui affecte une nouvelle couleur en ce point (définit une TEXTURE3D)
        normal(nx,ny,nz): Qui affecte une nouvelle normal en ce point (définit un BUMP-MAPPING)
Exemple:
name()
{
w=poi;x=w[0];y=w[1];z=w[2]:
r=cos(x/10):v=sin(y/10):b=cos(z/10):
col r,v,b: }

Programmée

En langage C)
code < 0:
        datas = ...
        La couleur au point (x,y,z) est calculée par la fonction texture3d_utilisateur(code, pd, cont, p_col) du fichier utilb.c
code = 20: Texture 3D (animée sur le disque)
        datas = x1,y1,z1,x2,y2,z2,i1,i2
        La texture suivante doit être un name de fichier image .raw
Exemple:
texture(0)vol(1)=20,-200,-200,-500,200,200,1000,1,1000;
texture(0)vol(1)="A"; Chaque point(xa,ya,za) du volume(1) prend la couleur du pixel(x,y) de l´image Azzz.raw de dimensions (dimx,dimy).
x varie entre 0 et dimx quand xa varie entre x1 et x2.
y varie entre 0 et dimxy quand ya varie entre y1 et y2.
z varie entre i1 et i2 quand za varie entre z1 et z2.

Remarques:

1) code < 0: Permet de définir plusieurs types de textures
        pd est un pointeur vers les datas
        cont est un pointeur de type struct Contour vers le point
        cont->xa, cont->ya, cont->za sont les coordonnées absolues
        cont->nx, cont->ny et cont->nz est la normal
        cont->r, cont->v et cont->b est la couleur
2) Il est nécessaire, pour utiliser cette variante, de modifier le fichier utilb.c et de relinker anyflo (les fichiers utilb.c, les objets et makefile se trouvent dans le directory de l´environnement)

Voir aussi:

generate texture vol
no texture
yes texture















































Voir aussi:

coe transp texture
coord vertex vol
edit texture
edit texture interpol
generate texture
generate coord vertex vol
interpol texture
no texture
NP texture
period validate texture
transp texture
yes texture