» Affichage EX9
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Affichage EX9

English | Mandarin | Italian

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.

DX9 - Que s'est-il passé jusqu'ici?

Les personnes qui suivent vvvv depuis ses tout débuts se souviennent sûrement de l'époque où il n'y avait pas encore de node de catégorie EX9. Le DX9 (ou DX8, comme il était appelé au commencement) a, lui, toujours était là. La classe EX9 n'a été introduite qu'avec l'apparition du support des effets dans vvvv.

Les primitives de la catégorie DX9 sont simples à utiliser, mais pas vraiment flexibles. Elles combinent géométrie et effet de dessin dans une seule node; en fait, elles sont toujours dessinées avec un shading constant. Pas d'éclairage, pas de multi-texturage, et en utilisant la node ArbitraryPoint (Transform) pour déformer la géométrie, on a toujours une impression de bricolage... Les nodes DX9 utilisent le pipeline à fonction fixe direct3d (certains d'entre vous savent peut-être de quoi il s'agit).

EX9 - Des Effets, VertexShader et PixelShader

La catégorie EX9 offre un pipeline programmable direct3d à vvvv. La création de géométrie est ici séparée du dessin proprement dit, qui est désormais programmable par l'utilisateur via les nodes de la catégorie "EX9 Effect".

Les effets sont des containers pour les VertexShader et PixelShader qui, en retour, représentent les 2 étapes par lesquelles le dessin est effectué: lorsqu'il est tracé, chaque vertex d'une géométrie est d'abord passé dans le vertexshader, qui est un petit script qui opère sur les composantes de vertex. Ensuite, chaque pixel visible de la géométrie est passé dans un script de pixelshader qui, en fonction de l'éclairage, va laisser la texture et d'autres paramètres décider de la couleur du pixel.

Vvvv embarque quelques effets par défaut:

  • Constant: dessine la géométrie avec une couleur et/ou une texture. Le résultat ressemble exactement aux primitives DX9.
  • Flat, Gouraud, Phong: avec éclairage Point ou Directionnal, ils implémentent des algorithmes de shading classiques pour obtenir des résultats 3D simples.

Ces effets fonctionnent très bien pour la création d'ébauches rapides mais se montrent vite limités. En revanche, ils peuvent être facilement adaptés pour utiliser plusieurs éclairages et textures, des shading spéciaux, etc.

Travailler Directement avec la Géométrie

Avant de plonger dans les codes de shader, clarifions certains termes. Assurez-vous de bien comprendre les bases de Mesh et Vertexbuffer en lisant la section EX9 Geometry. Avant de poursuivre, il est également recommandé de jeter un coup d'oeil à EX9 Spaces. Même si cela peut vous paraître un peu abstrait pour le moment, il est bon d'avoir déjà entendu parlé de tout ça et de savoir où regarder plus tard, en cas de problème.

Travailler Directement avec le Dessin

Pour vous faire une idée de ce qui se passe en coulisse lorsque vvvv dessine une géométrie sur votre écran, jetez un coup d'oeil au diagramme de flux de données:
EX9 Dataflow

Vous aurez besoin de comprendre les bases de la structure des fichiers d'effet:
EX9 Effect File

Ici, la manière dont vvvv interprète les fichiers d'effet en tant que nodes d'effet:
EX9 Effect Node

A présent suivez le pas à pas à travers ce modèle d'effet, à partir duquel vous créerez certainement vos propres effets:
EX9 Effect Template

Avant de réellement coder vos propres shaders, vous pouvez lire une courte introduction au sujet de l'HLSL:
EX9 HLSL Introduction

References

Finalement, voici une liste de références qui s'avère pratique pendant l'écriture de shader:
EX9 HLSL Semantics sémantiques supportées par vvvv
EX9 HLSL Annotations annotations supportées par vvvv
Etats d'effets Direct3D renderstate et samplerstate
Fonctions intrinsèques HLSL fonctions d'origine
Types de données HLSL
Modèles de shader et profiles de shader
registres vs_2_0
registres ps_2_0
registres vs_3_0
registres ps_3_0

Publications

Divers:
VertexShader et PixelShader simples créés durant le node08.workshop (nécessite quelques adaptations).http://vvvv.org/tiki-download_file.php?fileId=1588node08_shader_programming.zip (23.79 Kb)</a>

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