Scegli la tua lingua
Corso Avanzato di Computer Graphics con C# e .NET
Più di 2 milioni di studenti in tutto il mondo

Corso Avanzato di Computer Graphics con C# e .NET

Padroneggia la computer grafica avanzata, dalla manipolazione dei pixel 2D al rendering 3D fisicamente basato, utilizzando C# e .NET. Implementerai pipeline DirectX 11, scriverai shader HLSL e ottimizzerai le prestazioni della GPU con tecniche consolidate nel settore. Questo corso ti porta dalla matematica di base a sistemi di rendering pronti per la produzione, interamente realizzati in C#.

Dedika per aziende

Cosa imparerai:

  • Configurare un dispositivo DirectX 11, una swap chain e una pipeline di shader HLSL in C# utilizzando SharpDX.

  • Costruire un grafo di scena 3D gerarchico con rotazioni a quaternioni e trasformazioni di matrice MVP.

  • Implementare una pipeline di rendering fisicamente basato con BRDF Cook-Torrance e illuminazione basata su immagini.

  • Applicare tecniche shader avanzate, tra cui shadow mapping, deferred shading e post-processing in spazio schermo.

  • Ottimizzare le prestazioni del rendering in tempo reale attraverso la profilazione GPU, il batching delle draw call e l'occlusion culling.

  • Sviluppare una libreria riutilizzabile di elaborazione delle immagini utilizzando kernel di convoluzione, operazioni morfologiche e filtri FFT.

Come studi in modo pratico Corso Avanzato di Computer Graphics con C# e .NET

Come metti in pratica Corso Avanzato di Computer Graphics con C# e .NET

Per te che sei un'azienda e vuoi formare il tuo team

Su Dedika per aziende, il corso include esercizi ed esempi personalizzati sul tuo business e secondo le esigenze della tua azienda.

Clicca qui

Contenuto del corso

8 Capitoli • 40 LezioniDurata tra 4 e 360 ore (decidi tu)

Capitolo 1Vedi dettagli

Fondamenti di grafica con C# e .NET

  • Lezione 1 • Configurazione dell'ambiente di sviluppo

    Si installano Visual Studio, .NET SDK e le librerie grafiche necessarie per il corso. Una configurazione corretta previene errori nella toolchain in tutti i capitoli successivi.

  • Lezione 2 • Modelli di colore e manipolazione dei pixel

    Si illustrano gli spazi colore RGB, ARGB, HSL e lineari con strutture C#. L'accesso diretto ai pixel tramite BitmapData prepara gli studenti ai capitoli sull'elaborazione delle immagini.

  • Lezione 3 • Rendering di forme primitive

    Si disegnano linee, rettangoli, ellissi e poligoni utilizzando System.Drawing e SkiaSharp. Gli esercizi consolidano i sistemi di coordinate e gli oggetti paint di base.

  • Lezione 4 • Elementi essenziali della sintassi C# per la grafica

    Si trattano variabili, flusso di controllo, classi e generici applicati al codice grafico. Questi costrutti sono alla base di ogni algoritmo di rendering del corso.

  • Lezione 5 • Comprendere lo stack grafico .NET

    Si mappano i livelli dal codice C# gestito fino alle chiamate native alla GPU. Gli studenti identificano dove si collocano GDI+, SkiaSharp e DirectX nello stack.

Capitolo 2Vedi dettagli

Rendering 2D e matematica delle trasformazioni

  • Lezione 1 • Trasformazioni affini in C#

    Si applicano System.Drawing.Drawing2D.Matrix e SkiaSharp SKMatrix agli oggetti della scena. Gli studenti manipolano lo stack di stato grafico per trasformazioni annidate.

  • Lezione 2 • Clipping, culling e dirty region

    Si utilizzano rettangoli di clipping e invalidazione basata su regioni per ottimizzare i ridisegni 2D. Queste tecniche riducono il carico della CPU in scene interattive complesse.

  • Lezione 3 • Vettori e sistemi di coordinate

    Si definiscono vettori 2D, prodotti scalari e perpendicolari con struct C#. La matematica vettoriale è la base per tutti i calcoli di trasformazione e collisione successivi.

  • Lezione 4 • Matematica delle matrici per trasformazioni 2D

    Si introducono le matrici omogenee 3x3 per traslazione, rotazione e scala. Gli studenti compongono catene di trasformazione e comprendono l'ordine di moltiplicazione delle matrici.

  • Lezione 5 • Animazione di sprite e temporizzazione dei fotogrammi

    Si implementano fogli sprite, sequenziamento dei fotogrammi e cicli di animazione a delta-time. Una temporizzazione coerente dei fotogrammi garantisce un movimento fluido su hardware diversi.

Capitolo 3Vedi dettagli

