Bienvenue sur le forum de l'Académie Française des Jedis
 
AccueilS'enregistrerConnexion

Partagez | 
 

 Se refleter dans l'eau.

Aller en bas 
AuteurMessage
Aiing ti

avatar

Age : 26

Messages : 164

MessageSujet: Se refleter dans l'eau.   Jeu 16 Juil - 0:17

Reflet dans l'eau

I/ Introduction

Je vais vous expliquer ci dessous comment faire une surface liquide qui reflète, comme dans la réalité.

- Pour plus de précisions et pour mieu comprendre voici un .mapfait par mes soins, vous n'avez qu'a l'ouvrir et regarder le fonctionnement, ainsi qu'un pk3 pré*CENSURE*çu contenant le dossier caméra ainsi que les shaders :


II/ Mise en place

Premièrement, si vous voulez tout faire vous meme, créez votre pk3 avec un dossier shader dans lequel vous mettrez ces deux shaders (sauf l'eau si vous utilisez une texture du jeu).
Créez un dossier texture, dans lequel vous créez un dossier camera, dans lequel vous créer une image que vous nommer "camera.jpg" toute noire en 512*512.

Pour ce faire nous auront besoin de 2 shader trés importants :

- Le shader caméra :

Code:
textures/camera/camera
{
   qer_editorimage textures/camera/camera.*CENSURE*
   surfaceparm playerclip
   surfaceparm nolightmap
   portal
   {
      map textures/camera/camera.*CENSURE*
       blendFunc GL_ONE GL_ONE_MINUS_SRC_ALPHA
      depthWrite
      alphaGen portal 2048
    }
}

- Le shader eau :

Code:
textures/nomdossier/water2
{
   qer_editorimage   textures/nomdossier/water1
   surfaceparm   nonsolid
   surfaceparm   nonopaque
   surfaceparm   water
   surfaceparm   fog
   surfaceparm   trans
   q3map_material   Water
   q3map_nolightmap
   q3map_onlyvertexlighting
   fogparms   ( 0.113725 0.137255 0.380392 ) 1024.0
    {
        map textures/nomdossier/water1
        blendFunc GL_ONE GL_ONE_MINUS_SRC_ALPHA
        rgbGen exactVertex
        alphaGen const 0.2
        tcMod scroll 0.005 0.01
        tcMod turb 1 0.03 0 0.3
    }
    {
        map textures/nomdossier/water1
        blendFunc GL_ONE GL_SRC_ALPHA
        rgbGen exactVertex
        alphaGen const 0.2
        tcMod scroll -0.005 -0.01
        tcMod turb 0 -0.03 0.5 -0.3
    }
}

/!\Notez que vous pouvez aussi utiliser la texture bespin/water1 pour l'eau qui est trés bien pour cela car un peu transparente (le shader ci dessus vient de celle ci)
/!\

II/ Utilisation

Passons a la partie mapping du probleme.
Le but est donc de faire refleter l'eau, nous allons pour cela positionner la texture d'eau légerement transparente au dessus de la texture caméra qui crée le reflet.

- Créez déja votre bassin, prenons pour l'exemple un simple trou.

- Remplissez le un peu avant le niveau max d'eau voulu d'un brush avec la texture "common/caulk_water" et sélectionnez la face du dessus a l'aide de "ctrl + shift" et appliquez la texture caméra.

- Nous allons déja créer la caméra, pour ce faire, positionnez un bloc "misc/misc_portal_surface" que vous reliez a un bloc "misc/misc_portal_camera" que vous reliez a un bloc "info/info_notnull" situé juste au dessus, supperposez le bloc surface et le bloc caméra et positionnez le a moitié rentré dans le brush caulk_water (la moitié des blocs est en dehors, la moitié dedans).

- Maintenant nous allons créer l'eau, pour cela, vous allez créer un brush trés fin (1 du pavé numérique) juste au dessus du brush caulk_water, assignez a ce brush fin la texture "system/nodraw" et sélectionnez la face du dessus comme vu précédemment et appliquez votre texture d'eau (bespin/water1 par exemple).

Essayez en jeu, vous verrez votre propre reflet dans l'eau.

/!\ Attention, en général la caméra est assez gourmande niveau FPS donc a vous de jauger en fonction de la map mais en regle générale ca passe pas trop mal.


/!\Notez que vous pouvez modifier votre shader eau pour le rendre plus transparent en touchant a certaines valeurs.
/!\

By aiing ti...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
USS

avatar

Age : 9

Messages : 752

MessageSujet: Re: Se refleter dans l'eau.   Mer 27 Jan - 18:48

attention, il arrive de nombreux bugs lorsque plusieurs misc_portal_camera sont proches.
En fait ce tuto est une autre application de mon tuto sur les miroir
http://jk-team.forum-actif.net/tutoriels-f26/faire-un-miroir-t975.htm
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://ussindustries.blogspot.com/
 
Se refleter dans l'eau.
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les aFj :: Créations, Modifications & Améliorations :: Maps / Skins :: Tutoriels-
Sauter vers: