Le texture fotorealistiche vengono usate per migliorare l’impatto visivo di molte simulazioni tridimensionali nei motori grafici moderni. Le texture non sono altro che immagini digitali con la caratteristica peculiare di fornire all’osservatore un’impressione di continuità se accostate ripetutamente l’una accanto all’altra in orizzontale e in verticale.
Lo scopo di questo tutorial è quello di capire come è possibile creare immagini del genere, usando come base di partenza dei temi fotografati nella vita reale (muri, pavimenti, roccie, etc…) ed effettuare le trasformazioni necessarie con pochi strumenti e senza ricorrere a particolari software per la generazione procedurale (che in questo caso non servono proprio a niente). (screenshot preso dal sito http://cgtextures.com/)
Gli eventi windows per la gestione dell’input della tastiera non restituiscono direttamente un codice ascii ma uno molto più intrippato chiamato Virtual Key, studiato per consentire anche la gestione di quei tasti che non fanno parte del testo (come i cursori, il tasto stampa, etc…) o la conversione diretta in formati più avanzati, come l’unicode.
Il cosiddetto modo planar è sempre stato un impedimento per quei programmatori che avevano intenzione di creare effetti grafici tridimensionali sull’Amiga, cosa che invece riusciva facilissima sui pc perchè supportavano nativamente il modo chunky. Esiste infatti una famosa disputa tra chi difendeva le peculiarità del planar (utile per i giochi 2d) e chi invece ne esaltava i difetti (inutile per i giochi 3d), resta comunque una verità indiscutibile: senza chunky non è possibile lavorare direttamente con i pixel, e questa è una gravissima limitazione per chi vuole realizzare effetti grafici di qualsiasi tipo, cioè non ancorati a certe particolari caratteristiche dell’hardware, come rotazioni di immagini, motori in texture mapping, bump mapping, etc.
Fortunatamente esistono delle tecniche di conversione che permettono di minimizzare queste differenze e rendere la vita più facile ai programmatori che tutt’ora, per scopi puramente hobbystici, hanno intenzione di sviluppare qualche piccolo lavoro grafico su questa macchina del passato. Anch’io mi ci sono cimentato con esiti positivi e dato che in rete il materiale scarseggia ho deciso di pubblicare in questo articolo un piccolo progetto che incorpora le tecniche di conversione c2p e p2c più veloci (programmate in assembler) con un esempio di utilizzo all’interno di un listato in c per la visualizzazione degli effetti grafici in tempo reale.
Il sottocampionamento, noto anche come subsampling, è un algoritmo che permette di ridurre il numero di campioni di un segnale digitale oppure di un’immagine senza andare incontro, durante l’inevitabile perdita di informazione, al famoso difetto di aliasing. E’ importante ridurre il più possibile questo difetto, perchè l’aliasing potrebbe provocare nei suoni un fastidioso brusio oppure nelle immagini una percezione di forme imprecise o addirittura totalmente alterate.
Quando ancora mancava qualche anno al rilascio ufficiale, la Sony fece circolare dei video in cui si mostravano anteprime di videogiochi con una veste grafica da urlo, tanto per dare un’idea di quella che sarebbe stata la potenza computazionale legata al nuovo processore Cell della playstation3. Si diceva che la console avrebbe permesso di gestire addirittura interi mondi… per rincarare la dose, altri video burla mostravano una fantomatica playstation9 del futuro composta solo da nanotecnologie che entrando nel naso del videogiocatore gli si impiantavano nel cervello e lo trasportavano in un’esperienza videoludica uguale alla realtà (non è una mia invenzione, c’è anche il video su youtube). Poi la PS3 fu rilasciata e tutte quelle voci di corridoio si spensero di fronte alla realtà dei fatti ed i videogiochi sul mercato mostrarono una veste grafica mooolto più contenuta di come si era voluto far credere in passato. Un esempio? I vecchi trailer di Motor Storm ne sono la prova più eclatante. Quindi quella rivoluzione, quell’ondata di videogiochi con grafica da cinema e gestione di pianeti in tempo reale, non c’è mai stata, tuttavia adesso, nel 2008, si sta affacciando per pc qualcosa di molto simile.
I dual/quad core, le schede grafiche come la NVidia 8800 e le schede per la gestione della fisica come la PhysX di Ageia, stanno aprendo la strada a tutta una serie di videogiochi che implementano quel salto di qualità al quale ci avevano abituato le promesse non mantenute del passato.
All’interno dello zip potete trovare un articolo che tratta il filtraggio delle immagini digitali mediante trasformata FFT 2D (Fast Fourier Transform – Trasformata di Fourier Veloce). Viene fatta un’ampia introduzione sulla teoria che sta alla base di questa tecnica ed analizzate nel dettaglio le diverse strategie implementative dal punto di vista della programmazione in c.
Nel pacchetto sono inclusi i sorgenti completi in c, alcune immagini in formato pgm per fare delle prove e l’eseguibile nel caso abbiate subito voglia di vedere qualcosa di pratico. Oltre alla realizzazione della trasformata di fourier veloce, per poter lavorare in modo completo sullo spettro delle frequenze, sono stati presi in esame tre tipi di filtri diversi: ideale, butterworth e gaussiano. Viene affrontato anche il tema dell’uso dei filtri passabanda come soluzione per correggere eventuali disturbi periodici all’interno di un’immagine.
Textures of natural surface like ice or lava in bmp format, 128×128. They don’t contain realistic elements and have been designed for platform3d or arcade with essential graphics.
Texture of terrains and rocks in BMP format, 128×128. They don’t contain realistic elements and have been designed for platform3d or arcade with essential graphics.
Texture of floors in BMP format, 128×128. They don’t contain realistic elements and have been designed for platform3d or arcade with essential graphics.
Texture of bricks in BMP format, 128×128. They don’t contain realistic elements and have been designed for platform3d or arcade with essential graphics.
Here we have another nice collection of textures (always of my own creation) that you can safely use in your web production, software, and so on. If you intend to use my work you could write me an email and let me know or replicate this same post or quote me in what you have created. To access the textures (like all other content on this site), you must click on “continue reading” to see the full post. Thanks for your attention.
For the delight of many graphicians and web masters I’ve released my old (and unpublished) utility for generating procedural animated textures which can loop in all directions and also in a time period without causing side effects or shots. The program is in a very early beta version and it can support only perlin noise or cellular to create the main effects in great demand especially for 3D games (such as lava, flame or candle). It is able to save the created animation as individual frames in bitmap format or as an entire video in avi format. (download)
Rilasciato finalmente in versione completa questo clone di Pang che ho programmato qualche tempo fa. Potrete usufruire di 50 stages distribuiti in 5 livelli di gioco con ambientazioni a tema e musiche suggestive create appositamente per immergere il giocatore nel clima del livello senza degenerare nel fastidio della ripetitività.
Il concept, la grafica e la musica sono totalmente originali e studiati per offrire una interessante variazione al solito e monotono schema dei cloni di pang, non rischiando di appesantire il gioco ma rendendolo al contrario più divertente e longevo. Il boss di fine gioco cerca oltremodo di ripagare le aspettative del giocatore, proiettandolo in una sfida finale non eccessivamente complessa, ma neanche troppo banale, con lo scopo di concretizzare in una vittoria finale il lungo cammino affrontato attraverso i 5 livelli di gioco. L’intero progetto è stato creato in poco tempo e usando software opensource. L’unica versione disponibile è momentaneamente per pc/windows, che potete scaricare cliccando direttamente qui (download). Buon divertimento.
You can see these images in 3D using the crossed eye technique. I suggest you to try first the image with the castle tha is the best one in particular if you are trying to learn the right way to focus the depth information with your eyes.
I added some textures made by me some years ago. To create them I have used my old software for creating procedural textures that was called Virtual Surface. I never completed it in the past for lack of time and interest. Perhaps this project will be reborn in the future with a totally new concept and objectives. In the meantime enjoy this collection of textures.