Category Archives: Graphics

Everything about graphics, from hand drawn pictures to CGI. All the applications, algorithms, demos, tutorials and even the games used to produce graphics.

Gli artisti della scultura digitale

La computer grafica del passato ci ha abituati ad una visione abbastanza artefatta delle ambientazioni virtuali e degli effetti speciali cinematrografici, ai tempi in cui produzioni del calibro di Toy Story e Jurassic Park riuscivano a regalare un'emozione. Un personaggio creato in 3D al computer risultava agli occhi dello spettatore come plasticoso, finto, imperfetto, difficilmente credibile. Per non parlare degli artisti amatoriali, che con limitatissimi cad e programmi di disegno, pur impegnandosi al massimo, non potevano ottenere quel realismo che tanto cercavano, non nella qualità dell'immagine o nella definizione degli oggetti. Tuttavia in questi anni la computer grafica ha fatto dei passi da gigante, e non tanto grazie all'incrementata potenza dei sistemi di elaborazione (come falsamente si pensa) ma per l'effettivo miglioramento delle tecniche, come high dynamic range, radiosity, ma soprattutto un concetto completamente innovativo di modellazione tridimensionale noto a molti con il termine di scultura digitale.

La scultura digitale da un taglio ai vecchi criteri di modellazione dei cad del passato per comprendere che la modellazione di un oggetto dettagliato, composto necessariamente da migliaia, se non milioni di vertici, è più conveniente farla non andando ogni volta a modificare i singoli poligoni ma agendo sulla superficie dell'oggetto come in un programma di paint, potendo cosi modellare nuove forme in modo dinamico, modificare la profondità, scavare, levigare, scolpire, estrudere e smussare come farebbe uno scultore. Inoltre, dato che la maggior parte degli esseri viventi sono simmetrici, con la scultura digitale è possibile rendere simmetriche le proprie modifiche, così da poter costruire facilmente un volto o un corpo umano partendo da una sfera e senza eccessive tribolazioni. Il software più famoso e usato per la scultura digitale è ZBrush.

Continue reading

High Dynamic Range

Le tradizionali immagini digitali memorizzano l'informazione sul colore per come esso viene riprodotto sullo schermo, utilizzando massimo 256 valori (8-bit) di luminosità per ciascun canale. Anche se questa tecnica è la più diffusa per la visualizzazione di un'immagine, si rivela un disastro per quanto riguarda le precedenti fasi di acquisizione ed elaborazione digitale. Una giornata soleggiata può avere fino a 100.000 toni di luminosità ed una normale fotocamera digitale riduce questa gamma a 256 con una conseguente perdità di informazione e problemi di sovra o sotto esposizione dell'immagine.

Se si scatta una foto sovraesposta le parti bianche vengono totalmente perse in quanto non contengono alcuna informazione (viene proprio eliminata in fase di acquisizione). Fortunatamente le odierne esigenze in campo di fotografia digitale hanno portato alla luce un nuovo modello di memorizzazione chiamato High Dynamic Range (noto come hdr). Questa nuova tecnica consiste nell'assegnare all'energia di ogni raggio luminoso un valore in floating point con un'ampia gamma dinamica secondo le unità di misura della fotometria. Per fare un esempio, al sole vengono assegnati valori di luminosità almeno un milione di volte più grandi rispetto a quelli di un televisore acceso. In quest modo l'hdr risolve tutti i problemi legati al cattivo contrasto ed errata esposizione della maggior parte delle fotografie digitali, in quanto è possibile tramite programmi di fotoritocco decidere la giusta esposizione ed ottenere sempre il risultato qualitativamente migliore, perchè le zone visivamente troppo chiare o troppo scure non perdono mai parte del loro contenuto informativo.

Continue reading

Picture Tube

This is a demo about drawing loop textures with a picture tube technique. The blit functions of my engine can write an alpha source image to a destination buffer preserving the alpha channel information. This technique is useful to design alpha textures and to make some background effect as shown in the picture.

©2008 Gianpaolo Ingegneri

Blit Tech (via software engine)

Finally I've released what I hope will be the first in a long series of demonstrations about the potentiality of my Unrelated Framework. This demo shows some graphic effects to demonstrate the enormous flexibility of the blit engine. Strictly coded via software, it can run on lowend configurations with an excellent frame rate.

There is a custom font format very useful for future development on platforms where there is no freetype support or to resolve the annoying problem that you cannot use the true type hinting informations without a specific license. Moreover, my engine includes other effects like alpha blending, complex bitmap fonts and bump mapping. There is no use of graphics card because all the drawing algorithms have been reprogrammed from scratch by myself and the image buffer is displayed in fullscreen using the basic gdi functions of the operating system. However, in the architecture of my framework you can overload all the via software drawing functions with the graphic card functions of the other famous api like opengl or direct3d.

©2008 Gianpaolo Ingegneri

How to create photorealistic textures (Ita)

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/)

Continue reading

Graphics effects using chunky-to-planar on amiga/c (Ita)

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.

Continue reading

Image scaling with subsampling technique (Ita)

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.

Continue reading

Fast Fourier Transform with Digital Images (Ita)

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.

©2008 Gianpaolo Ingegneri

Textures (06)

Textures of natural surface like ice or lava in bmp format, 128x128. They don't contain realistic elements and have been designed for platform3d or arcade with essential graphics.

©2008 Gianpaolo Ingegneri

Textures (05)

Texture of terrains and rocks in BMP format, 128x128. They don't contain realistic elements and have been designed for platform3d or arcade with essential graphics.

©2008 Gianpaolo Ingegneri

Textures (02)

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.

Continue reading

TexAviTure v0.05 Beta

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)


©2008 Gianpaolo Ingegneri