» 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

~20h ago

u7angel: @domj, sure

~20h ago

domj: @u7angel: nice! How about the talk later at 7?

~20h ago

u7angel: vvvv-gamma-presentation will be streamed on twitch, starts 2pm, channel name is vvvv gamma

~24h ago

joreg: vvvv heads in #hamburg #kiel: if you're bored this thursday, please come join us for a workshop and/or talk: vvvv-gamma-presentation

~2d ago

sebescudie: @teckor: maybe ui-plugin ?

~2d ago

tekcor: wasn't there a contribution for making native windows GUIs?

~3d ago

joreg: Looking for a #vvvv job in #berlin? don't miss this one: https://discourse.vvvv.org/t/looking-for-vvvv-artists-permanent-in-berlin/17448

~3d ago

domj: vvvv gamma audio input with Naudio https://youtu.be/iBRZ3tsc_BI

~4d ago

microdee: @tonfilm: hehehe, apply water to the burnt area :D