Orario: 21-05-2013, 18:58 Benvenuto ospite! (Log inRegistrati)


Rispondi 
MegaTexture
Autore Messaggio
enigma
Posting Freak

Messaggi: 1,871
Registrato: Nov 2009
Offline Offline
#1 MegaTexture
0
Mi è tornata in mente questa tecnica vedendo il video presentato da Carmack. Non ci ho mai sbattuto la testa, cioè non mi sono mai informato più di tanto su questa tecnica.
Esattamente come funziona? E al giorno d'oggi è utilizzata (escludendo ovviamente id Tech 4 e 5)?

Edit: che poi in id Tech 5 si parla anche di Virtual Texturing, come step successivo.

Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
(Questo messaggio è stato modificato l'ultima volta il: 14-08-2010 17:32 da enigma.)
14-08-2010 17:29
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
mude
Arrested Development

Messaggi: 6,998
Registrato: Nov 2008
Offline Offline
#2 RE: MegaTexture
0
quoto interessa anche a me, ne stavo discutendo con un altro volontario alla presentazione di rage, ma non ha avuto il tempo di spiegarmi come funzionano in maniera decente.

Eclipse???

.: DevLog | Twitter Pinaster Games | Twitter Personale :.
[Immagine: BBh5DKU.png] Beta
21-08-2010 10:52
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,272
Registrato: Sep 2004
Offline Offline
#3 RE: MegaTexture
0
non si conosce l'implementazione di ID nel dettaglio ma detta proprio in breve si ha su disco una texture enorme e una struttura dati che la divide in pagine (in pratica quadrati di texture), un po' come avviene per la memoria virtuale su windows.

Si calcola (anche renderizzando la scena) in quale porzione di terreno siamo e cosa si vede e poi viene fatto uno stream dalle relative pagine, che avviene in background.
Le pagine caricate vengono messe in memoria su un texture atlas (in pratica una grossa texture con tutti i pezzi di texture che servono uno dopo l'altro), poi viene calcolato come mappare il terreno in base al texture atlas, che viene poi effettivamente usato come texture invece di quella enorme.

In pratica si caricano pezzi di texture in background mentre si gioca e man mano vengono messi su questa texture atlas e vengono calcolate le uv giuste per texturizzare il terreno.

In teoria è possibile usare la tecnica anche per modelli complessi, ma è pensata per i terreni ed è più semplice usarla lì.
Del resto in ambienti chiusi si può benissimo fare lo streaming di texture e geometria come si fa normalmente.

Da notare che il fatto che si usino pagine virtuali e si aggiorni costantemente in background il texture atlas non è permesso il "teletrasporto" istantaneo nella mappa di gioco, perchè in quel caso bisognerebbe probabilmente ricaricare tutte le pagine da disco e ricreare il texture atlas da zero.
E' una tecnica che funziona bene con movimenti lenti sul terreno, va benissimo anche per i simulatori di volo comunque visto che il terreno si muove comunque lento sotto e si possono usare almeno teoricamente infiniti livelli di LOD della texture

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
(Questo messaggio è stato modificato l'ultima volta il: 21-08-2010 12:45 da Eclipse.)
21-08-2010 11:25
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
kunos
Gatto Incavolato

Messaggi: 2,355
Registrato: Jul 2010
Offline Offline
#4 RE: MegaTexture
0
praticamente... una clipmap?

Stefano Casillo

www.assettocorsa.net
www.netkar-pro.com
Twitter
[Immagine: acsign.jpg]
21-08-2010 12:06
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
enigma
Posting Freak

Messaggi: 1,871
Registrato: Nov 2009
Offline Offline
#5 RE: MegaTexture
0
Ma oltre ad id Tech, è una tecnica correntemente utilizzata anche da altri?

Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
(Questo messaggio è stato modificato l'ultima volta il: 21-08-2010 12:15 da enigma.)
21-08-2010 12:14
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,272
Registrato: Sep 2004
Offline Offline
#6 RE: MegaTexture
0
(21-08-2010 12:06)kunos ha scritto:  praticamente... una clipmap?


il principio è quello, più che una clipmap è un sistema di gestione di clipmaps, invece di tagliare e aggiornare un singolo pezzo fa il paging e usa un texture atlas che combina tutte le clipmap insieme

(21-08-2010 12:14)enigma ha scritto:  Ma oltre ad id Tech, è una tecnica correntemente utilizzata anche da altri?

Boh, forse Crytek.. anche se qui dovrebbe dirci di più il Corbetta, Crysis 2 è in ambiente urbano perciò magari non usano niente del genere. Comunque è una tecnica che sicuramente sarà utilizzata sempre più di frequente in futuro

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
(Questo messaggio è stato modificato l'ultima volta il: 21-08-2010 12:47 da Eclipse.)
21-08-2010 12:41
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
mude
Arrested Development

Messaggi: 6,998
Registrato: Nov 2008
Offline Offline
#7 RE: MegaTexture
0
c'è una discreta colonia italiana in crytek Rox

.: DevLog | Twitter Pinaster Games | Twitter Personale :.
[Immagine: BBh5DKU.png] Beta
(Questo messaggio è stato modificato l'ultima volta il: 21-08-2010 14:21 da mude.)
21-08-2010 14:20
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
sheldoncooper
Member

Messaggi: 69
Registrato: Nov 2010
Offline Offline
#8 RE: MegaTexture
0
Mi incuriosisce parecchio il megatexture.
A parte gli aspetti tecnici voi pensate che questa soluzione (o simili) sia destinata a prender piede in futuro o si tratta di un binario morto?
A quanto ho capito da alcuni video il modo in cui gli artisti lavorano sulla mappa è abbastanza tradizionale ma non devono preoccuparsi dell'occupazione di memoria e possono utilizzare decal e aggiungere dettagli senza problemi. Pensate che possa dare vantaggi tangibili dal punto di vista artistico?
Una domanda tecnica, ho letto che le texture in rage sono in formato jpeg xr, secondo voi le texture vengono decompresse e poi ricompresse in S3tc prima di essere caricate in memoria video?
(Questo messaggio è stato modificato l'ultima volta il: 28-06-2011 20:48 da sheldoncooper.)
28-06-2011 20:46
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
fatto
T_T

Messaggi: 991
Registrato: May 2009
Offline Offline
#9 RE: MegaTexture
0
eclippo aveva postato un pdf che ne parlava fatto dalla lionhead se non ricordo male Sisi
parlava anche dei vari problemi che sorgono (spazio in primis) e come loro li avevano risolti Sisi

Marco Fattorel ╯°□°)╯ ︵ ┻━┻
28-06-2011 20:57
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,885
Registrato: Nov 2008
Offline Offline
#10 RE: MegaTexture
0
A parte il necroposting.

E' un sistema veramente figo che IMO prenderà piede, perchè è una di quelle innovazioni che diminuiscono i costi lato artist, specie se lo unisci con una roba del genere.
Così l'artist scolpisce la roba in zbrush, la disegna, e puf.
Lightmaps automatiche e tutto istantaneamente ingame, senza nemmeno una ripetizione.

Sembra una grande innovazione comunque, ma si chiama memoria virtuale, cioè l'idea di mappare in memoria "vera" solo la parte utilizzata di un più ampio "spazio di memoria virtuale" che può essere grande anche diversi terabyte.
I sistemi operativi ad esempio lo usano da sempre. Il "paging" è questo Ahsisi

il problema ad oggi è che le GPU non sono proprio bravine con la memoria virtuale... tutti gli accessi sono strettamente diretti e tutti i puntatori presenti nel programma non sono logici ma fisici: in VRAM non puoi avere pagine, non puoi spostare in giro blocchi di texture.
Ad oggi tutta questa roba la fanno con lo streaming dinamico da CPU, dove la CPU piazza le pagine dove la GPU se le aspetta, invece che avere GPU intelligenti che fanno il lookup a costo 0.
Quindi la demo di Lionhead di cui sopra stentava a 30 fps, e Rage beh... l'ha fatto Carmack Asd

Prima o poi però arriverà anche a noi comuni mortali... ad esempio ho letto che Nvidia pianifica di inserire una MMU nelle sue schede video Sisi

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
(Questo messaggio è stato modificato l'ultima volta il: 29-06-2011 0:46 da _tommo_.)
29-06-2011 0:45
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,179
Registrato: Sep 2010
Offline Offline
#11 RE: MegaTexture
0
..la notte dei threads viventi 8P

Ricordo una demo di virtual textures fatta dalla SGI al Siggraph 97..

Il concetto ed implementazione di virtual textures e' abbastanza vecchio.. ..ma con il rinnovato interesse nel campo dei giochi e' probabile che l'hardware cominci a muoversi in quella direzione.
In ogni caso non sono sicuro che dal punto di vista di authoring ci sia tutto questo gran guadagno.

Textures virtuali hanno delle applicazioni specifiche.. ma quando si tratta di modellare cose che non siano paesaggi estesi, la texture a dimensione indefinita comincia a non essere cosi' necessaria.

Quando si tratta di paesaggi sterminati comunque c'e' anche il procedurale che e' sicuramente meno pesante di compressione & streaming.

Una cosa che trovo piu' utile al livello generico (e che ho implementato in passato) sono le texture decomprimibili con LOD.
Ovvero i grafici possono usare textures anche da 8192x8192 ..ma se quella texture ricopre uno spazio relativamente piccolo su schermo, la texture si puo' decomprimere al volo direttamente a 256x256 (senza neanche bisogno di mipmaps).
Cosi' si riusciva a renderare in tempo reale un paio di personaggi su schermo, con circa 2-3GB di textures per personaggio. Ma con molto peso sulla CPU (o eventuale GPGPU in grado di decomprimere un formato del genere).

..comunque tutte cose comuni quando si va a vedere i sistemi di rendering offline.

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
29-06-2011 3:31
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
fatto
T_T

Messaggi: 991
Registrato: May 2009
Offline Offline
#12 RE: MegaTexture
0
se non ricordo male la demo della lionhead girava sull'xbox però Sisi
probabilmente un pc potrebbe avere meno "stenti" a farlo girare Sisi

Marco Fattorel ╯°□°)╯ ︵ ┻━┻
29-06-2011 15:22
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
sheldoncooper
Member

Messaggi: 69
Registrato: Nov 2010
Offline Offline
#13 RE: MegaTexture
0
Grazie mille delle informazioni.

http://www.nvnews.net/vbulletin/showthread.php?t=70056
Leggendo questa intervista mi è sembrato di capire che il virtual texturing consiste nell'utilizzare texture di dimensione maggiore di quelle che possono essere gestite da opengl o directx facendo in mano di caricare effettivamente in memoria solo la porzione che serve. Ma a quanto pare il virtual texturing è utilizzato già ora anche dell'unreal engine. Il megatexturing del tech5 a quanto ho capito è un caso particolare di virtual texturing dato che usa una texture enorme che copre tutta la mappa. Mi sbaglio o ho capito bene?
La cosa che mi interessa capire è quanto possa incidere sul lavoro degli artisti la possibilità di non avere texture ripetute.
http://www.youtube.com/watch?v=b4ieFw2s7Fw

Ad esempio in questo video carmack continua ad aggiungere decal sulla texture principale. Questi decal vengono fusi tutti assieme in un'unica texture? Potenzialmente un artista potrebbe passare un mese ad aggiungere dettagli senza preoccuparsi della memoria? E' importante questo fatto? Negli altri engine pesano parecchio le limitazioni sulle texture?
(Questo messaggio è stato modificato l'ultima volta il: 29-06-2011 19:50 da sheldoncooper.)
29-06-2011 19:45
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,179
Registrato: Sep 2010
Offline Offline
#14 RE: MegaTexture
0
(29-06-2011 15:22)fatto ha scritto:  se non ricordo male la demo della lionhead girava sull'xbox però Sisi
probabilmente un pc potrebbe avere meno "stenti" a farlo girare Sisi

Da un altro lato.. tutte queste cose dipendono molto dall'hardware sottostante.. quindi tradizionalmente la console si presta meglio perche' l'accesso alle risorse piu' diretto ed i tempi sono meglio stabiliti.
(Xbox 360 passa via Direct3D, ma comunque la performance e' relativamente stabile cosi' come la mappa di memoria).

Comunque, come per tutte le demo, probabilmente c'e' molto altro lavoro prima che il tutto sia utilizzabile con successo in un gioco.

(29-06-2011 19:45)sheldoncooper ha scritto:  Grazie mille delle informazioni.

http://www.nvnews.net/vbulletin/showthread.php?t=70056
Leggendo questa intervista mi è sembrato di capire che il virtual texturing consiste nell'utilizzare texture di dimensione maggiore di quelle che possono essere gestite da opengl o directx facendo in mano di caricare effettivamente in memoria solo la porzione che serve. Ma a quanto pare il virtual texturing è utilizzato già ora anche dell'unreal engine. Il megatexturing del tech5 a quanto ho capito è un caso particolare di virtual texturing dato che usa una texture enorme che copre tutta la mappa. Mi sbaglio o ho capito bene?

Virtual texture in pratica vuol dire che c'e' un sistema piu' o meno trasparente di cache che permette di richiedere texture da disco quando necessaria.
E' un problema di caching e quindi richiedere un po' degli accorgimenti e dei limiti prestabiliti.

MexaTexture in pratica suddivide il terreno in riquadri o "isole" che sono compressi simil-JPEG (lossy e basato su DCT) e letti su disco quando il player ci si avvicina.
Il limite nella implementazione in id Tech 5 sta' nel fatto che e' prestabilito che il terreno apparira' ad una certa velocita'.. e credo MegaTexture sia almeno inizialmente tarato su Rage.. ovvero un gioco dove si corre in macchina ad una velocita' limite.

Per questa ragione salta molto fuori la parola "streaming".. perche' i dati vengono letti in maniera relativamente sequenziale (sai la direzione della macchina, per cui leggi il terreno che sai piu' o meno apparira nei prossimi secondi).
Questo perche' ovviamente se la texture e' su disco, deve pur sempre essere letta in maniera relativamente lenta (comprimere in un formato lossy aiuta molto, e buona parte di MegaTexture si basa sul fatto che le texture sono compresse).

Quello che sicuramente tenta di fare id Tech 5 e' virtualizzare le textures in maniera piu' intima e trasparente possibile.
Ad esempio, sia su PC che su iPhone (vedi il paragrafo Technical Geek Details) si basa su il sistema operativo per mappare un area di memoria virtuale su disco e lasciare che sia l'OS a schedulare lo streaming di dati da disco a RAM (ma non VRAM purtroppo).

Citazione:Ad esempio in questo video carmack continua ad aggiungere decal sulla texture principale. Questi decal vengono fusi tutti assieme in un'unica texture? Potenzialmente un artista potrebbe passare un mese ad aggiungere dettagli senza preoccuparsi della memoria? E' importante questo fatto? Negli altri engine pesano parecchio le limitazioni sulle texture?

Dipende dal tipo di gioco.. sicuramente ne beneficiano di piu' giochi all'aperto.. e credo che quasi tutti i piu' famosi usano una forma di streaming e/o compressione.

Come ho gia' accennato, secondo me e' piu' comunque voler avere texture molto grandi ma che si vedono tutte nello stesso frame.
In questo caso c'e' il paper del 1990 della Pixar "Texture on demand" (PDF).. che appunto organizza le texture in maniera piramidale (a risoluzioni multiple), oltre che suddividerle per blocchi o "isole" come fa MexaTexture ed altre tecniche pensare per spazi variabili piuttosto che dettagli variabili.

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
(Questo messaggio è stato modificato l'ultima volta il: 30-06-2011 3:03 da TheCrib.)
30-06-2011 2:38
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: