Quali sono alcune buone risorse per l'apprendimento dell'HLSL? [chiuso]


28

L'ultima volta che ho provato a imparare l'HLSL, ho fatto alcuni shader e ho capito soprattutto cosa stavo facendo, ma mi sentivo ancora come se stessi inciampando nel buio. La maggior parte di ciò che ho appreso è stato ricavato da vari post di blog che non spiegavano molto bene le cose.

Inoltre, la documentazione su MSDN sembra essere più un riferimento di funzione.

Dove posso imparare non solo a scrivere HLSL, ma anche a imparare tecniche per scrivere shader?

Risposte:


14

Quei due hanno notato, torno costantemente al seguente articolo quasi ogni volta che scrivo uno shader generico:


1
E dovrei specificare che per "riferimento API" intendo di più la sezione "Guida alla programmazione".
Sean James,

6

Se quello che stai cercando è "tecnica shader", piuttosto che un semplice riferimento linguistico (leggi la domanda, le persone), ti consiglio (da facile a avanzato):

  • La sezione Shader dei campioni XNA (ovviamente richiede l'uso di XNA)
  • La serie di tutorial di Petri Wilhelmsen, che inizia qui (diventa più avanzata in seguito; è anche basata su XNA)
  • I campioni in bundle di Nvidia FX Composer

E fondamentalmente: prova le cose e pratica, il tutto assorbendo come i "professionisti" fanno le cose. Oppure scegli le cose che sono simili a ciò che stai cercando di ottenere e lavorare da lì.


3

Cg non è tecnicamente HLSL, ma sintatticamente sono praticamente identici.

Detto questo, è un libro più vecchio, ma NVIDIA ha reso " The Cg Tutorial " libero da leggere online. Copre le basi della pipeline programmabile in modo molto completo e dovrebbe tradursi in HLSL con il minimo sforzo.


1
nVidia e Microsoft hanno scritto insieme Cg / HLSL nel corso della giornata. Gli hanno dato nomi diversi a causa del marchio, ma la lingua è la stessa. Ora, probabilmente c'è una leggera differenza, ma è davvero minima.
jacmoe,

Questo è un libro fenomenale. Fondamentalmente qualsiasi cosa di Kilgard era davvero buona in termini di tutorial.
Bobobobo,

3

Se vuoi modificare e vedere i risultati in tempo reale puoi usare questo semplice strumento Silverlight

http://shazzam-tool.com/
Shazamm 1.3 - Editor e Previwer di HSLS Shaders


Per quanto riguarda i tutorial +1 per Riemers.net, ho trovato anche questa serie di tutorial XNA / HLSL ancora migliore.

Ecco l'elenco, li troverai tutti qui: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Introduzione a HSLS, luce ambientale
  • 2 - Luce diffusa
  • 3 - Luce speculare
  • 4 - Mappatura normale
  • 5 - Deforma vertice shader
  • 6 - Shader demo: semplice scenario oceano / isola
  • 7 - Toon shading
  • 8 - Gloss map
  • 9 - Wiggle post process
  • 10 - Inverti post processo
  • 11 - Shader in scala di grigi
  • 12 - Pixel distorsione shader
  • 13 - Mappatura alfa
  • 14 - Buffer di trasmissione / profondità
  • 15 - Mappatura dinamica dell'ambiente
  • 16 - Rifrazione
  • 17 - Point light + Auto-Shadowing
  • 18 - Luci a punti multipli
  • 19 - Luce ambientale emisferica
  • 20 - Profondità di campo
  • 21 - Transizione: dissolvenza
  • 22 - Transizione: croce
  • 23 - Sfocatura
  • 24 - Fioritura
  • 25 - Perlin Noise sulla GPU
  • 26 - Bump Mapping Perlin Noise






0

Non sono sicuro del modello di shader e della versione di DirectX che stai prendendo di mira, ma consiglio vivamente il rendering e il calcolo pratici con Direct3D11 . Il libro ti guida attraverso tutti i dettagli grintosi di DirectX11, le sue risorse, tutti i diversi shader della pipeline, HLSL (un intero capitolo dedicato a questo) e come iniziare a implementare cose come simulazioni di sistemi di particelle, tassellatura, elaborazione di immagini, rendering differito e DirectCompute!



-1

per me è più facile imparare prima GLSL e poiché HLSL e GLSL sono simili. una volta compreso l'intero concetto, la pipeline, l'hardware e come funziona il linguaggio dello shader interno, è facile usare un'altra lingua come HLSL o persino Cg.

Propongo GLSL perché ha un ottimo libro come quello arancione e rosso di openGL ed è facile da imparare per i principianti.


1
Questo non risponde alla domanda.
PhillC,

Tuttavia , non è una cattiva risposta: gran parte di ciò che sta alla base di GLSL è molto simile a HLSL e se l'OP può trovare risorse per GLSL, è valido farne uso. Molte delle principali differenze tra il codice shader stesso sono solo una questione di conversione mentale una volta che sai cosa stai guardando. L'idea di apprendere GLSL prima fallisce perché si dovrebbe anche imparare OpenGL (non male in sé; utile per conoscerli entrambi) e riscrivere il proprio programma (cattivo), ma non c'è assolutamente nulla di sbagliato nell'usare materiale GLSL per integrare il proprio apprendimento HLSL (e viceversa, se pertinente).
Maximus Minimus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.