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

it.EX9 Rendering

English | Mandarin | French

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 - Cosa è successo fino ad ora

Chi ha conosciuto vvvv dall'inizio, ricorderà quando non c'era nessuna categoria EX9. La DX9 (o DX8 così si chiamava all'esordio) invece è sempre stata lì. La nuova categoria EX9 è stata introdotta solo con il supporto degli effetti in vvvv.

I primitivi geometrici nella categoria DX9 sono semplici da usare, ma non molto flessibili. Combinano in un solo nodo geometria e l'effetto di disegno, shader, e sono riprodotti solo con un effetto d'ombreggiatura costante (constant shading). Non è possibile usare luci, né applicare il multitexturing; usare il nodo ArbitraryPoint (Transform) per distorcere i nodi DX9 può generare problemi con il vertexbuffer dei nodi che lo seguono nel grafico. Se per qualcuno significasse qualcosa, i nodi DX9 usano internamente la pipeline a funzione fissa direct3d, (direct3d fixed function pipeline).

EX9 - Sugli Effetti, Vertex- e Pixelshader

La categoria EX9 introduce la direct3d programmable pipeline (pipeline programmabile direct3d) dentro vvvv. La generazione delle geometrie, che ora l'utente può programmare attraverso i nodi della categoria EX9.Effect, qui è separata dall'operazione effettiva di disegno.

Gli Effetti sono contenitori per vertex- e pixelshader, che a loro volta rappresentano i due passi attraverso i quali il disegno viene generato: quando viene disegnato, ciascun vertice di una geometria viene prima passato attraverso il vertexshader, uno script che può operare con i componenti dei vertici. Di seguito, nella pipeline di disegno ogni pixel visibile della geometria passa attraverso uno script pixelshader, che decide, considerati luce, textures ed altri parametri, il colore del pixel.

VVVV contiene un piccolo assortimento di effetti di default:

  • Costant: disegna la geometria con un colore e/o una texture. Restituisce gli stessi risultati di un primitivo geometrico DX9.
  • Flat, Gouraud, Phong: attraverso l'Illuminazione da un Punto, Point Lighting, o quella Direzionale, Directional Lighting (leggi altro suhttp://it.wikipedia.org/wiki/Ombreggiatura), questi effetti sviluppano i classici algoritmi di shading per restituire un migliore effetto di profondità, seppure ancora semplice.

Questi effetti sono adatti per sperimentare rapidamente nuove soluzioni, dato che rendono semplice l'uso di più luci e textures, per generare shading particolari ed altro.

Strettamente correlato alla Geometria

Prima di tuffarsi nel codice di uno shader, è meglio assicurarsi di aver ben compreso i concetti base sulle Meshes e i VertexBuffer avendo letto la sezione it.EX9.Geometria.
Prima di proseguire è raccomandato approfondire anche it.EX9.Spaces. Per quanto possa sembrare astratto per ora, avere un'idea dell'argomento e sapere a cosa fare riferimento farà comodo quando ci sarà da confrontarsi con differenti spazi mentre si lavora sullo shading.

Strettamente correlato alle operazioni di Disegno

Per avere un'idea di cosa succeda dietro le quinte quando vvvv disegna delle geometrie:
it.EX9 Dataflow

Sarà necessario avere una comprensione elementare della struttura dei files degli effetti:
it.EX9.Effect.File

Questo nodo interpreta per vvvv il file degli effetti:
it.EX9.Effect.Node

Seguire ogni passo del tutorial sul Template Effect, vi permetterà un giorno, ;), di generare i vostri effetti personalizzati:
it.EX9.Effect.Template

Prima di cominciare davvero a scrivere del codice, potrebbe essere interessante leggere un breve introduzione a HLSL:
it.EX9.HLSL.Introduzione

Ulteriori riferimenti

Una sorta di bibliografia che tornerà utile al momento di scrivere il codice dello shader:
it.EX9.HLSL.Semantica la semantica supportata da vvvv
it.EX9.HLSL.Annotations le annotazioni supportate da vvvv
Direct3D Effect States render- e samplerstates
HLSL Funzioni Intrinseche funzioni built in
HLSL Tipi di Dati
Shader Models vs. Shader Profiles
vs_2_0 registers
ps_2_0 registers
vs_3_0 registers
ps_3_0 registers

EX9.FurtherReading

anonymous user login

Shoutbox

~2d ago

joreg: vvvvTv S0204 is out: Custom Widgets with Dear ImGui: https://youtube.com/live/nrXfpn5V9h0

~2d ago

joreg: New user registration is currently disabled as we're moving to a new login provider: https://visualprogramming.net/blog/2024/reclaiming-vvvv.org/

~9d ago

joreg: vvvvTv S02E03 is out: Logging: https://youtube.com/live/OpUrJjTXBxM

~11d ago

~13d ago

joreg: Follow TobyK on his Advent of Code: https://www.twitch.tv/tobyklight

~16d ago

joreg: vvvvTv S02E02 is out: Saving & Loading UI State: https://www.youtube.com/live/GJQGVxA1pIQ

~16d ago

joreg: We now have a presence on LinkedIn: https://www.linkedin.com/company/vvvv-group

~23d ago

joreg: vvvvTv S02E01 is out: Buttons & Sliders with Dear ImGui: https://www.youtube.com/live/PuuTilbqd9w

~30d ago

joreg: vvvvTv S02E00 is out: Sensors & Servos with Arduino: https://visualprogramming.net/blog/2024/vvvvtv-is-back-with-season-2/

~30d ago