Elaborazione delle immagini e filtri

  • Lezione 1 • Operazioni morfologiche

    Si eseguono erosione, dilatazione, apertura e chiusura su immagini binarie e in scala di grigi. Queste operazioni supportano compiti di analisi della forma e rimozione del rumore.

  • Lezione 2 • Schemi di accesso alle bitmap e prestazioni

    Si confrontano GetPixel, LockBits e l'accesso unsafe tramite puntatori in termini di throughput. La scelta dello schema di accesso corretto è critica prima di implementare qualsiasi filtro.

  • Lezione 3 • Operazioni puntuali e regolazioni del colore

    Si applicano trasformazioni di luminosità, contrasto, gamma e miscelazione dei canali pixel per pixel. Le lookup table accelerano significativamente le operazioni puntuali ripetute.

  • Lezione 4 • Elaborazione nel dominio della frequenza

    Si applica la Trasformata Veloce di Fourier alle immagini per il filtraggio basato sulla frequenza. Gli studenti implementano filtri passa-basso e passa-alto nel dominio della frequenza.

  • Lezione 5 • Kernel di convoluzione e filtri spaziali

    Si implementano sfocatura, nitidezza, rilevamento dei bordi e rilievo tramite convoluzione 2D. Gli studenti scrivono un motore di kernel generico che accetta qualsiasi matrice NxN.

Capitolo 4Vedi dettagli

Matematica 3D e rappresentazione della scena

  • Lezione 1 • Vettori 3D e prodotto vettoriale

    Si definiscono le operazioni su Vector3, inclusi prodotto vettoriale, normalizzazione e proiezione. Queste primitive sono alla base dei calcoli di illuminazione, fisica e telecamera.

  • Lezione 2 • Matrici 4x4 e trasformazioni 3D

    Si costruiscono le matrici di modello, vista e proiezione utilizzando la matematica omogenea 4x4. Gli studenti comprendono la pipeline MVP utilizzata da ogni renderer 3D.

  • Lezione 3 • Progettazione e implementazione del grafo di scena

    Si costruisce un grafo di scena basato su nodi con ereditarietà delle trasformazioni genitore-figlio. La struttura del grafo organizza tutti gli oggetti 3D nei capitoli successivi.

  • Lezione 4 • Quaternioni per la rotazione

    Si rappresentano le rotazioni 3D con i quaternioni per evitare il gimbal lock. Gli studenti implementano l'interpolazione SLERP per un'animazione fluida di telecamere e oggetti.

  • Lezione 5 • Volumi di delimitazione e interrogazioni spaziali

    Si implementano AABB, OBB e sfere di delimitazione per interrogazioni spaziali veloci. Un culling e un rilevamento delle collisioni efficienti dipendono da queste strutture.

Capitolo 5Vedi dettagli

Rendering DirectX 11 con SharpDX

  • Lezione 1 • Texturing e stati del campionatore

    Si caricano immagini nelle viste delle risorse shader e si configurano le modalità di filtraggio del campionatore. Una corretta configurazione delle texture consente dettagli superficiali realistici sulle mesh 3D.

  • Lezione 2 • Configurazione del dispositivo DirectX 11 e della catena di scambio

    Si creano un dispositivo D3D11, un contesto di dispositivo e una catena di scambio destinati a una finestra WinForms o WPF. Questo schema di inizializzazione viene riutilizzato in ogni progetto DirectX.

  • Lezione 3 • Modelli di illuminazione in HLSL

    Si implementano illuminazione ambiente, diffusa e speculare utilizzando i modelli di Phong e Blinn-Phong. Gli studenti estendono il pixel shader per supportare sorgenti luminose multiple.

  • Lezione 4 • Programmazione di shader HLSL

    Si scrivono vertex e pixel shader in HLSL, si compilano a runtime e si associano i buffer costanti. Gli shader controllano ogni effetto visivo nella pipeline DirectX.

  • Lezione 5 • Vertex buffer e layout di input

    Si definiscono le strutture dei vertici, si carica la geometria nei buffer della GPU e si configurano i layout di input. Una corretta configurazione dei buffer è un prerequisito per qualsiasi chiamata di disegno.

Capitolo 6Vedi dettagli

Tecniche avanzate di shader

  • Lezione 1 • Tecniche di shadow mapping

    Si esegue il rendering di una mappa di profondità dalla prospettiva della luce e si confrontano le profondità nel pixel shader. I filtri PCF e PCSS riducono l'aliasing sui bordi delle ombre.

  • Lezione 2 • Effetti di post-elaborazione in spazio schermo

    Si applicano SSAO, bloom, tone mapping e FXAA come pass su un quad a schermo intero. La post-elaborazione trasforma i render grezzi in immagini curate e cinematografiche.

  • Lezione 3 • Pipeline di deferred shading

    Si memorizzano gli attributi geometrici in un G-buffer e si valuta l'illuminazione in un pass in spazio schermo. Il deferred shading scala efficientemente con un gran numero di luci dinamiche.

  • Lezione 4 • Compute shader per il parallelismo GPU

    Si lanciano compute shader per la simulazione di particelle, l'elaborazione di immagini e la riduzione dei dati. I compute shader sbloccano il parallelismo della GPU oltre la pipeline di rasterizzazione.

  • Lezione 5 • Normal e parallax mapping

    Si perturbano le normali della superficie utilizzando mappe delle normali in spazio tangente per dettagli ad alta frequenza. Il parallax occlusion mapping aggiunge l'illusione di profondità senza geometria aggiuntiva.

Capitolo 7Vedi dettagli

Ottimizzazione del rendering in tempo reale

  • Lezione 1 • Ottimizzazione della memoria e della larghezza di banda

    Si comprimono le texture, si impacchettano gli attributi dei vertici e si gestiscono gli heap di risorse per ridurre la larghezza di banda. I limiti di banda sono il collo di bottiglia dominante sulle GPU moderne.

  • Lezione 2 • Occlusion e frustum culling

    Si elimina la geometria invisibile prima dell'invio utilizzando pass di culling su CPU e GPU. Il culling è l'ottimizzazione a più alto impatto nelle scene dense.

  • Lezione 3 • Strategie di riduzione delle chiamate di disegno

    Si applicano istanziazione, batching geometrico e disegno indiretto per ridurre l'overhead delle chiamate di disegno. Meno chiamate di disegno riducono direttamente l'overhead del driver della CPU per fotogramma.

  • Lezione 4 • Sistemi di livello di dettaglio

    Si cambia la complessità della mesh e dello shader in base alla dimensione in spazio schermo o alla distanza. I sistemi LOD mantengono la qualità visiva riducendo il carico di vertici della GPU.

  • Lezione 5 • Profilazione e identificazione dei colli di bottiglia

    Si utilizzano profiler GPU, PIX e RenderDoc per individuare gli stalli di CPU e GPU. Dati di profilazione accurati devono precedere qualsiasi sforzo di ottimizzazione.

Capitolo 8Vedi dettagli

Rendering fisicamente basato in C#

  • Lezione 1 • Teoria PBR e modello di materiale

    Si spiegano la teoria dei microfacets, la conservazione dell'energia e la BRDF di Cook-Torrance. Comprendere la fisica garantisce scelte corrette dei parametri del materiale.

  • Lezione 2 • Luci d'area e light probe

    Si approssimano luci d'area rettangolari e sferiche utilizzando LTC e griglie di light probe. Le luci d'area aggiungono un'illuminazione morbida e realistica alle scene interne.

  • Lezione 3 • Implementazione dello shader PBR

    Si traducono le equazioni di Cook-Torrance in HLSL con mappe metallic, roughness e AO. Lo shader si integra con la pipeline differita costruita nel Capitolo 6.

  • Lezione 4 • Tone mapping e color grading

    Si convertono i valori di luce lineare HDR in output riferito al display utilizzando gli operatori ACES e Reinhard. Le LUT di color grading applicano l'intento artistico dopo il tone mapping.

  • Lezione 5 • Illuminazione basata su immagini

    Si precalcolano mappe di irradianza diffusa e radianza speculare da mappe d'ambiente HDR. L'IBL fornisce un'illuminazione ambientale realistica senza costosi ray tracing.

Certificazione

Il tuo certificato valido di completamento

Questo corso è per te:

  • Sviluppatori C#: desiderosi di andare oltre le applicazioni aziendali per dedicarsi alla programmazione grafica.

  • Sviluppatori di videogiochi: interessati a una conoscenza di basso livello di DirectX, anziché alle astrazioni dei motori grafici.

  • Ingegneri del software: in fase di transizione verso ruoli di simulazione, visualizzazione o tooling per videogiochi.

  • Studenti di informatica: pronti ad applicare il lavoro dei corsi di matematica a sistemi di rendering reali.

  • Artisti tecnici: alla ricerca di una conoscenza più approfondita di shader e pipeline tramite codice C#.

  • Programmatori hobbisti: appassionati nel costruire il proprio renderer 3D da zero.

Cosa dicono i nostri studenti

Le sue lezioni sono perfette. Ho acquistato il pacchetto annuale e finalmente ho l'opportunità di seguire diversi argomenti di mio interesse senza dover cambiare piattaforma... vi ringrazio per tutto quello che fate, vi ho già raccomandati ad altre persone...
Giulio Carlo
Giulio CarloStudente di Marketing Digitale
Mi piace come le lezioni vanno dritte al punto e come riesco a cambiare capitoli e saltare contenuti di cui non ho bisogno.
Mariana Ferres
Mariana FerresStudentessa di Fotografia
Mi piace il contenuto e il modo di presentazione e trascrizione dei video, che accelera il processo!
Luciana Alvarenga
Luciana AlvarengaStudentessa di Nail Design
La piattaforma è veloce, semplice da usare. La diversità dei contenuti e i video complementari aiutano molto nell'apprendimento.
André Felipe
André FelipeStudente di Prompt Engineering

Principali percorsi formativi

FAQ

Chi è Dedika?

Il certificato è valido in Italia?

I corsi sono gratuiti?

Qual è il carico di lavoro del corso?

Come sono strutturati i corsi?

Come funzionano i corsi?

Qual è la durata dei corsi?

Qual è il costo o il prezzo dei corsi?

Cos’è un corso EAD o online e come funziona?

Corso PDF