» Back To Index
API Demoniak3D/LUA: fonctions de manipulation des textures
La librairie
HYP_Texture effectue des opérations générales sur les textures.
HYP_Texture.SetAddressingMode
HYP_Texture.SetFilteringAnisotropicValue
HYP_Texture.SetFilteringMode
HYP_Texture.SetFunction
HYP_Texture.Save
HYP_Texture.LoadTex2D
HYP_Texture.LoadTex2DAvi
HYP_Texture.Create
HYP_Texture.Destroy
HYP_Texture.SetName
HYP_Texture.SetValueTex1DByteRgb
HYP_Texture.SetValueTex1DFloatRgba
HYP_Texture.SetValueTex2DByteRgb
HYP_Texture.SetValueTex2DFloatRgba
HYP_Texture.GetValueTex1DByteRgb
HYP_Texture.GetValueTex1DFloatRgba
HYP_Texture.GetValueTex2DByteRgb
HYP_Texture.GetValueTex2DFloatRgba
HYP_Texture.GetDimensions
HYP_Texture.SetTransformMatrix
HYP_Texture.GetTransformMatrix
HYP_Texture.PlayStopAVI
HYP_Texture.GetAVINumFrames
HYP_Texture.GetAVIMpf
HYP_Texture.GetAVICurrentTime
HYP_Texture.SetAVICurrentFrame
HYP_Texture.GetAVICurrentFrame
HYP_Texture.GetIdFromName
GetDimensions
GetDimensions permet de récupérer les dimensions d'une texture.
Syntaxe
w, h, d = HYP_Texture.GetDimensions( texture_name | tid );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- w - [INTEGER] - largeur de la texture.
- h - [INTEGER] - hauteur de la texture.
- d - [INTEGER] - profondeur de la texture.
LoadTex2D
LoadTex2D permet de charger une texture 2D depuis le disque dur.
Syntaxe
tid = HYP_Texture.LoadTex2D( filename, pixel_format, compresss );
- filename - [STR255] - nom du fichier de texture en adressage relatif par rapport au script XML principal.
- pixel_format - [INTEGER] - format de pixel de la texture:
- RGBA_FLOAT_PIXEL_FORMAT = 1;
- RGB_BYTE_PIXEL_FORMAT = 2;
- RGBA_32F_PIXEL_FORMAT = 4;
- compress - [INTEGER] - active (1) ou désactive (0) la compression de la texture.
- tid - [INTEGER] - identifiant numérique de la texture créée.
Exemple
RGB_BYTE_PIXEL_FORMAT = 2;
tid = HYP_Texture.LoadTex2D("data/textures/wood.jpg", RGB_BYTE_PIXEL_FORMAT, 0 );
LoadTex2DAvi
LoadTex2DAvi permet de charger une texture animée de type fichier vidéo AVI.
Syntaxe
tid = HYP_Texture.LoadTex2DAvi( avi_filename );
- avi_filename - [STR255] - nom du fichier de texture en adressage relatif par rapport au script XML principal.
- tid - [INTEGER] - identifiant numérique de la texture créée.
Exemple
tid = HYP_Texture.LoadTex2DAvi("data/animated_textures/water.avi" );
Create
Create permet de charger une texture 2D depuis le disque dur.
Syntaxe
tid = HYP_Texture.Create( type, pixel_format, w, h, d );
- type - [INTEGER] - type de la texture:
- TEXTURE_1D = 1;
- TEXTURE_2D = 2;
- TEXTURE_RECTANGLE_2D = 4;
- pixel_format - [INTEGER] - format de pixel de la texture:
- RGBA_FLOAT_PIXEL_FORMAT = 1;
- RGB_BYTE_PIXEL_FORMAT = 2;
- RGBA_32F_PIXEL_FORMAT = 4;
- w - [INTEGER] - largeur de la texture (pour texture 1D / 2D et RECT_2D).
- h - [INTEGER] - hauteur de la texture (pour texture 2D et RECT_2D).
- d - [INTEGER] - profondeur de la texture (pour texture 3D - non implémenté).
- tid - [INTEGER] - identifiant numérique de la texture créée.
Exemple
TEXTURE_1D = 1;
RGBA_FLOAT_PIXEL_FORMAT = 1;
tid = HYP_Texture.Create( TEXTURE_1D, RGBA_FLOAT_PIXEL_FORMAT, 256, 0, 0 );
Destroy
Destroy permet de détruire une texture créée avec Create() ou LoadTex2D().
Destroy ne peut pas détruire une texture créée statiquement dans le script XML.
Syntaxe
HYP_Texture.Destroy( texture_name | tid );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
SetName
SetName permet de renommer une texture.
Syntaxe
HYP_Texture.SetName( old_name | tid, new_name );
- old_name - [STR127] - ancien nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- new_name - [STR127] - nouveau nom de la texture.
GetIdFromName
GetIdFromName permet de récupérer l'identifant numérique de la texture à partir de son nom.
Syntaxe
tid = HYP_Texture.GetIdFromName( texture_name );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
SetValueTex1DByteRgb
SetValueTex1DByteRgb permet de modifier les données (texels) d'une texture 1D avec un format de pixel RGB_BYTE.
Syntaxe
HYP_Texture.SetValueTex1DByteRgb( texure_name | tid, offset, r, g, b );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du texel à modifier. Valeur compise entre 0 et texture_width.
- r - [INTEGER] - valeur de la composante rouge - [0 - 255].
- g - [INTEGER] - valeur de la composante verte - [0 - 255].
- b - [INTEGER] - valeur de la composante bleue - [0 - 255].
GetValueTex1DByteRgb
GetValueTex1DByteRgb permet de récupérer les données (texels) d'une texture 1D avec un format de pixel RGB_BYTE.
Syntaxe
r, g, b = HYP_Texture.GetValueTex1DByteRgb( texure_name | tid, offset );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du texel. Valeur compise entre 0 et texture_width.
- r - [INTEGER] - valeur de la composante rouge - [0 - 255].
- g - [INTEGER] - valeur de la composante verte - [0 - 255].
- b - [INTEGER] - valeur de la composante bleue - [0 - 255].
SetValueTex1DFloatRgba
SetValueTex1DFloatRgba permet de modifier les données (texels) d'une texture 1D avec un format de pixel RGBA_FLOAT ou RGBA_32F.
Syntaxe
HYP_Texture.SetValueTex1DFloatRgba( texure_name | tid, offset, r, g, b, a );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du texel à modifier. Valeur compise entre 0 et texture_width.
- r - [REAL] - valeur de la composante rouge.
- g - [REAL] - valeur de la composante verte.
- b - [REAL] - valeur de la composante bleue.
- a - [REAL] - valeur de la composante alpha.
GetValueTex1DFloatRgba
GetValueTex1DFloatRgba permet de récupérer les données (texels) d'une texture 1D avec un format de pixel RGBA_FLOAT ou RGBA_32F.
Syntaxe
r, g, b, a = HYP_Texture.GetValueTex1DFloatRgba( texure_name | tid, offset );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du texel. Valeur compise entre 0 et texture_width.
- r - [REAL] - valeur de la composante rouge.
- g - [REAL] - valeur de la composante verte.
- b - [REAL] - valeur de la composante bleue.
- a - [REAL] - valeur de la composante alpha.
SetValueTex2DByteRgb
SetValueTex2DByteRgb permet de modifier les données (texels) d'une texture 2D avec un format de pixel RGB_BYTE.
Syntaxe
HYP_Texture.SetValueTex2DByteRgb( texure_name | tid, offset, r, g, b );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du texel à modifier. Valeur compise entre 0 et texture_width*texture_height.
- r - [INTEGER] - valeur de la composante rouge - [0 - 255].
- g - [INTEGER] - valeur de la composante verte - [0 - 255].
- b - [INTEGER] - valeur de la composante bleue - [0 - 255].
GetValueTex2DByteRgb
GetValueTex2DByteRgb permet de modifier les données (texels) d'une texture 2D avec un format de pixel RGB_BYTE.
Syntaxe
r, g, b = HYP_Texture.GetValueTex2DByteRgb( texure_name | tid, offset );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du texel. Valeur compise entre 0 et texture_width*texture_height.
- r - [INTEGER] - valeur de la composante rouge - [0 - 255].
- g - [INTEGER] - valeur de la composante verte - [0 - 255].
- b - [INTEGER] - valeur de la composante bleue - [0 - 255].
SetValueTex2DFloatRgba
SetValueTex2DFloatRgba permet de modifier les données (texels) d'une texture 2D avec un format de pixel RGBA_FLOAT ou RGBA_32F.
Syntaxe
HYP_Texture.SetValueTex2DFloatRgba( texure_name | tid, offset, r, g, b, a );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du textel à modifier. Valeur compise entre 0 et texture_width*texture_height.
- r - [REAL] - valeur de la composante rouge.
- g - [REAL] - valeur de la composante verte.
- b - [REAL] - valeur de la composante bleue.
- a - [REAL] - valeur de la composante alpha.
GetValueTex2DFloatRgba
GetValueTex2DFloatRgba permet de modifier les données (texels) d'une texture 2D avec un format de pixel RGBA_FLOAT ou RGBA_32F.
Syntaxe
r, g, b, a = HYP_Texture.GetValueTex2DFloatRgba( texure_name | tid, offset );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- offset - [INTEGER] - localisation du textel. Valeur compise entre 0 et texture_width*texture_height.
- r - [REAL] - valeur de la composante rouge.
- g - [REAL] - valeur de la composante verte.
- b - [REAL] - valeur de la composante bleue.
- a - [REAL] - valeur de la composante alpha.
SetAddressingMode
SetAddressingMode permet de changer le mode d'adressage de la texture. Voir
texture_addressing_mode
pour plus de détails.
Syntaxe
HYP_Texture.SetAddressingMode( texture_name | tid, tam );
- texture_name - [STR127] - nom de la texture comme spécifié dans le script XML par l'attribut name.
- tid - [INTEGER] - identifiant numérique de la texture.
- tam - [INTEGER] - mode d'adressage. Les valeurs suivantes sont acceptées:
- 0 pour WRAP
- 1 pour MIRROR
- 2 pour CLAMP
Exemple
MIRROR = 1;
HYP_Texture.SetAddressingMode("base_map_tex", MIRROR );
SetFilteringAnisotropicValue
SetFilteringAnisotropicValue permet de changer le facteur de filtrage anisotropique de la texture. Voir
texture_filtering_anisotropic_value
pour plus de détails.
Syntaxe
HYP_Texture.SetFilteringAnisotropicValue( texture_name | tid, val );
- texture_name - [STR127] - nom de la texture comme spécifié dans le script XML par l'attribut name.
- tid - [INTEGER] - identifiant numérique de la texture.
- val - [REAL] - valeur du filtrage anisotropique.
Exemple
HYP_Texture.SetFilteringAnisotropicValue("base_map_tex", 8.0 );
SetFilteringMode
SetFilteringMode permet de changer le mode de filtrage de la texture. Voir
texture_filtering_mode
pour plus de détails.
Syntaxe
HYP_Texture.SetFilteringMode( texture_name | tid, filter_type );
- texture_name - [STR127] - nom de la texture comme spécifié dans le script XML par l'attribut name.
- tid - [INTEGER] - identifiant numérique de la texture.
- filter_mode - [INTEGER] - mode de filtrage. Les valeurs suivantes sont acceptées:
- 0 pour NONE
- 1 pour LINEAR
- 2 pour TRILINEAR
Exemple
TRILINEAR = 2;
HYP_Texture.SetFilteringMode("base_map_tex", TRILINEAR );
HYP_Texture.SetFilteringAnisotropicValue("base_map_tex", 10.0 );
SetFunction
SetFunction permet de changer la fonction de texture. Voir
texture_function
pour plus de détails.
Syntaxe
HYP_Texture.SetFunction( texture_name | tid, texture_function );
- texture_name - [STR127] - nom de la texture comme spécifié dans le script XML par l'attribut name.
- tid - [INTEGER] - identifiant numérique de la texture.
- texture_function - [INTEGER] - fonction de texture. Les valeurs suivantes sont acceptées:
- 0 pour MODULATE
- 1 pour REPLACE
- 2 pour ADD
- 3 pour ADD_SIGNED
- 4 pour SUB
Exemple
TFUNC_MODULATE = 0;
HYP_Texture.SetFunction( "base_map_tex", TFUNC_MODULATE );
Save
Save permet de sauvegarder la texture sur le disque dur.
Syntaxe
HYP_Texture.Save( texture_name | tid, [filename] );
- texture_name - [STR127] - nom de la texture comme spécifié dans le script XML par l'attribut name.
- tid - [INTEGER] - identifiant numérique de la texture.
- filename - [STR255] - nom du fichier de texture. Ce paramètre est optionnel. Si il est omis, la texture sera enregistrée
avec le nom suivant: texture_output_xxx.jpg où xxx est une valeur numérique qui s'incrémente à chaque appel de la fonction Save().
SetTransformMatrix
SetTransformMatrix permet de mettre à jour la matrice de transformation des coordonnées de texture.
Cette matrice suit les conventions OpenGL: vecteurs colonnes et multiplication des matrices de droite à gauche.
|x'| | m0 m4 m8 m12 | |x|
|y'| = | m1 m5 m9 m13 | * |y|
|z'| | m2 m6 m10 m14 | |z|
|1 | | m3 m7 m11 m15 | |1|
-- -- -- --
X Y Z Position
axis axis axis
Syntaxe
HYP_Texture.SetTransformMatrix( tex_name | tex_id,
m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15 );
- tex_name - [STR127] - nom de la texture.
- tex_id - [INTEGER] - identifiant numérique de la texture.
- m0 à m15 - [REAL] - les 16 éléments de la matrice 4x4.
GetTransformMatrix
GetTransformMatrix permet de récupérer la matrice de transformation des coordonnées de texture.
Cette matrice suit les conventions OpenGL: vecteurs colonnes et multiplication des matrices de droite à gauche.
|x'| | m0 m4 m8 m12 | |x|
|y'| = | m1 m5 m9 m13 | * |y|
|z'| | m2 m6 m10 m14 | |z|
|1 | | m3 m7 m11 m15 | |1|
-- -- -- --
X Y Z Position
axis axis axis
Syntaxe
m0 to m15 = HYP_Texture.GetTransformMatrix( tex_name | tex_id );
- tex_name - [STR127] - nom de la texture.
- tex_id - [INTEGER] - identifiant numérique de la texture.
- m0 à m15 - [REAL] - les 16 éléments de la matrice 4x4.
PlayStopAVI
PlayStopAVI permet de jouer ou de stopper un AVI.
Syntaxe
HYP_Texture.PlayStopAVI( texture_name | tid, state );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- state - [INTEGER] - 1 pour jouer et 0 pour stopper.
GetAVINumFrames
GetAVINumFrames permet de récupérer le nombre de frames d'une texture animée AVI.
Syntaxe
nFrames = HYP_Texture.GetAVINumFrames( texture_name | tid );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- nFrames - [INTEGER] - nombre de frames.
GetAVIMpf
GetAVIMpf permet de récupérer le nombre de millisecondes par frame d'une texture animée AVI.
Syntaxe
mpf = HYP_Texture.GetAVIMpf( texture_name | tid );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- mpf - [INTEGER] - millisecondes par frame.
GetAVICurrentTime
GetAVICurrentTime permet de récupérer la position temporelle courante d'une texture animée AVI.
Syntaxe
cur_time = HYP_Texture.GetAVICurrentTime( texture_name | tid );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- cur_time - [INTEGER] - position temporelle courante en millisecondes.
SetAVICurrentFrame
SetAVICurrentFrame permet de modifier la position courante d'une texture animée AVI.
Syntaxe
HYP_Texture.SetAVICurrentFrame( texture_name | tid, frame );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- frame - [INTEGER] - nouvelle position courante.
GetAVICurrentFrame
GetAVICurrentFrame permet de récupérer la frame courante d'une texture animée AVI.
Syntaxe
frame = HYP_Texture.GetAVICurrentFrame( texture_name | tid );
- texture_name - [STR127] - nom de la texture.
- tid - [INTEGER] - identifiant numérique de la texture.
- frame - [INTEGER] - position courante.