» 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

~27d ago

joreg: Summer Season 23 vvvv workshops are now ready for sign-up: https://thenodeinstitute.org/vvvv-intermediates-summer-2023/

~30d ago

schlonzo: yeah! shader input pins now also visible, while the variable it not used!

~1mth ago

benju: Job opportunity, teaching Sounddesign for New Media purposes in Berlin (6hrs/week): https://www.letteverein.berlin/wp-content/uploads/2023/03/Ausschreibung_MIA_LK_6_UStd._Sounddesign_NEU.pdf

~1mth ago

joreg: vvvv gamma 5.0 is out! Please read all about it in the release notes: https://visualprogramming.net/blog/2023/vvvv-gamma-5.0-release

~2mth ago

domj: Coming to LPM next weekend? Learn more about one of the first full vvvv gamma apps, Schéma! https://liveperformersmeeting.net/editions/2023-muenster/program/detail/schema-talk/

~2mth ago

joreg: Want to get started with #vvvv? Check this 12 session beginner online course starting May 8th: https://thenodeinstitute.org/courses/vvvv-beginner-class-summer-2023/

~3mth ago

mediadog: @ggml Yup, lots. Only used in 4.x, haven't tried in 5.x yet: https://www.unrealengine.com/marketplace/en-US/product/simple-udp-tcp-socket-client

~3mth ago

ggml: someone has sent udp bytes to unreal ?