» 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

~10h ago

joreg: But first: This Friday in Berlin: Join our full day "Getting started with Generative Design Algorithms" workshop https://nodeforum.org/announcements/workshop-getting-started-with-generative-design/

~15h ago

joreg: In #Linz for #ArsElectronica? Join us for a free 2 days #vvvv workshop sponsored by businesses/responsive-spaces-gmbh Apply here: 2-day-gamma-vvvvorkshop-at-responsive-spaces-in-linz

~2d ago

joreg: Need your custom dose of #vvvv training? Join us at our studio in #berlin: vvvv-training-at-the-source

~8d ago

~12d ago

~13d ago

domj: Dev stream: Painting with light with a Vive controller, developing using VL and Schéma. Start at 17:00 https://www.twitch.tv/dominikjancik

~14d ago

joreg: July as it happened: vvvvhat-happened-in-july-2019 #vvvv

~15d ago

levi: @mrboni thanks mrboner. solved it by turning all the lights to strobe mode so framerate drops were actually a relief :P . love

~15d ago

joreg: reminder: this thursday, just before the patching circle, there is a free 2h intro to #vvvv gamma: free-vvvv-intro-workshops-this-summer-in-berlin