venerdì 27 luglio 2007

Secondo documento

Ecco il secondo documento che scrivo.
Probabilmente molto più interessante del precedente per i lettori, visto che parla di cosa dovrebbe essere in futuro cassata.

Il link, come quello precedente, è provvisorio, verranno spostate tutte cose nel repository ufficiale di cassata più avanti, in ogni caso eccolo:

http://yotavga.altervista.org/futuro.pdf

Ancora una volta fate copia-incolla, visto che altervista controlla la provenienza quando si segue un link ed esclude qualunque percorso proveniente da un altro sito.

Alla prossima :)

mercoledì 25 luglio 2007

Lunga ristrutturazione per torrone

Ho finito lo studio che mi serviva per i kd-tree. Ora però, per poter implementare tutto ciò che ho imparato e pensato, e lasciare anche spazio per nuove cose, la struttura interna di torrone non è più sufficente. È necessario ristrutturarlo profondamente e riscriverne alcune componenti.
Il lavoro comincerà oggi stesso, e penso che occuperà 1-2 settimane.
Però fra una settimana parto (per pochi giorni), quindi mettete in conto 3 settimane come tempo massimo.
Vi farò sapere delle novità più avanti.
Alla prossima :)

domenica 22 luglio 2007

Il primo articolo sull'architettura di cassata

Ho completato il primo articolo sull'architettura di cassata. Sono solo alcune idee, e come tali vanno prese. Nulla di definitivo ne altro. Per chi volesse leggerlo:

http://yotavga.altervista.org/gestione_memoria.pdf

Si consiglia di fare copia-incolla del link, poiché altervista fa dei controlli sulla provenienza e non mostra i link se presi da altri siti.

venerdì 20 luglio 2007

A proposito dei ritardi su cassata

So di non dovere spiegazioni a nessuno, ma questo post vuole segnalare che il progetto non è morto.
Ho molti impegni oltre questo progetto, il che ha causato quasi un fermo di cassata, ma solo temporaneo, conto di riprendere nel giro di al massimo qualche settimana, salvo imprevisti.
Mi spiace che il progetto debba subire simili ritardi, ma essendo solo e non facendo solo questo non posso mandare il progetto avanti ogni giorno.
Comunque le idee che mi vengono e ronzano in testa non si fermano ;)
A presto quindi :)

giovedì 12 luglio 2007

A proposito di cassata 1.0

Ho deciso di scrivere un post un po' diverso dai classici post che scrivo in genere, per descrivere cosa stò facendo ora e cosa penso di fare per il futuro.

Qualcuno dei lettori (e ce ne sono, a me sembra che siano quasi tutti su blender.it XD ) probabilmente sa qual'è l'importanza di un'interfaccia, ma ne parlerò qui per spiegarlo anche a chi non lo sapesse.
Innanzitutto va detto che per interfaccia non intendo gui. Intendo quello strato che interpreta le scene e comunica con gli shader.

Una buona interfaccia è indispensabile, perché deve rimanere a lungo. Immaginate che cosa succederebbe se di punto in bianco cambio il modo in cui si salva una scena. Chiunque stia facendo dei lavori ci penserà 100 volte prima di decidere di aggiornare. Questo è un grave problema per il progresso tecnologico del renderer.

Perciò ciò che mi serve è un'interfaccia che sia stabile (dovrà cambiare profondamente solo in casi rarissimi), flessibile (dovrò poter sviluppare tante cose nel frattempo) e che non leda le prestazioni.
Fare un'interfaccia così necessita anche di sapere per lo meno per sommi capi verso che direzione potrà espandersi internamente il renderer, e quindi diventa tutto un equilibrio di difficile soluzione.

Ho intenzione di fare uscire diverse versioni di cassata (la prima sarà la 0.1) ritenute relativamente stabili, e man mano sempre più complete, con l'unico limite di avere un'interfaccia ancora da stabilizzarsi.
La versione 1.0 invece, infine, avrà un'interfaccia stabile, ma uscirà fra parecchio tempo (anni?).
Questo ovviamente non vuol dire che cassata sarà inusabile, solo che mi prenderò diverso tempo per la stabilizzazione dell'interfaccia. Nel frattempo già cassata sarà utilizzabilissimo, e chissà, magari avrà una discreta cerchia di utenti.

Prima di far uscire comunque cassata 0.1 voglio almeno avere una vaga idea di come sarà l'interfaccia. Per farlo devo sperimentare e provare tante cose, perché come detto l'architettura interna influenzia anche la progettazione dell'interfaccia. Questo è quello che stò facendo attualmente.

Per quanto riguarda l'uscita di cassata 0.1, come data indicativa, e soggetta comunque anche a cambiamenti notevoli (non prendetela seriamente, è solo un'indicazione) vorrei farla uscire intorno a fine 2007 - inizio 2008. Raggiunta cassata 0.1 vorrei che già fosse possibile renderizzare scene comuni, con la disponibilità di almeno shader per costruire materiali abbastanza diffusi in natura (anche magari approssimati ma con approssimazioni decenti) e non troppo lento. Per intenderci vorrei riuscire, per lo meno, ad ottenere immagini qualitativamente (ma probabilmente non prestazionalmente) al livello di indigo 0.5.

mercoledì 4 luglio 2007

Ma che bel dipinto!

Molte modifiche. Diversi bug sono stati corretti, in particolare uno sull'illuminazione globale ed uno sul conto dei raggi.
Ma soprattutto ora funzionano le texture :D

Per l'occasione, per mostrare quanto influenzia l'illuminazione indiretta, ho prodotto 2 rendering, identici eccetto che per il calcolo dell'illuminazione indiretta:

Innanzitutto mostro unimmagine senza illuminazione indiretta, durata circa 6 minuti e mezzo con un consumo della CPU del 75% (1.080.000 raggi):



Quella invece completa è durata poco meno di 2 ore e mezza, con un consumo della CPU dell'80% (33.777.037.841.920 raggi):



Ho voluto mettere il consumo della CPU e lo metterò d'ora in poi perché spesso faccio altre cose e falso i tempi altrimenti a seconda di cosa faccio mentre renderizzo. In particolare i vecchi rendering erano spesso sopra il 90% (spesso abbondantemente).

Comunque come si capisce lo sfondo è una texture, precisamente un'immagine OpenEXR.

Il codice volendo può usare tranquillamente già texture procedurali e quant'altro, e c'è un'implementazione completa dell'uv mapping.

Alla prossima :)