giovedì 30 giugno 2011

30 gloriosi anni di 3D

Qualche giorno fa mi è capitato di leggere la storia di un appassionato d'informatica che ripercorreva gli anni della sua originaria esperienza con le macchine Commodore. Egli nel trattare l'evoluzione della "specie" ricorreva non solo alla descrizione dell'hardware, del software e dei vari Giochi d'annata, ma in particolare riferendosi a una loro piccola categoria: il videogame in Grafica 3D.
Ormai da anni per videogame si intende genericamente qualcosa di simile a questo:


Beh a beneficio dei più giovani in ascolto nati in piena epoca Playstation, diciamo che il gioco in grafica 3D esiste da quasi 30 anni!
Ebbene si, il fascino di un ambiente 3D navigabile è stato forte fin dagli albori degli home computer dove una forte dose d'immaginazione permetteva ai ragazzini dell'epoca di vedere un castello in 5 parallelepipedi, e mondi fantastici in poche linee... Questo video illustra abbastanza bene ciò che intendo dire.

Quindi è possibile compiere un interessante viaggio partendo dal glorioso C=64 fino a giungere alle attuali tecnologie, soffermandoci maggiormente sull'iniziale evoluzione della grafica 3D in tempo reale.

Un'immagine come la seguente oggi risulta quasi incomprensibile:


Questa è infatti tratta da un primordiale gioco 3D facente uso della tecnica grafica chiamata wire frame (fil di ferro). E anche in movimento la sua visione non migliora tantissimo in quanto la struttura di un elementare poliedro in wire frame, rappresentato su uno schermo bidimensionale (senza quindi una percezione di profondità), può essere vista in modo distorto o con un'orientazione falsata, e basta infatti osservare qualche secondo questa immagine per vederla "cambiare" da un cubo a un solido non simmetrico.

 
La grafica in wire frame era la più semplice, immediata e leggera soluzione in assoluto, essa infatti comportava il solo calcolo della posizione su schermo dei vertici di un poliedro mediante un algoritmo di facile programmazione basato sulle regole del disegno prospettico. Un oggetto 3D era definito quindi come l'insieme delle coordinate dei suoi vertici sapendo ad esempio che un cubo (8 vertici) avrebbe comportato il disegno di 12 linee spigoli.
Per ovviare a uno scarso senso di realismo venne successivamente introdotta la grafica poligonale solida, in cui le superfici degli oggetti 3D venivano "riempite" e rappresentate con dei quadrilateri o triangoli bitmap in 2D, disegnati in modo da nascondere all'osservatore le facce dietro a quelle immediatamente visibili...




Come si vede nonostante la risoluzione e il numero di colori restasse invariato trattandosi della medesima macchina, il C=64, l'immagine appare più chiara e comprensibile. Il prezzo da pagare era però la notevole lentezza dell'intero processo di rendering, infatti con un processore di circa 1Mhz era possibile sperare in un frame rate tra 1 e 2 fps... una tragedia si potrebbe pensare oggi, ed invece essendo a quel tempo delle tecniche nuove e moderne lasciavano sbalorditi indipendentemente dalla loro lentezza, ed era possibile giocarci tranquillamente.
Per tanto il carico del lavoro in questo genere di elaborazione prospettica di un "mondo" tridimensionale gravava prevalentemente sull'unica componente del computer deputata ad effettuare i calcoli necessari, la CPU.

Con il passaggio ai 16 bit di Amiga e alla famiglia di Cpu Motorola 68000 con un clock di 7Mhz si iniziò a vedere una grafica 3D molto più efficace e dettagliata, grazie anche all'ottimizzazione delle varie tecniche fino ad allora studiate e all'unione della grafica poligonale con i classici Sprite e Bitmap gestiti dai coprocessori (Video 1, Video 2)

Quindi tra gli obiettivi raggiunti grazie alle nuove tecnologie introdotte da Amiga, avevamo un frame rate più alto, un maggior dettaglio, e l'inizio di una fusione tra Grafica 3D e Bitmap che avrebbe da li a qualche anno creato una svolta epocale. Infatti negli anni successivi il crescente interesse per questo tipo di giochi rispetto ai classici 2D ancora dominanti, trovò il supporto di Cpu sempre più potenti... sino a veder nascere delle schede di espansione appositamente progettate per l'accelerazione grafica 3D, segnando così l'esordio di quel binario evolutivo che avrebbe condotto direttamente a quello che oggi ben conosciamo.

