3DMark06, X3 Reunion e Serious Sam II
Pag. 3 - 3DMark06: caratteristiche (2)
Se a tutto questo aggiungiamo un maggiore livello di dettaglio in ogni test, l’adozione di un maggior numero di luci, l’utilizzo di texture più grandi e shader più complessi, possiamo iniziare ad avere una percezione di quanto gravoso sia diventato il punteggio restituito dalla nuova versione del noto benchmark. A questo dobbiamo aggiungere l’adozione delle Uniform Shadow Maps per la renderizzazione delle ombre dinamiche. Questo il dettaglio delle differenze:
Il motore grafico non ha subito rivoluzioni rispetto a quanto fatto vedere nella precedente versione del benchmark, se non fosse per quelle importanti implementazioni di cui prima: ShaderModel 3.0, texture e blending a 16bit in virgola mobile. Queste ultime caratteristiche sono necessarie per l’elaborazione dell’HDR, ma anche per il filtraggio delle texture e, quando non supportato dall’hardware (al momento disponibile solo per nVidia nelle GeForce 6 e 7), vengono simulate mediante uno shader (quanto accade sulle Ati X1000). I test HDR/SM3.0 utilizzano un effetto di post-process bloom più realistico che include un effetto nebbia a forma di stella che simula l’otturatore di una fotocamera a 6 bordi con controllo dell’esposizione. A questo è poi aggiunto un effetto di riflessione su lente e poi una mappatura a tono per avere valori corretti di luce su monitor standard.
Come già visto in un nostro precedente articolo, l’HDR consente di poter disporre di una palette di colori che vanno oltre il range standard di colori a 24bit; ciò consente di disporre di ambientazioni sovrasaturate o sovraesposte di luce.
Per quanto riguarda il supporto dello SM3.0, FutureMark assicura l’utilizzo di tutte le caratteristiche chiave del modello, eccetto per il registro vFace; per cui sono presenti i registri vPos, il controllo dinamico del flusso, le istruzioni derivative, le interpolazioni e le costanti multiple, parecchi slot di istruzioni, ecc..
Come in ogni recente versione del 3DMark, anche in questa è stata migliorata la tecnica di elaborazione delle ombre dinamiche. Nel 3DMark01 venne introdotta la tecnica delle Projection Shadow Maps: metodo semplice e funzionale, ma con la limitazione che un oggetto non poteva proiettare la sua ombra su se stesso e che questa non si fermava alla prima superficie di riflessione, ma l’ombra non aveva mai termine.
Il 3DMark03, quindi, introdusse la tenica delle stencil shadows: i contorni di un oggetto visibile nella direzione della luce sono selezionati come un poligono senza luce e tutto ciò che veniva racchiuso da questo appariva come scuro. Meglio del precedente, ma non universale e soprattutto funzionale in scene dal basso contenuto poligonale.
Il 3DMark05 introdusse, quindi, il metodo delle Perspective Shadows, oggi migliorato nel 3DMark06 dalle Cascaded Shadow Maps: mappe di profondità che consentono il disegno delle ombre di tutti gli oggetti presenti senza considerare l’angolo della loro inclinazione.
Questo metodo divide la scena in 5 sezioni lungo l’asse Z. Per ognuna se ne calcola l’ombreggiatura usando una mappa uniforme da 2048x2048. Se la GPU supporta le texture di profondità, una mappa di profondità di formato D24X8 o DF24 viene usata, altrimenti di tipo R32F. Anche se la mappa ha una così elevata risoluzione, spesso questa non è abbastanza per evitare effetti di flickering che accadono in corrispondenza dei contorni delle ombre. L’effetto di aliasing della proiezione avviene quando la direzione delle mappe normali è molto vicina alla perpendicolare della direzione della luce. E’ quasi impossibile evitare tale effetto senza perdere in prestazioni. Per questo il test utilizza un vettore da 16 campioni (4x4) nel test SM3.0/HDR che viene fatto ruotare casualmente sui pixel dei contorni delle ombre per smussare i bordi. La qualità risultante è molto buona, ma richiede notevoli risorse hardware. Poteva anche essere adottato un vettore dalle maggiori dimensioni, ma non sarebbe stato realistico per i giochi futuri dove il dinamismo delle scene non permetterebbe di apprezzare migliorie ulteriori alla qualità delle ombre e renderebbe solo più lento il frame-rate.
Per i test con SM2.0, viene usato un vettore 2x2 ruotato allo stesso modo. Se la GPU supporta i formati D24X8 o DF24, il test sceglie la modalità di aliasing di tipo bilineare, per cui potrebbe risultare non consono a confrontare architetture differenti se non dopo la disabilitazione delle ombre dinamiche e l’utilizzo delle texture nel formato R32F , smussate a 4 campioni.
Questa tecnica è già molto adoperata nella realtà da molti giochi e sembra che troverà sempre maggiori consensi nel prossimo futuro. Le texture di colore sono compresse in DXT1, le mappe alpha in DXT3 e le mappe normali in DXT5; peccato non venga supportato il 3Dc di Ati per queste ultime.
La nebbia eterogenea è definita in maniera molto semplice nella nuova versione del test. Il volume di una scena è descritto da una texture volumetrica la cui distribuzione di densità ha una frequenza molto bassa; per questo è possibile catturare solo 5 campioni di ogni raggio che attraversa il volume della scena facendo leva sui pixel shader. A seconda della modalità di utilizzo di questo effetto, si possono ottenere nebbie umide (vedi nel Canyon Flight) o tempeste di neve (nel Deep Freeze).
Infine la dispersione della luce. Come sappiamo, questo effetto è oggi consentito solo sui più sofisticati software di rendering 3D mediante complessi algoritmi di ray-tracing, ma vi sono diversi trucchi per simularne l’effetto in modo da rendere l'applicativo più efficiente. Nei test HDR, tale risultato è ottenuto mediante la valutazione dell’angolo di incidenza tra il raggio dell’osservatore e la normale alla superficie al fine di avere una stima dello spessore di un oggetto, parametro indispensabile per questo effetto grafico. Con una leggera manipolazione software del programmatore, si ottiene un risultato molto realistico e poco gravoso dal punto di vista computazionale.
Non potevamo dimenticare il calcolo dei punteggi parziali e finale: