braian ha scritto:Scusami, ma non sono d'accordo...
Devi sapere che l'HIDDEN SURFACE REMOVAL (HSR) è una tecnica grazie alla quale vengono renderizzati solamente i poligoni realmente visibili su schermo
L'HSR e' un processo (implementabile con diverse tecniche) per determinare quali superfici sono realmente visibili da un punto di vista, è un termine molto generico, la sua funzione è solamente quella di produrre un'immagine corretta, la granularità di tale operazione non è per poligono ma dev'essere per pixel, ci saranno sempre casi in cui devi renderizzare N pixel di un poligono, quindi non renderizzi solamente i poligoni realmente visibili.
Esistono diverse tecniche per fare quello che è stato descritto sopra, la piu' comune ed usata, al giorno d'oggi, è usare uno Z-Buffer.
Lo Z-Buffer memorizza la coordinata Z di ogni pixel in un buffer che è grande quanto lo schermo, ogni volta che si renderizza un nuovo poligono si confronta la Z del poligono che stiamo renderizzando con quella presente nello Z-Buffer, se il valore è maggiore, o minore (a seconda del sistema di coordinate che stiamo usando) il pixel viene scritto nel framebuffer e poi la z del pixel viene aggiornata nello Z-Buffer.
Forward renderers (o Immediate renderers) evoluti come sono ora i chip di ATi e nVidia implementano tecniche di rigetto dei pixel molto efficenti e molto veloci, basta pensare che Xenos (chip grafico di XBox 360) è capace di scartare 64 pixel per colpo di clock, mentre il modello di punta della serie 8800 di nVidia (G80) è capace di scartarne ben 256.
Esegure il sorting (l'ordinamento) semplicemente anche a livello di mesh (invece che di poligono), al giorno d'oggi, riduce ampiamente l'overdraw (overdraw = renderizzare una o piu' volte lo stesso pixel), quando parlo di eseguire il sorting intendo di renderizzare prima gli oggetti davanti agli altri (Front-To-Back sort) facendo questo la scheda non inizierà nemmeno a calcolare lo shading dei pixel che vengono scartati in base alla loro componente Z.
I chip PowerVR implementano quello che si chiama "Deferred Rendering", ovvero invece di renderizzare subito i poligoni come fanno le altre schede "catturano" tutta la scena per poi processarla quando il gioco invia il comando di fine scena.
Sebbene il tutto sembri idilliaco, come dicevo nel post precedente, questo discorso ha i suoi vantaggi, ma anche i suoi svantaggi.
Al giorno d'oggi ci sono giochi che riescono a renderizzare anche 3 milioni di poligoni a frame, non al secondo, usando molti interpolatori la grandezza della struttura delle informazioni di un triangolo può arrivare anche a 100 byte, moltiplicato per 3 milioni questo da solo fa circa 286MB, e questo solamente per catturare la scena.
Esempio lampante di questo problema venne fuori su PC, quando nei driver per le schede KYRO (con chip PowerVR) i programmatori fuorono costretti a implementare lo scene capture a piu' passi, perché alcuni giochi arrivavano ad usare piu' memoria, per la geometria, di quanto la scheda potesse catturare, ovviamente questo andava a ridurre le prestazioni.
Mentre le altre console di solito applicano il rendering e gli effetti a tutta le scena, comprese quindi parti che nascoste da altri oggetti su schermo non sono mai visibili
Come dico sopra con un'accurata gestione della scena è possibile evitare di renderizzare piu' volte la maggior parte dei pixel che non sono visibili.
il Dreamcast ha la capacità di calcolare quali oggetti sono nascosti, risparmiando quindi risorse hardware non renderizzandole
Spendendo risorse hardware e di memoria per fare questo, come spiego sopra.
Anche l'Xbox e il Gamecube hanno piccole integrazioni di questo tipo, ma nessuna delle 128 bit come il Dreamcast (e il POWERVR MBX) implementa un HSR così evoluto.
HSR "evoluto" ma non gratis.
Grazie a questa tecnica aumenta notevolmente la possibilità di costruire scene complesse anche oltre quello che è il limite della console. Il POWERVR MBX è accreditato di 3,5 milioni di poligoni al secondo, mà in

Ci sono tipi di giochi in cui un TBDR come i PowerVR probabilmente avrà sempre un po' di vantaggio su un immediate renderer (anche se questo sta renderizzando front-to-back) mentre ci sono altri tipi di giochi in cui in TBDR vedrà ridotta di molto l'efficienza visto che spenderà tempo nell'HSR "avanzato" per poi dover renderizzare comunque tutto quello che è visibile (esempio i simulatori di volo).
Se mettiamo da parte facili sentimentalismi e ci informiamo (internet è un'ottima fonte di informazioni) vedremo che non tutto è rose e fiori per nessun tipo di architettura.