» 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

~4h 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/

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