image
Les liquides: eau et lave PDF Imprimer Envoyer
Écrit par Kaleel   
Mercredi, 02 Mars 2011 21:19
Dans ce chapitre nous allons voir comment utiliser les liquides.

Vous avez envie de créer un marécage, un lac de lave ou une piscine, pas de problème nous allons voir ça maintenant.


Commençons par l'eau

Créez tout d'abord le bassin ou vous voudrez mettre de l'eau, et placez à l'intérieur de ce bassin un brush qui touche les 4 bords, ainsi que le fond.

Plusieurs choix de textures s'offrent à vous:

Pour faire de l'eau assez sale, type marécage préférez plutôt la texture yavin/water1, ce qui donnera cela:



Pour faire une piscine ou une plage prenez plutôt la texture bespin/water2, ce qui donnera:



Note: La texture bespin/water1 ne fonctionne pas correctement, étonnant.

L'aspect final de la texture sera dans ce ton:



Notez que quelque soit la texture d'eau que vous utilisez, celle-ci sera automatique configurée pour la réflexion de la lumière, ainsi que pour la gestion du joueur (nage, noyade, mort, etc...).


Passons maintenant à la lave:

La lave est un peu plus complexe à prendre en main, car il n'y a pas réellement de texture par défaut qui fonctionne correctement. De même il est impossible de nager dans la lave sans fondre, il va donc falloir palier à tous ces détails.

Il y a bien une texture qui fasse l'affaire, elle se trouve dans le répertoire imp_mine/lava2.
Cependant, bien qu'une texture de lave soit affichée celle-ci pose des problèmes par défaut, voyez par vous-même:



Marcher sur la lave, rien de plus incohérent, cependant pour excuser le jeu, il est vrai qu'il ne nous ai à aucun moment possible de tomber dans la lave dans Jedi Outcast.

Nous allons donc remédier à ce problème en créant de toute pièce un shader qui va nous permettre d'aller dans la lave. Par la même occasion nous allons améliorer le tout en ajoutant un effet de lumière (puisque la lave produit de la lumière).

Commencez par copier/coller la texture dans un répertoire de texture personnel: par exemple /base/textures/vos-textures/lava2

Ouvrez ensuite votre bloc note et copiez/coller le code ci-dessous:


textures/vos-textures/lava2{
qer_editorimage   textures/vos-textures/lava2
q3map_surfacelight    150
surfaceparm    nonsolid
surfaceparm    lava
surfaceparm    water
surfaceparm    trans
q3map_material    Water
q3map_nolightmap
q3map_onlyvertexlighting
{
map textures/vos-textures/lava2
blendFunc GL_ONE GL_ZERO
tcMod scroll 0.01 0.01
tcMod turb 1 0.1 1 0.005
tcMod stretch noise 1 0.01 0 0.05
}
}

Pour faire simple on a indiqué ici que la texture émettait de la lumière, qu'elle n'était pas solide, et qu'elle se déplaçait avec un courant.

Sauvegardez votre fichier en lui donnant le nom de lava.shader
Placez ensuite ce fichier dans le dossier /base/shaders/.

Il est important de savoir que pour que l'effet fonctionne il faut que votre carte soit compilée avec vos répertoires /textures/vos-textures/ et /shaders/lava dans un .pk3.


Enfin pour finir sachez que la lave ne causera pas automatiquement de dégâts, par conséquent il faut placer un brush avec la texture system/trigger au même niveau que votre brush de lave, et lui assigner un trigger_hurt.

key: dmg
value: 30

Ce qui causera 30 de dégâts par seconde.
textures/vos-textures/lava2{
qer_editorimage   textures/vos-textures/lava2
q3map_surfacelight    150
surfaceparm    nonsolid
surfaceparm    lava
surfaceparm    water
surfaceparm    trans
q3map_material    Water
q3map_nolightmap
q3map_onlyvertexlighting
{
map textures/vos-textures/lava2
blendFunc GL_ONE GL_ZERO
tcMod scroll 0.01 0.01
tcMod turb 1 0.1 1 0.005
tcMod stretch noise 1 0.01 0 0.05
}
}
textures/vos-textures/lava2{
qer_editorimage   textures/vos-textures/lava2
q3map_surfacelight    150
surfaceparm    nonsolid
surfaceparm    lava
surfaceparm    water
surfaceparm    trans
q3map_material    Water
q3map_nolightmap
q3map_onlyvertexlighting
{
map textures/vos-textures/lava2
blendFunc GL_ONE GL_ZERO
tcMod scroll 0.01 0.01
tcMod turb 1 0.1 1 0.005
tcMod stretch noise 1 0.01 0 0.05
}
}
textures/vos-textures/lava2{
qer_editorimage   textures/vos-textures/lava2
q3map_surfacelight    150
surfaceparm    nonsolid
surfaceparm    lava
surfaceparm    water
surfaceparm    trans
q3map_material    Water
q3map_nolightmap
q3map_onlyvertexlighting
{
map textures/vos-textures/lava2
blendFunc GL_ONE GL_ZERO
tcMod scroll 0.01 0.01
tcMod turb 1 0.1 1 0.005
tcMod stretch noise 1 0.01 0 0.05
}
}
Mise à jour le Mercredi, 02 Mars 2011 21:58