Per aumentare il dettaglio dei modelli e dell'ambiente 3D in grafica poligonale solida non si pensò solo ad incrementarne la complessità con un numero maggiore sia di vertici che delle relative superfici (poligoni), ma iniziarono a saltar fuori una serie di soluzioni ingegnose e molto diverse tra loro.
Un primo passo fu quello d'introdurre una fonte luminosa e definire il colore delle superfici degli oggetti in grafica poligonale solida anche in considerazione di questo nuovo parametro (Video)

In seguito all'introduzione di semplici sistemi d'illuminazione si adottò anche un algoritmo più complesso e d'effetto per arrotondare gli spigoli dei modelli 3D conferendo ad essi un'ombreggiatura/sfumatura abbastanza realistica, chiamata Gouraud Shading:


Una diversa evoluzione ma di più grande impatto fu infine il texture mapping, tecnica con la quale ai poligoni veniva "cucita" un'immagine 2D (texture)  e quindi mostrata coerentemente in prospettiva dando l'illusione di un dettaglio molto superiore e fluidamente in moto.


Queste nuove tecnologie grafiche 3D in real time ebbero un'impennata evolutiva grazie soprattutto ai Pc X86, alle loro CPU più potenti e al loro sistema grafico Vga che adottava una modalità Chunky diversa da quella Planar di Amiga (più dispendiosa per questo genere di lavoro...in rete esistono varie e dettagliate spiegazioni tecniche sull'argomento).
Quindi la mancata introduzione di un nuovo chipset, che era comunque in progettazione da C=, tagliò notevolmente le gambe ad Amiga... che tuttavia per alcuni anni, grazie all'ausilio di schede acceleratrici con processori 68k più potenti, ha comunque potuto godere di alcuni titoli 3D molto famosi tra gli ex amighisti come Alien Breed 3D e Breathless; ma niente di lontanamente paragonabile alla rivoluzione che ormai era in atto sia sui Pc che nelle Console da gioco casalinghe (Saturn, Psx, N64).
L'inizio di una deriva tecnologica dovuta alla mancanza di un casa madre comportò per Amiga l'immediata perdita del ruolo, economicamente cruciale, di piattaforma simbolo per il gaming e quindi la migrazione di gran parte di utenza (e soprattutto sviluppatori) verso altri lidi. La successiva possibilità di poter montare anche su Amiga delle schede grafiche e Cpu PPC e nonché integrando nel sistema operativo AmigaOs 3.x opportuni driver e routine software per sfruttarne l'accelerazione 3D, non servì a colmare un Gap che al contrario aumentava costantemente sino a divenire rapidamente abissale.

L'emulazione è il metodo che più consiglio per esplorare oggi il 3D più avanzato programmato per Amiga, e in particolar modo l'emulatore gratuito per Windows WinUae che grazie a una compilazione Jit emula una Cpu 68k diverse decine di volte più veloce dell'esecuzione reale sulle cpu 68k più potenti come il 68060.
Dove le macchine C= si arrestarono iniziò quindi una rapidissima rincorsa tecnologica all'effetto grafico 3D più realistico e all'hardware più potente, fino all'introduzione del pixel shader e a un resa finale tendente al fotorealismo come quella dei videogiochi attuali.

martedì 21 giugno 2011

Standing on the Shoulder of Giants



Per molto tempo il sistema operativo di Amiga venne erroneamente identificato con il nome del suo desktop Workbench, e ciò a partire dalle iniziali versioni 1.x fino all'ultima 3.0 antecedente al fallimento della grande azienda produttrice.
Negli anni successivi tale Os, il cui sviluppo passò ad altre mani, iniziò a chiamarsi in modo più corretto AmigaOs arrivando sino alla definitiva versione 3.9 dedicata all'originale architettura 68K e capace comunque di  soddisfare le esigenze di chi per un bel po' di anni non volle abbandonare l'amata piattaforma espandendola con cpu più potenti, hard disk più capienti e quantitativi maggiori di memoria; per infine migrare inevitabilmente in piattaforme mainstream molto più evolute.
Ma il Workbench (Video) in realtà era un'applicazione del sistema operativo richiamabile da Shell con il comando loadwb, la cui principale funzione era quella d'interfacciare l'utente alla macchina tramite un intuitivo sistema di finestre e icone, con le quali avviare anche più applicazioni contemporaneamente, spostare o copiare file, e tante altre di quelle azioni che oggi noi tutti compiamo sui nostri personal computer con estrema naturalezza. Il tutto già nell'ormai lontanissimo 1985.
Negli ultimi giorni l'attenzione dei nuovi clienti e supporters di C=  dopo la raggiunta fase di commercializzazione, inizia inevitabilmente a concentrarsi sul venturo CommodoreOs, che pur essendo inizialmente destinato al C64x dovrà logicamente ispirarsi al Workbench di Amiga (il cursore lampeggiante sotto il Ready del C=64 potremmo rivederlo in fase di emulazione) e infatti da alcune recenti dichiarazioni dell'intraprendente e sagace CTO di C=Usa traspare la promessa di un ambiente desktop che rappresenti un'evoluzione diretta e moderna del Workbench seppur in esecuzione su un sistema operativo molto diverso qual è Linux.
Inizialmente il C=Os avrebbe dovuto proprio chiamarsi Workbench 5.0, ipotesi saggiamente accantonata in quanto il diritto di sfruttamento di tale nome è in mano a terzi.
Ma nonostante questo cambio di rotta all'inizio molti notarono subito quel 5.0; e come detto poc'anzi la numerazione degli AmigaOs 68k si fermava a 3.9.
L'intento era proprio quello di scavalcare idealmente (in quanto la natura dei due os è totalmente diversa) l'AmigaOs 4.x scritto per l'architettura PowerPC...
Questo iniziale approccio di C=Usa alla questione dell'os da inserire nei nuovi Amiga, e in parte a ragione, venne visto come una provocazione diretta e dissacrante a una scena che di per se non navigava (né ora naviga)  in entusiasmanti acque, ed è da considerarsi il peccato originale che ancora oggi separa i due ambienti C=Usa e AmigaOs da una cortina di fuoco :-)
Tuttavia dopo ormai ben 10 mesi dalla comparsa di C=Usa nella scena, la vera natura dello scontro oggi verte sull'irresistibile attrazione che questa ha esercitato su una minoranza di persone che aveva il semplice diletto di seguire qualcuna delle tante sfaccettature dell'hobbystica scena Amiga...
C=64 e Amiga sono nomi che hanno scritto con inchiostro indelebile pagine grandiose della storia informatica, ma dopo il fallimento Commodore milioni di utenti si trovarono purtroppo con nient'altro che una matita destinata a divenire nel tempo sempre più spuntata, e in questa metafora la piccola parte "eretica", oggi interessata all'opera di C=usa, è la gomma arancione all'altra estremità della matita che inizia a cancellare interi anni di un'esperienza ritenuta del tutto fallimentare...
E' il giunto il momento di ragionare in ottica moderna e costruttiva, di provare a spingere un nuovo progetto radunando forze fresche, entusiasmo, menti giovani, creando una nuova comunità capace di ridar vita a una filosofia che non era affatto legata ad un sistema operativo... ma piuttosto all'immagine del personal computer come formidabile strumento per fare.
Nei più significativi post del forum commodore-amiga.org si cerca proprio di definire questo nuovo e semplice assetto... e in quest'ottica viene inquadrato il nuovo C=Os linuxiano :-)
Arrampicarsi quindi sulle spalle dei Giganti? Ma quanto questi giganti attingono nella catena evolutiva informatica anche ad Amiga?

In ogni caso la questione Os su una macchina x86 non è certo un problema, no... non parlo di Windows (ovviamente installabile nelle macchine C=Usa), ma di quello che molti considerano il vero erede di AmigaOs, "Aros" il cuore pulsante della nostalgica scena.

Ma questa, per il momento, è un'altra storia...

sabato 18 giugno 2011

Mission Complete

Post insolitamente laconico in cui mi basta sottolineare e con gioia che in soli nove mesi Commodore Usa partendo da un'idea apparentemente folle è giunta alla sua attuazione:

produzione e commercializzazione del C=64x





Il Manuale rilegato ad anelli come l'originale!




The Unboxing
















mercoledì 15 giugno 2011

Dulcis in fundo... (Si è Lui)

La prima immagine in assoluto del nuovo Commodore 64 integralmente assemblato con tutte le parti definitive, cliccare per ingrandire




Iniziamo delle primissime valutazioni paragonando l'oggetto reale con gli interessantissimi rendering mostrati per la prima volta svariati mesi fa a progettazione ultimata e tutt'ora esposti nel sito a scopo promozionale:


E' indiscutibile la qualità del lavoro di C=Usa nel ricreare il Commodore=64, dal confronto notiamo subito che l'impegno tecnico ed economico per poter riproporre all'utente finale l'esatto colore dell'amatissimo biscottone (argomento trattato nei primi post del blog) ha dato i suoi frutti, con l'oggetto reale molto più piacevole alla vista dell'ottimo rendering; chiunque guardi la foto reale non può che pensare: "Si, è Lui... lo voglio!"



Le spedizioni dei modelli venduti inizieranno in questa settimana