» 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

~2h ago

u7angel: twitch livestream vvvv gamma

~24h ago

u7angel: @domj, sure

~1d ago

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

~1d ago

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

~1d 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