texture


texture mapping


texture
brush
fac
image
transparency
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 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 image

texture image(id)

       Retourne le numéro de la texture associée à l´image id par la fonction glGenTextures() d´OpenGL.
Ce numéro est automatiquement calculé lors de la 1ère utilisation de l´image id comme texture.
On peut le regénérer par generate texture image(id).

texture image(id)=num

       Modifie ce numéro (déconseillé).

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 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.
Pour plusieurs textures texture vol(id)=t1,t2,... il faut définir des transparences par: transp texture vol(id)=tt1,tt2,...

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

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

Interpolation

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:


coord vertex vol
generate texture
generate coord vertex vol
no texture
yes texture