
Stato: in scrittura
Volume 5 — Grafica 3D
Il 3D da zero: prima la matematica e un rasterizzatore scritto a mano, poi OpenGL dentro un controllo Avalonia, fino a scene vere e a quattro progetti.
30 capitoli · in scrittura (lo stato di ogni capitolo è nell'indice qui sotto). La prima parte non usa nessuna libreria: vettori e matrici con System.Numerics, trasformazioni e quaternioni, telecamera e proiezioni, mesh e normali, luce e materiali, e un rasterizzatore in software che rende chiaro che cosa fa la scheda video. La seconda parte apre OpenGL con OpenGlControlBase e Silk.NET: buffer, shader GLSL, texture, framebuffer, istanze, compute shader, e il banco che confronta WGL, ANGLE ed EGL su Windows e Linux. La terza parte porta le scene vere: telecamera orbitale, modelli OBJ e glTF, animazioni, picking, etichette, e i progetti.




Indice dei capitoli
Il 3D era un volume solo, con OpenGL, Vulkan e Direct3D: 47 capitoli, circa 680 pagine, oltre il limite di 480. Si divide per libreria. Questo volume insegna il 3D da zero con OpenGL, che gira dappertutto e si apre direttamente in un controllo di Avalonia; il volume 6 scende in Vulkan e Direct3D, le interfacce esplicite, e confronta le tre strade con misure vere.
| Parte | Capitoli | Pagine |
|---|---|---|
| Prima di cominciare | — | 8 |
| Prima · Il 3D senza librerie | V.1–V.7 | 95 |
| Seconda · OpenGL | V.8–V.20 | 175 |
| Terza · Scene vere | V.21–V.26 | 80 |
| Progetti | V.27–V.30 | 55 |
| Appendici | A–C | 30 |
| Totale | 30 capitoli | ≈ 445 |
Prima di cominciare ✔
Prefazione · la collana · che cosa serve dei volumi 2, 3 e 4 (il controllo che disegna, il thread del disegno, Skia per le texture e il testo) · la scheda video del libro e come provare senza · le librerie e le licenze.
Parte prima — Il 3D senza librerie
La matematica e la pipeline, prima di qualunque libreria: tutto quello che serve anche ai volumi 6, con System.Numerics e un rasterizzatore scritto a mano.
- V.1 Il 3D in un'applicazione Avalonia ✔ — che cosa si può fare e con che cosa: OpenGL, Vulkan, Direct3D, Metal; come Avalonia mette la scheda video dentro un controllo; i due volumi del 3D e il percorso di lettura.
- V.2 Vettori e matrici con
System.Numerics✔ —Vector3,Matrix4x4, prodotto scalare e vettoriale; l'ordine delle moltiplicazioni (vettori riga di .NET, vettori colonna di GLSL), il primo inciampo di tutti. - V.3 Trasformazioni e quaternioni ✔ — traslare, ruotare, scalare; angoli di Eulero e il blocco cardanico;
Quaternione l'interpolazione; la gerarchia di oggetti. - V.4 Telecamera e proiezioni ✔ — la vista, la proiezione prospettica e ortografica; il volume visibile; lo spazio di ritaglio di OpenGL (−1…1) e di Direct3D e Vulkan (0…1); la precisione della profondità.
- V.5 Mesh: vertici, triangoli, normali ✔ — cubo, sfera, cilindro, superficie da una funzione; indici; il verso dei triangoli e la faccia nascosta; normali per faccia e per vertice.
- V.6 Luce e materiali ✔ — Lambert, Phong, Blinn-Phong; luci direzionali, puntiformi, a cono; colori in luce lineare e sRGB.
- V.7 Un rasterizzatore in software ✔ — la pipeline scritta a mano in C# su una bitmap di Skia: trasformare, ritagliare, riempire i triangoli, il buffer di profondità. Lento, misurato, e la scheda video diventa chiara.
Parte seconda — OpenGL
- V.8 OpenGL e la scheda video ✔ — la pipeline programmabile, le versioni, OpenGL ES; ANGLE, il traduttore che Avalonia usa su Windows; che cosa vuol dire «contesto».
- V.9
OpenGlControlBasedi Avalonia ✔ — il controllo che apre un contesto:OnOpenGlInit,OnOpenGlRender,OnOpenGlDeinit; su quale thread;GlInterfacee Silk.NET.OpenGL sopra lo stesso contesto; il primo triangolo. - V.10 Buffer e layout dei vertici ✔ — VBO, VAO, EBO; interlacciati o separati; aggiornare i dati senza fermare la scheda video.
- V.11 GLSL ✔ — vertex e fragment shader; compilare, collegare, leggere gli errori;
#versionper OpenGL e per OpenGL ES; dove finiscono le differenze fra le schede. - V.12 Uniform, attributi, matrici ✔ — passare la telecamera agli shader; blocchi di uniform; quanto costa cambiarli a ogni oggetto.
- V.13 Texture e campionatori ✔ — caricare con Skia (volume 4), mipmap, filtri, ripetizione; texture sRGB; l'atlante.
- V.14 Luci in GLSL ✔ — Phong e Blinn-Phong per pixel; più luci; materiali; normal map.
- V.15 Profondità, trasparenza, multisampling ✔ — il buffer di profondità, l'ordine degli oggetti trasparenti, l'antialiasing con MSAA; il prezzo misurato di ognuno.
- V.16 Framebuffer e disegno fuori schermo ✔ — disegnare in una texture; post-elaborazione; la foto del 3D per le figure del libro.
- V.17 Instancing ✔ — centomila oggetti in una chiamata; i dati per istanza; misure.
- V.18 Ombre ✔ — la shadow map, i suoi difetti (acne, peter panning) e i rimedi.
- V.19 Compute shader ✔ — OpenGL 4.3, dove c'è: calcolare sulla scheda video; dove manca (ANGLE, OpenGL ES 3.0, macOS fermo a 4.1) e come ripiegare.
- V.20 OpenGL su Windows, Linux e macOS ✔ — ANGLE contro WGL, GLX ed EGL, X11 e Wayland, macOS che lo sconsiglia; le stesse misure su tre sistemi.
Parte terza — Scene vere
- V.21 Telecamera orbitale e interazione ✔ — orbita, zoom, spostamento con mouse, rotella e tastiera; la telecamera che non si capovolge.
- V.22 Modelli OBJ e glTF ✔ — leggere un OBJ a mano; glTF con SharpGLTF: mesh, materiali, texture, gerarchie.
- V.23 Animare oggetti 3D ✔ — fotogrammi chiave, interpolazione con i quaternioni, il passo fisso del volume 3.
- V.24 Picking e ray casting ✔ — dal clic al raggio; intersezione con triangoli e scatole; il colore come identificatore.
- V.25 Testo ed etichette nel 3D ✔ — un atlante di glifi disegnato con Skia; etichette che guardano sempre la telecamera.
- V.26 Misurare il 3D ○ — i tempi della scheda video con le query; RenderDoc per vedere un fotogramma; dove va il tempo.
Progetti
- V.27 Visualizzatore di modelli 3D ✔ — glTF, telecamera orbitale, luci, griglia, selezione.
- V.28 Superficie di misure in tempo reale ✔ — una griglia di dati che cambia 60 volte al secondo, colorata per valore.
- V.29 Grafico 3D scientifico ✔ — assi, tacche ed etichette nello spazio, come i grafici del volume 3.
- V.30 Nuvola di punti ✔ — milioni di punti con l'instancing, selezione con il picking.
Appendici
A. Gli inciampi del 3D ○ · B. Riferimento rapido di OpenGL e GLSL ○ · C. Glossario ○
Stato dei capitoli: ✔ scritto · ✎ in bozza · ○ da scrivere.
Gli esempi del volume
Volume 5 — Grafica 3D volume 5
Gli esempi di 29 capitoli (720 file) e la libreria RAVAL c8a811e, licenza MIT. Libro c73d832b, 6 novembre 2026.
SHA-256 ba5e164fbc5f9e33698f43a0866f313387417419f7ca98df332d32842c6167fdLicenza MIT. Come si aprono e si avviano: la pagina Esempi. Tutti i volumi in un pacchetto solo: Download.