» fr.EX9.Effect.Template
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

fr.EX9.Effect.Template

English | Italian | Spanish

The original english version of this page is newer and may contain information this translation does not have! Click here to view the english version.

Lorsqu'on souhaite créer un nouvel effet il est souvent pratique de démarrer à partir d'un modèle. Dans la catégorie de node EX9.Effect, vous pourrez trouver Template (EX9.Effect) qui constitue une bonne base de départ. Il contient la structure d'effet basique et implémente un vertex shader et un pixel shader élémentaires. Dans les faits, c'est un shading constant avec une texture simple.

Ce modèle est organisé en quatre sections:

  • Parameters
  • VertexShader
  • PixelShader
  • Techniques

Parameters

La section Paramètres commence par déclarer les matrices de transformation les plus courantes grâce aux sémantiques. Notez que la variable tW, qui est déclarée avec la sémantique WORLD, apparaît sous la forme d'un pin sur l'effet, ce qui n'est pas le cas des autres transformations. Les sémantiques VIEW et PROJECTION assignent leur matrice respective aux matrices tV et tP par les pins view et projection du Renderer (EX9).

Puis cette section déclare une texture et un sampler, auquel est assignée la texture. Le dernier paramètre est la matrice de transformation de texture.

Pour chaque effet, vous devez également spécifier quelles données vous souhaitez transférer du vertex shader vers le pixel shader sous forme de paramètre. C'est ce que l'on fait grâce à une structure:

{CODE(ln=>0)}
struct vs2ps
{

    float4 Pos  : POSITION;
    float2 TexCd : TEXCOORD0;

};
^

Notez que cette structure est réutilisée comme paramètre pour la fonction vertex shader:

 vs2ps VS(float4 PosO  : POSITION, float4 TexCd : TEXCOORD0)
 {..}

mais également comme paramètre d'entrée pour la fonction pixel shader:

 float4 PS(vs2ps In): COLOR
 {..}

Il n'est pas nécessaire d'utiliser une structure comme celle-ci. Vous pouvez ajouter des paramètres additionnels selon votre souhait.

Dans ce simple exemple, la structure ne contient que 2 types de valeurs: les vecteurs de position et de coordonnées de texture. Pour un effet réaliste, vous voudrez certainement passer d'avantage d'informations aux vertex shader et au pixel shader.

VertexShader

Le vertex shader du modèle ne fait pas grand chose. Il remplit seulement la structure de sortie avec les positions de vertex actuelles dans l'espace de projection:

 Out.Pos = mul(PosO, tWVP);

et les coordonnées de texture de vertex actuelles, transformées via la matrice de transformation de texture entrante:

 Out.TexCd = mul(TexCd, tTex);

PixelShader

La fonction pixel shader est encore plus simple. Elle prend les coordonnées de texture entrante pour un pixel donné, puis renvoie la couleur de sampler Samp à cette même position.

Techniques

Le modèle d'effet spécifie 2 techniques. TSimpleShader est la version cool, celle qui utilise les fonctions du shader. L'autre est moins intéressante car elle n'utilise que des instructions de fonction fixe, ce dont vous n'aurez probablement jamais besoin.

anonymous user login

Shoutbox

~5h ago

joreg: Interested in #visualprogramming with #vvvv? Meetup in #berlin on the 25th: 10-berlin-vvvv-meetup Featuring @kopffarben

~22h ago

ggml: is pepperoni dmx adapter still expected to work with b38 ?

~1d ago

bo27: @sinus hi! Thanks for using the template. Run is for endusers and it kills explorer. Try developer.bat to access patches

~1d ago

sinus: @bo24: sorry for da hassle. everything´s fine again. several restarts did the job.

~1d ago

sinus: @bo24: my mail db@servus.at

~1d ago

sinus: @IvanRastr aka bo24: found your project template, tested run bat.file, now my screen is black. only cursor. what to do?

~6d ago

cznickesz: @tonfilm thanks for the info. Can´t wait to give it a try!

~7d ago

tonfilm: @cznickesz #vvvv #vl #xenko integration is not ready for the public yet, it's still under heavy development... more updates soon.

~7d ago

cznickesz: Possibly dumb question: is there any release containing xenko-integration right now?