La grafica di Risen: intervista a Philipp Krause


Risen: bellissima grafica anche senza DirectX 10

I creatori della serie di Gothic, i Piranha Bytes, stanno momentaneamente lavorando al loro nuovo Action-RPG: Risen. PC Games Hardware riporta le prime informazioni tecniche in merito alle DirectX 10, caricamento in streaming e supporto multi-core in questa intervista a Philipp Krause. Risen viene sviluppato al tempo stesso per PC e per XBox 360 e vedrà la luce nel 4° trimestre del 2009.

PCGH: Gli screenshot pubblicati finora rendono evidente che Risen, in confronto a Gothic 3, può mettere in mostra una grafica nettamente migliore. Quindi, in particolare, quali sono le feature grafiche che Risen offre e che invece erano assenti nel motore di Gothic 3?
Philipp Krause: Tra le feature grafiche posso enumerarvi cose come il sempre apprezzato Screen-Space-Ambient-Occlusion e il Cascade / Parallel-Split-Shadow-Mapping, ossia la proiezione di ombre multiple. In Gothic 3 l’intera meccanica delle ombre funzionava in maniera lievemente diversa ed a volte si potevano notare alcuni errori di natura grafica. Nel caso delle ombre del paesaggio ad esempio, avevamo una Shadow-Plane (il piano sul quale vengono proiettate le ombre) che veniva spostata attraverso tutto il mondo di gioco. Al momento abbiamo sostituito questa tecnica col Variant-Shadow-Mapping per il terreno. Grazie a questo avremo meno “acne delle ombre”, ossia ombre con scalettature evidenti, e possiamo sfruttare il soft-shadowing. Per tutte le ombre restanti abbiamo optato invece per il Cascade-Shadow-Mapping.

Inoltre, a differenza di Gothic 3, stavolta abbiamo integrato una pipeline grafica Full-HDR, con tutti gli effetti di post-processing del caso. Di questa pipeline fa parte anche il sistema di Tone-Mapping, ossia l’Adaptive-Tone-Mapping, che adatta il tono dell’immagine renderizzata alla sua luminosità. Opzionalmente abbiamo di nuovo l’effetto di sfocatura sulla distanza (Depth of field), sebbene sia stata realizzata da zero. Il vecchio meccanismo del DoF in Gothic 3 era fin troppo complicato e non creava un’immagine troppo convincente. Abbiamo reimplementato tutto da capo e di conseguenza il tutto ha un aspetto molto migliore.
PCGH: Risen avrà anche il supporto alle DirectX 10?
Philipp Krause: No.
PCGH: Qual è il motivo per cui rinunciate al supporto di queste librerie?

Philipp Krause: In realtà non c’è nessun motivo concreto. È una questione di rapporto tra costi ed utilità. In pratica, il costo dell’implementazione sarebbe relativamente alto, mentre invece l’utilità della presenza delle DirectX 10 sarebbe relativamente minore. Per questo motivo principalmente abbiamo deciso di puntare sulla versione 9, sebbene naturalmente siamo arrivati ad un punto in cui le DirectX 9 sono una tecnologia in fase di abbandono e quindi prima o poi si avrà un passaggio alla nuova versione. Per Risen tuttavia tutto questo non è ancora possibile, perché significherebbe dover implementare il tutto per entrambe le librerie e questo comporterebbe un impegno che non possiamo permetterci al momento.
PCGH: Uno dei motivi per gli scatti che piagano Gothic 3 è il caricamento in streaming dei dati (Seamless World), per cui la geometria e le texture del mondo di gioco vengono caricate in background. Come abbiamo scoperto successivamente, la tecnologia non ha mai veramente funzionato correttamente, anche in presenza di moltissima memoria – e Gothic 3 ne richiedeva veramente molta. Avete provato a risolvere il problema in Risen e ci siete riusciti? Quale tecnica avete adottato stavolta?

Philipp Krause: Abbiamo nuovamente puntato sul principio del Seamless World, quindi anche in questo gioco non si avranno zone di caricamento. Ma lo streaming è stato realizzato assolutamente a partire da zero ed in più nel nuovo sistema non verranno mai caricate intere zone del mondo in memoria. Quello era uno dei problemi principali in Gothic 3, oltre al fatto che il caricamento delle risorse – geometria o texture – non era stato realizzato in maniera efficiente. In Risen invece abbiamo risolto il tutto in modo tale che, almeno in teoria, esiste un secondo thread dedicato solamente a svolgere i compiti di input/output e quindi di accedere al hard disk.
Le risorse grafiche stesse poi vengono create nel thread d’esecuzione principale. Questa è una necessità legata principalmente al funzionamento delle DirectX: se si eseguono in modalità multi-threading si ha una notevole perdita di prestazioni, quindi il nostro sistema dovrebbe garantire che il tutto funzioni con la quantità minore di scatti possibile. Inoltre abbiamo introdotto anche delle soluzioni speciali per alcune tipologie di risorse, che dovrebbero concorrere a rendere l’esperienza di gioco migliore. Il formato dei file che vengono letti è stato modificato ed è ora organizzato in maniera molto più efficiente, in modo tale che possano essere letti direttamente invece di dover attraversare dei complessi meccanismi di conversione. Queste sono le principali migliorie che abbiamo introdotto per ottimizzare le prestazioni del motore grafico.

Galleria screenshot dall’articolo originale

Traduzione in italiano di Lck.


Non è possibile scrivere nuovi commenti in questo articolo.