Page 1 sur 2

[Tuto] Comment incruster une image à une surface

Posté : 26 mars 2011, 16:42
par Newin
Bonjour tous le monde.

Voici quelques exemples que vous saurez faire après ce petit tuto, pas bien compliquer qui permettra de casser la monotonie des surfaces de votre map :

ImageImageImage



Pour commencer prenons pour support le dernière exemple ci-dessus. Nous avons besoin pour cela un programme de retouche d'image tel Gimp ou Photoshop et de texte comme NotePad++ ou tous simplement un blocnote .

Tous d'abord, munissez vous d'une image.png comportant une transparence comme ici ( n'oubliez pas que votre image doit être de dimension égale à un multiple de 2 tel 128, 256, 512 ... ) :

Image

Ensuite crée un calque en dessous du premier et remplissez la de la couleurs #808080 comme ceci :

Image

Le principe est qu'une fois en jeu les couleurs ayant une valeur se rapprochant de ce gris devienne invisible.
Je vous recommande donc si vous avez des image avec un tour blanc de mettre votre calque image en mode fusion.

Enregistrez votre image en .jpg , que vous nommerez test1, dans le dossier "tuto" que vous aurez préalablement crée dans votre dossier texture.

Nous allons ensuite passer au script. Créez donc un nouveaux shader dans le dossier scripts que vous nommerez "tutoshader" ( n'oublier pas de le déclarer dans le shaderlist ). Ouvrez le fichier et introduisez ce code ci :

Code : Tout sélectionner

textures/tuto/test1
{
	qer_editorimage textures/tuto/test1.jpg
	surfaceparm trans
	surfaceparm nonsolid
	surfaceparm nomarks
	polygonOffset
	nopicmip
	{
		map textures/tuto/test1.jpg
		blendfunc gl_dst_color gl_src_color
	}
}
Enregistrez le shader et ouvrez GTKradiant.

Crée un cube et plaquer votre shader sur les faces de façon que votre image prenne la totalité de la face.

Image

Ensuite sélectionnez votre brush, allez dans le menu curve, cliquez sur "Simple Patch Mesh..." (Shift+P) et cliquez sur "Ok". Normalement votre brush doit s'être transformé en une face plate.

Image

Il ne vous reste plus qu'à plaquer la face sur votre mur ou votre sol et le tour est joué.

Image

Sur GTKradiant il se peut que la face réagisse mal avec la surface ou elle est plaqué ( vous ci-dessus ) mais ce problème disparait une fois dans le jeu.


C'est maintenant à vous de crée toute sorte d'incrustations qui permettra de rendre vos maps plus réalistes.

Je remercie grandement Skaz qui ma aidé à comprendre ce script que j'ai voulu partager avec vous.

Voila voila, bonne chance a tous et si vous avez des question n'hésitez pas ;D

Re: [Tuto] Comment incruster une image à une surface

Posté : 26 mars 2011, 19:48
par Mizukashi
J'pense que ce tuto devrait plaire à stratège. :)

Re: [Tuto] Comment incruster une image à une surface

Posté : 26 mars 2011, 20:12
par stratege
très beau boulot :D .
En fait cela s'appel un "decal" =).
Pour ceux qui ne savent pas, polygonOffset est très utile car cela permet de décaler un peu la surface du brush pour le decal.

Un des nombreux lien de textures decal: http://www.cgtextures.com/textures.php?t=browse&q=52338


PS:
n'oubliez pas que votre image doit être de dimension égale à un multiple de 2 tel 128, 256, 512 ... ) :
Tu ne l'aurais pas dis, j'aurais deviné que c'était skaz ^^.

Re: [Tuto] Comment incruster une image à une surface

Posté : 26 juin 2011, 13:36
par Mizukashi
En relisant je n'ai pas compris quelle commande permet de rendre le gris transparent...
Asche nous avait présenté une commande pour rendre le noir transparent, et toi tu nous propose une commande pour rendre la couleur de notre choix transparent c'est bien ça ?
Mais alors comment fais tu dans ton script pour "choisir" quelle couleur sera transparente ou non ? Pourrait on rendre un fond vert transparent ?

Re: [Tuto] Comment incruster une image à une surface

Posté : 26 juin 2011, 19:33
par Skaz

Re: [Tuto] Comment incruster une image à une surface

Posté : 26 juin 2011, 19:57
par Mizukashi
Merci skaz mais je n'arrive toujours pas à comprendre.
J'ai compris grâce à ton site, que l'on pouvait choisir la couleur qui allait disparaître avec le code RGB, mais il ne l'utilise pas ici.
Je l'ai bien relu plusieurs fois, et j'ai utilisé un traducteur ( peu efficace... ) mais je ne comprends pas l'utilité de

Code : Tout sélectionner

blendfunc gl_dst_color gl_src_color

Re: [Tuto] Comment incruster une image à une surface

Posté : 26 juin 2011, 20:18
par siomsir
Le blendfunc gl_dst_color gl_src_color ne sert pas à rendre la couleur transparente mais à la "camoufler" dans la texture d'en dessous.

Re: [Tuto] Comment incruster une image à une surface

Posté : 06 mai 2012, 14:58
par bolbol26
Quand j'utilise ce shader, en jeu j'ai la texture bleu blanc rouge, alors que dans gtkradiant le shader s'affiche et mes chemins sont bon.
Je l'ai appliqué sur un "Simple Patch Mesh" car je veut qu'il soit solide et visible que d'un seul coté.

voici la texture que j'ai (téléchargé sur cg-texture)
je ne sais pas si j'ai bien réussi à mettre la couche alpha ...
Texture format .PSD (je l'ai enregistré en .tga)

voici mon shader :
Spoiler :

Code : Tout sélectionner

//********************                ************//
//____________________ Grillage Trans ____________//
//********************                ************//

textures/mes_newshader/Grillage
{
   qer_editorimage textures/mes_newshader/GrillageCGtexture.tga
   surfaceparm trans
//   surfaceparm nonsolid
   surfaceparm nomarks
   polygonOffset
   nopicmip
   {
      map textures/mes_newshader/GrillageCGtexture.tga
      blendfunc gl_dst_color gl_zero
   }
}

Re: [Tuto] Comment incruster une image à une surface

Posté : 01 févr. 2013, 16:22
par Xh0r0
erf j ai essayer mainte fois mais j arrive à rien :-/. Moi tous disparaît quand je le colle à un mur.

Re: [Tuto] Comment incruster une image à une surface

Posté : 10 févr. 2013, 12:39
par Xh0r0
hello, j'ai essayer mainte fois de faire le tuto à la lettre mais j'arrive à rien du tout :-(((( l'image noir ou autre reste ... Y a t il un bon moyen pour que sa ne le fasse plus? merci

Re: [Tuto] Comment incruster une image à une surface

Posté : 10 févr. 2013, 12:47
par Sadd
Cela ne fonctionne qu'avec une texture possedant une couleur de fond #808080. #808080 est associé à la fonction blendfunc gl_dst_color gl_src_color, pas l'inverse.

Re: [Tuto] Comment incruster une image à une surface

Posté : 10 févr. 2013, 13:51
par Xh0r0
Sadd a écrit :Cela ne fonctionne qu'avec une texture possedant une couleur de fond #808080. #808080 est associé à la fonction blendfunc gl_dst_color gl_src_color, pas l'inverse.

Ben j'ai pris une image qui était dans les textures (se qui veut dire qu'elle a déjà été sur une map) et j'ai essayer mais rien. le fond de l'image qui normalement ne doit plus être là, est toujours présente :cry:

Re: [Tuto] Comment incruster une image à une surface

Posté : 10 févr. 2013, 14:33
par Sadd
Relis ma réponse.

Re: [Tuto] Comment incruster une image à une surface

Posté : 11 févr. 2013, 21:31
par Xh0r0
Ok, si j'ai bien compris en exemple (je fais un mur et la textures du mur doit être #808080 pour pouvoir afficher le texte par après?

Re: [Tuto] Comment incruster une image à une surface

Posté : 11 févr. 2013, 22:43
par stratege
Le fond doit être en gris --> #808080, c'est le gris qui devient ensuite transparent.