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:
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 bitmap in 2D, disegnati in modo da nascondere all'osservatore le facce dietro a quelle immediatamente visibili...
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.
Quindi tra gli obbiettivi 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 segnato 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:
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 una texture 2D e quindi mostrata coerentemente in prospettiva dando l'illusione di un dettaglio molto superiore e fluidamente in moto.
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 con processori 68k più potenti, ha comunque goduto 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 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 tendente al fotorealismo come quella dei videogiochi attuali.