» fr.EX9.Effect.File
You were redirected to the new location of this resource. Please update your bookmarks.
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

fr.EX9.Effect.File

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.

Les Effets sont la méthode Direct3D pour combiner vertexshader et pixelshader dans un fichier.

Le schéma basique d'un effet est le suivant:

^code(line=0):
parameters
functions

technique1

  pass1 (vertexshader, pixelshader)
  pass2 (vertexshader, pixelshader)
  ..

technique2

  pass1 (vertexshader, pixelshader)
  pass2 (vertexshader, pixelshader)
  ..

^

Un effet contient des paramètres qui sont utilisés par les fonctions du shader: les fonctions en elle-même et les techniques, ce qui vous permet de définir avec quel shader un objet est affiché, et d'établir un render state et un sampler state.

Paramètres

Les paramètres sont des variables, qui sont déclarées à l'intérieur d'un effet et sont soit établis directement dans l'effet, soit dans l'application (par exemple: via le patch vvvv). Les paramètres peuvent être n'importe lequel des types de données définis en HLSL.

Pour chaque paramètre défini dans un effet, vvvv crée un pin d'entrée approprié sur la node d'effet. Grâce à ces pins, des valeurs pour ces paramètres peuvent être établies depuis vvvv.

Sémantiques

Des paramètres peuvent être assignés avec des sémantiques, qui sont un genre d'étiquette ou de déclaration et qui spécifient comment un paramètre doit être manipulé par l'application-hôte (ex: vvvv). Par exemple: si vous définissez un paramètre de type float4 (vecteur de 4 valeurs flottantes) et le déclarez avec la sémantique "COLOR", alors vvvv établira un pin d'entrée de couleur sur la node d'effet.
Via les sémantiques, vous avez également accès aux viewmatrix et projectionmatrix (et à toutes leurs combinaisons avec la matrice d'environnement) du renderer. Pour les paramètres de matrice déclarés avec une de ces sémantiques, aucun pin ne sera créé sur la node puisque ces matrices sont réglées automatiquement par la node d'effet et donc n'ont pas besoin d'être visibles par l'utilisateur (excepté pour la matrice d'environnement).

Toutes les sémantiques supportées par vvvv sont listées à la page EX9 HLSL Semantics.

Annotations

Pour d'avantage de description de chaque paramètre, vous pouvez utiliser EX9.HLSL.Annotations.

Vvvv ne supporte actuellement que trois annotations. La plus importante à signaler est l'annotation "uiname" de type texte, qui définit un nom pour le pin représentant le paramètre d'effet dans l'interface utilisateur de vvvv. Si vous n'utilisez pas cette annotation, le pin sera nommé exactement comme le paramètre dans l'effet.

Fonctions

Comme dans n'importe quel langage de programmation moderne, vous pouvez définir des fonctions en HLSL pour encapsuler/modulariser un code. Les fonctions en HLSL sont déclarées semblablement au C/C++/C#. Elles ont un type, un nom, des paramètres et un corps de fonction. Un effet peut avoir plusieurs fonctions.

Les principales fonctions d'un effet sont les VertexShader et PixelShader. A l'intérieur de celles-ci peuvent être appelées d'autres fonctions.

Vertex Shader

Le VertexShader est une fonction qui est exécutée pour chaque vertex d'une géométrie (un modèle 3D). Dans un VertexShader, le calcul de vertex du pipeline de rendu est implémenté, ce qui signifie: WorldTransform, ViewTransform, éclairage et matière, et ProjectionTransform. Mais d'autres opérations avancées peuvent être également réalisées, tel que le vertexblending (pour l'animation) ou le morphing.

anonymous user login

Shoutbox

~10h ago

joreg: vvvvTv S02E01 is out: Buttons & Sliders with Dear ImGui: https://www.youtube.com/live/PuuTilbqd9w

~7d ago

joreg: vvvvTv S02E00 is out: Sensors & Servos with Arduino: https://visualprogramming.net/blog/2024/vvvvtv-is-back-with-season-2/

~8d ago

fleg: hey there! What's the best tool for remote work? Teamviewer feels terrible. Thanks!

~21d ago

joreg: Last call: 6-session vvvv beginner course starting November 4: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-i/

~1mth ago

joreg: Missed the last meetup? You can rewatch it here: https://www.youtube.com/live/MdvTa58uxB0?si=Fwi-9hHoCmo794Ag

~1mth ago

theurbankind: When is the next big event, like node festival ?

~1mth ago

~1mth ago

joreg: Join us for the next vvvv meetup on Oktober 17th: https://visualprogramming.net/blog/2024/25.-vvvv-worldwide-meetup/

~1mth ago

joreg: 6 session beginner course part 2 "Deep Dive" starts January 13th: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-ii/