» 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

~13h ago

evvvvil: Yo I won the shader showdown at Nova demoparty and im live to make round 1 shader in 25 minutes again. https://www.twitch.tv/evvvvil_

~4d ago

ggml: little enttec dmx help on a saturday night ?

~7d ago

joreg: Interested in #visualprogramming with #vvvv? Meetup in #berlin on the 25th: 10-berlin-vvvv-meetup Featuring @kopffarben

~7d ago

ggml: is pepperoni dmx adapter still expected to work with b38 ?

~8d ago

bo27: @sinus hi! Thanks for using the template. Run is for endusers and it kills explorer. Try developer.bat to access patches

~8d ago

sinus: @bo24: sorry for da hassle. everything´s fine again. several restarts did the job.

~8d ago

sinus: @bo24: my mail db@servus.at

~8d ago

sinus: @IvanRastr aka bo24: found your project template, tested run bat.file, now my screen is black. only cursor. what to do?

~13d ago

cznickesz: @tonfilm thanks for the info. Can´t wait to give it a try!