» fr.EX9.Effect.File
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

~4d ago

~7d ago

joreg: The Winter Season of vvvv workshops is now over but all recordings are still available for purchase: https://thenodeinstitute.org/ws23-vvvv-intermediates/

~14d ago

schlonzo: Love the new drag and drop functionality for links in latest previews!

~22d ago

joreg: Workshop on 29 02: Create Sequencers and Precise Clock Based Tools. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-08-create-sequencers-and-precise-clock-based-tools-in-vvvv-gamma/

~29d ago

joreg: Workshop on 22 02: Unlocking Shader Artistry: A Journey through ‘The Book of Shaders’ with FUSE. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-12-book-of-shaders/

~1mth ago

joreg: Talk and Workshop on February 15 & 16 in Frankfurt: https://visualprogramming.net/blog/vvvv-at-node-code-frankfurt/

~1mth ago

woei: @Joanie_AntiVJ: think so, looks doable

~1mth ago

xd_nitro: Anyone remember who increased projector brightness by removing some components that product the color?

~1mth ago

Joanie_AntiVJ: This looks super interesting (vectors over network) would anyone here know how to implement this in beta? https://github.com/madmappersoftware/Ponk