Computer grafica 3D: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 84.220.44.240 (discussione), riportata alla versione precedente di Sedlex |
Nessun oggetto della modifica Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile |
||
(64 versioni intermedie di 44 utenti non mostrate) | |||
Riga 1:
[[File:Raytraced_image_of_several_glass_objects.png|thumb
La '''computer grafica 3D''' è un ramo della [[computer grafica]] che si basa sull'elaborazione di un insieme di modelli tridimensionali tramite algoritmi atti a produrre una verosimiglianza fotografica e ottica nell'immagine finale. Essa viene utilizzata nella creazione e postproduzione di opere o parti di opere per il [[cinema]] o la [[televisione]], nei [[videogioco|videogiochi]], nell'[[architettura]], nell'[[ingegneria]] ([[Computer-aided design|CAD]]), nell'[[arte]] e in svariati ambiti scientifici, dove la produzione di contenuti con altri mezzi non è possibile o non conveniente.
== Aspetti teorici ==
=== Modelli 3D ===
[[File:Wasp11.jpg|thumb
Oggetti tridimensionali semplici possono essere rappresentati con equazioni operanti su un [[sistema di riferimento cartesiano]] [[Sistema di riferimento tridimensionale|tridimensionale]]: per esempio, l'equazione <math>x^2+y^2+z^2=r^2</math> è perfetta per una sfera di raggio ''r''. Anche se equazioni così semplici possono sembrare limitative, l'insieme degli oggetti realizzabili viene ampliato con una tecnica chiamata [[geometria solida costruttiva]] (CSG, ''constructive solid geometry''), la quale combina oggetti solidi (come cubi, sfere, cilindri, ecc.) per formare oggetti più complessi attraverso le [[algebra di Boole|operazioni booleane]] (unione, sottrazione e intersezione): un tubo può ad esempio essere rappresentato come la differenza tra due cilindri aventi diametro differente.
Queste equazioni non sono tuttavia sufficienti a descrivere con accuratezza le forme complesse che costituiscono la gran parte del mondo reale, per cui non è di utilizzo comune. Per modellare [[Superficie di Bézier|superfici curve]] in modo arbitrario si possono usare le ''patch'', ovvero l'estensione delle ''[[spline]]'', che approssimano curve continue, alle tre dimensioni. Le ''patch'' più comunemente usate sono in pratica basate su ''spline'' [[NURBS]].
L'impiego di equazioni matematiche pure come queste richiede l'utilizzo di una gran quantità di potenza di calcolo, e non sono quindi pratiche per le applicazioni in tempo reale come videogiochi e simulazioni. Una tecnica più efficiente, e tuttora la più diffusa e flessibile è il poly-modelling o modellazione poligonale. Questa permette un maggiore livello di dettaglio a spese però della maggiore quantità di informazioni necessaria a memorizzare l'oggetto risultante, chiamato [[Mesh poligonale|modello poligonale]].
Un modello poligonale e "sfaccettato" come una scultura grezza può essere comunque raffinato con [[algoritmo|algoritmi]] per rappresentare superfici curve: questa tecnica è chiamata "[[superfici di suddivisione]]". Il modello viene raffinato con un processo di [[interpolazione]] iterativa rendendolo sempre più denso di poligoni, che approssimeranno meglio curve ideali, derivate matematicamente dai vari vertici del modello.
=== Creazione della scena ===
Una scena si può comporre a partire da "primitive", ossia modelli tridimensionali rappresentanti primitive geometriche, scomponibili in singole facce o combinabili per formare oggetti più complessi. Il modo più semplice per organizzarla è quello di creare un [[array]] di primitive, ma questo metodo non permette una descrizione più dettagliata della scena, semplicemente "spiega" al ''renderer'' come disegnare la stessa. Una tecnica più avanzata organizza gli oggetti in una [[Albero (grafo)|struttura dati ad albero]] (''scene graph''), che permette di raggruppare logicamente gli oggetti (ad esempio, si può quindi replicare più volte un oggetto, avendolo modellato attraverso più ''patch'' NURBS raggruppate, all'interno della stessa scena).
Le primitive sono generalmente descritte all'interno del proprio sistema di riferimento locale, e vengono posizionate sulla scena attraverso opportune [[trasformazione geometrica piana|trasformazioni]]. Le trasformazioni affini più impiegate, come [[omotetia]], [[rotazione]] e [[Traslazione (geometria)|traslazione]], possono essere descritte in uno [[spazio proiettivo]] con una [[matrice]] 4x4: esse si applicano moltiplicando la matrice per il [[array|vettore]] a quattro componenti che rappresenta ogni punto di controllo delle curva. La quarta dimensione è denominata [[Coordinate omogenee|coordinata omogenea]].
Ad ogni nodo dello ''scene graph'' è associata una trasformazione, che si applica anche ad ogni nodo sottoposto, ricreando l'interazione fisica tra oggetti raggruppati (come quella tra un uomo e il suo vestito). Anche in sistemi di modellazione e ''rendering'' che non fanno uso di ''scene graph'' è comunque generalmente presente il concetto di trasformazione applicata "in verticale".
=== ''Rendering'' ===
{{vedi anche|Rendering}}
Il ''rendering'' è il processo di produzione dell'immagine finale a partire dal modello matematico del soggetto (scena). Esistono molti algoritmi di ''rendering'', ma tutti implicano la [[proiezione (geometria)|proiezione]] dei modelli 3D su una superficie 2D.
Gli algoritmi di ''rendering'' si dividono in due categorie: ''[[scanline rendering|scanline
Una delle funzioni principali di un ''renderer'' è la [[determinazione della
Un'immagine perfettamente nitida, con [[profondità di campo]] infinita non è affatto fotorealistica. L'occhio umano è abituato alle imperfezioni come il ''[[Flare (ottica)|lens flare]]'' (il riflesso sulla lente), la limitatezza della profondità di campo e
=== Illuminazione e ''shading'' ===
[[File:Glas-ohne.jpg|thumb
[[File:Glas-1000-enery.jpg|thumb
[[File:Glas-2000-enery.jpg|thumb
[[File:Glas-6000-enery.jpg|thumb
Lo ''shading'' ({{Lett|ombreggiatura}}) è il processo di determinazione del colore di un determinato pixel dell'immagine. Esso comprende in genere il processo di illuminazione (''lighting''), che ricostruisce l'interazione tra gli oggetti e le sorgenti di luce: a questo scopo sono necessari per un modello di illuminazione le proprietà della luce, le proprietà di [[riflessione (Computer grafica)|riflessione]] e la [[normale (superficie)|normale]] alla superficie nel punto in cui l'equazione di illuminazione viene calcolata.
Per produrre una rappresentazione visuale dell'immagine efficace, bisogna simulare la fisica della luce. Il modello matematico più astratto del comportamento della luce è l'[[Rendering#Le equazioni alla base del rendering|equazione di rendering]], basata sulla [[legge di conservazione dell'energia]]. Essa è un'equazione [[integrale]], che calcola la luce in una certa posizione come la luce emessa in quella posizione sommata all'integrale della luce riflessa da tutti gli oggetti della scena che colpisce quel punto. Questa equazione infinita non può essere risolta con algoritmi finiti, quindi necessita di approssimazione.
Riga 61 ⟶ 63:
Formano una classe a sé stante i "''vertex shader''" e i "''pixel shader''", designati appositamente per funzionare insieme ad algoritmi ''scanline'' e per girare su una [[Graphics Processing Unit|GPU]]. Mentre in precedenza ogni ''hardware'' grafico implementava una specifica ''[[pipeline grafica|pipeline]]'' che costringeva l'utilizzatore ad usare esclusivamente il modello di illuminazione per cui era programmato l'hardware, con questa categoria di ''shader'' ogni momento del ''rendering'' è sotto il controllo dello sviluppatore.
=== 3D simulato ===
[[File:3d-simulation-psd-vector.png|alt=Esempio di 3D simulato. Questo stesso risultato (visivamente) si può ottenere con Adobe Photoshop o Gimp o Adobe Illustrator o Inkscape o Blender o Maya|miniatura|Esempio di 3D simulato. Questo stesso risultato (visivamente) si può ottenere con software per l'elaborazione di immagini come Adobe Photoshop o Gimp oppure con applicativi di grafica vettoriale come ad esempio Adobe Illustrator o Inkscape.]]
Con software per la [[grafica]] come [[Adobe Illustrator]], [[Adobe Photoshop]], [[Inkscape]] o [[GIMP|Gimp]] è possibile simulare l'effetto 3D senza rendering, lavorando con livelli, sfumature e ombre. Il punto debole di questa tecnica rispetto ai software specializzati in 3D è che per modificare anche solo leggermente un rendering con, ad esempio, [[Blender (programma)|Blender]], basta modificare il file originale ".blend" e ripetere il comando di rendering, senza rifare tutto il progetto da zero. Con un 3D simulato con programmi di grafica invece si dovrà ripetere l'intero progetto anche solo per spostare, per esempio, la prospettiva di pochi gradi<ref>{{Cita web|url=https://unblast.com/light-3d-text-effect-psd/|titolo=Neon Light 3D Text Effect (PSD)|sito=Unblast|data=2018-06-28|accesso=2021-02-05}}</ref><ref>{{Cita web|url=https://www.pinterest.com/pin/307159637058336567/|titolo=Lion vector 3D {{!}} Ilustrator, Ilustrasi, Gambar hewan|sito=Pinterest|lingua=it|accesso=2021-02-05}}</ref><ref>{{Cita web|url=https://blenderartists.org/t/when-to-use-photoshop-when-blender/572242|titolo=When to use Photoshop, when Blender?!|sito=Blender Artists Community|data=2013-04-19|lingua=en|accesso=2021-02-05}}</ref>.
== Web 3D ==
{{vedi anche|Web 3D}}
Web 3D è un termine utilizzato per indicare i contenuti 3D interattivi inseriti in una pagina HTML, visualizzabili da un comune browser attraverso un particolare visualizzatore 3D web. Si utilizza il concetto di Web 3D anche per indicare una possibile evoluzione del Web in cui viene abbandonata l'idea di pagina e ci si immerge in uno spazio tridimensionale interattivo.
== Programmi per la grafica 3D ==
* [[3Cad Evolution]]
* [[3D Coat]] (modellatore con capacità di sculpting e painting)
* [[
* [[
* [[
* [[
* [[AutoCAD]]
* [[Blender (programma)|Blender]] (software open source)
* [[ClayTools]]
* [[Daz Studio]]
* [[
* [[FreeForm Modelling]]
* [[
* [[
* [[Modo (software)|Luxology Modo]]
* [[
* [[Maxon Cinema 4D|Cinema 4D]]
* [[Maya (software)|Maya]]
* [[MeshLab]] (Editor open source di mesh triangolari, 3d scanning)
* [[Mudbox]] (modellatore con capacità di sculpting)
* [[Nevercenter Silo]] (modellatore con capacità di sculpting)
* [[Poser (software)|Poser]] (specializzato nel disegno di figure umane)
* [[RaySupreme]] (software proprietario multipiattaforma di modellazione 3D e rendering)
* [[Realsoft 3D]]
* [[Revit]]
* [[Rhinoceros (software)|Rhinoceros]] (solitamente coadiuvato da applicativi esterni specifici per la creazione di rendering)
* [[Silo (software)]] (modellatore con capacità di sculpting)
* [[SketchUp]] (modellatore)
* [[Softimage XSI]]
* [[Solidthinking]]
* Source Filmmaker (software open source)
* [[Terragen]]
* [[Vue Esprit]]
* [[Wings3D]] (modellatore con capacità di sculpting)
* [[Xfrog]] (modellatore organico parametrico di piante e alberi)
* [[ZBrush]]
== Motori di ''rendering'' ==
* AccuRender
* Arnold Renderer
* Aqsis (open source)
* Brazil R/S
* Corona Render
* [[Cycles render|Cycles Render]] ([[unbiased]])
* Finalrender
* Flamingo
* FPrime
* Fryrender ([[unbiased]])
* Keyshot
* Kray
* Indigo Renderer
* [[LuxRender]] (open source)
* [[Maxwell Render]] ([[unbiased]])
* [[Mental ray]]
* [[Pixie (software)|Pixie]] (software open source)
* [[POV-Ray]] (software open source)
* Redshift Render
* [[RenderMan]]
* [[Sunflow]] (software open source)
* [[Toxic Renderer]] (software open source)
* [[Vray|V-ray]]
* [[YafRay]]
==
<references />
== Voci correlate ==
* [[Attore virtuale]]
* [[
* [[Cinema tridimensionale]]
* [[Computer-generated imagery]]
* [[Modellazione geometrica]]
* [[Pipeline grafica]]
* [[Shadow mapping]]
* [[Sistema di specchi rotanti]]
* [[Z-buffer]]
== Altri progetti ==
{{interprogetto|
== Collegamenti esterni ==
*
* {{cita web | 1 = http://3dblogging.net/ | 2 = Portale Italiano Grafica 3D | urlmorto = sì }}
* {{cita web | 1 = http://www.low-poly.it/ | 2 = Low Poly | accesso = 1º agosto 2015 | urlarchivio = https://web.archive.org/web/20150927131953/http://www.low-poly.it/ | dataarchivio = 27 settembre 2015 | urlmorto = sì }}
*[https://web.archive.org/web/20181201005153/http://blogrenderingsitiweb.com/ Blog Grafica 3D] Blog Grafica 3D
{{Controllo di autorità}}
{{Portale|Informatica|Software libero}}
[[Categoria:Grafica 3D| ]]
[[Categoria:
|