Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in /data/vhosts/pralevis.com/httpdocs/wordpress/wp-content/plugins/gwolle-gb/functions/gwolle_gb_get_settings.func.php on line 26

Warning: mysql_query(): A link to the server could not be established in /data/vhosts/pralevis.com/httpdocs/wordpress/wp-content/plugins/gwolle-gb/functions/gwolle_gb_get_settings.func.php on line 26

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /data/vhosts/pralevis.com/httpdocs/wordpress/wp-content/plugins/gwolle-gb/functions/gwolle_gb_get_settings.func.php on line 27

Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in /data/vhosts/pralevis.com/httpdocs/wordpress/wp-content/plugins/gwolle-gb/functions/gwolle_gb_get_settings.func.php on line 26

Warning: mysql_query(): A link to the server could not be established in /data/vhosts/pralevis.com/httpdocs/wordpress/wp-content/plugins/gwolle-gb/functions/gwolle_gb_get_settings.func.php on line 26

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /data/vhosts/pralevis.com/httpdocs/wordpress/wp-content/plugins/gwolle-gb/functions/gwolle_gb_get_settings.func.php on line 27
Andrea Pra Levis

Salve a tutti,
a causa di impegni lavorativi, la stesura degli articoli sul WEBGL e sul PHP sta procedendo a rilento; al momento il nono articolo sulla grafica è al 50% e tratterà per lo più l’illuminazione e i metodi più semplici per implementarla; con esso si concluderà il secondo ciclo di articoli e partirà un task parallelo per la stesura di un primo “giochino” interamente creato da noi.
Anche l’articolo sul php ha avuto delle interruzioni per qualche altra settimana tratterò principalmente il mio file browser php Prandas, aggiungendo sempre più funzionalità tra cui multiutenza, logging,info mail e backup, trasformandolo sempre di più in un primitivo Svn.
Ne approfitto per anticipare che sto anche lavorando ad un’applicazione per Android completamente freeware che sarà scaricabile dal sito spero in tempi non biblici e la posterò anche sull’Android Market quando sarò sufficentemente soddisfatto :)
Ringrazio i ( pochi ed eventuali ) utenti che mi seguono e spero di tornare operativo quanto prima, grazie!

Andrea

Salve a tutti!
Da oggi sarà disponibile la nuova versione di Prandas (v 1.1). Le funzionalità aggiunte sono:

-Copia dei file in un’altra cartella
-Spostamenti dei file in un’altra cartella
-Creazione Archivio zip
-Supporto multilingua: possibilità di cambiare la lingua del manager ( lingue supportate: Italiano e Inglese).

Per dubbi, problemi o suggerimenti da propormi, non esitate a contattarmi; vedrò di schedularmi quando possibile.
Tutto il codice e gli script saranno disponibili nel solito repository Lab.

Grazie per l’attenzione,
Andrea

Salve a tutti,
questo articolo sul webgl tratterà un argomento assai importante per programmare un eventuale videogioco: gli user input, cioè studieremo i metodi base per “raccogliere” gli input dell’utente ed elaborarli per fare variare la nostra scena. Al momento ci occuperemo dei due tipi di input più utilizzati dalle applicazioni grafiche: i Keyboard Input ( tastiera) e i Mouse Input.Prenderemo come esempio il classico cubo 3d dell’articolo precedente, mostreremo come la rotazione varierà a seconda degli input che gli verranno dati.

Read the rest of this entry

Salve a tutti!

Oggi vi presento un utile script manager in php fatto dal sottoscritto che permette di gestire uno vostro repository in remoto. Attualmente è solo un application core, indi presenta poche funzionalità fondamentale ma la sua struttura permette di poterlo customizzare e personalizzare secondo i vostri gusti personali; periodicamente  rilascierò nuove versioni con più features e farò il possibile per risolvere eventuali bachi e/o richieste che mi perverranno dagli utilizzatori  in tempi ragionevoli .

Read the rest of this entry

Salve a tutti,
in questo articolo analizziamo la questione delle Texture.
Per dare infatti più realismo alla scena e contemporaneamente arricchirla, una pratica molto usata è quella di “incollare” sulle nostre superfici delle immagini, per esempio per realizzare la simulazione di un prato o di un cielo .
Nell’esempio che mostreremo infatti avremmo a che fare con il cubo rotante dell’esempio lesson04b dell’articolo precedente, ma stavolta, al posto della gestione dei colori , ci preoccuperemo della gestione delle texture, leggermente più complessa ma fondamentale per realizzare applicazioni graficamente appaganti.
Il nostro primo obiettivo sarà caricare l’immagine dentro una variabile globale, in modo tale da poterla richiamare nella fase di disegno. Ovviamente l’introduzione di questa funzionalità provocherà modifiche su molte delle funzioni della’applicaione: oltre che recuperare la nostra immagine infatti, dovremmo assegnare ad ogni vertice delle coordinate 2d (x;y) lungo la superficie della texture ( parallelamente anche quando gestiamo i pixel della nostra scena 2d dovremmo assegnare ad ogni porzione di spazio delle coordiante pixel della nosta texture). Il motivo di queste informazioni appare banale se ipotizziamo di dover tappezzare un poster sopra un quadretto magari più piccolo: dobbiamo decidere quale porzione della texture sarà attaccata alla superficie considerata. Altrettante informazioni da gestire saranno ad esempio la resa grafica della texture se ci allontaniamo dall’oggetto o viceversa.

Read the rest of this entry

Salve a tutti,
Tempo fa mi è capitato di dover realizzare un semplice meccanismo per potere loggare alcune operazione eseguite dagli utenti che navigavano sul mio sito; tale script si poggia su un database mysql per lo storage dei dati e utilizza solo qualche funzione php molto scarna. Riportiamo ora i passi da seguire:

Prima di tutto creiamo un nuovo file php e chiamiamolo ad esempio supporto.php: in esso metteremo la definizione di tutte le funzioni php che utilizzeremo in questo articolo,più precisamente:

Connection(…) : per connettersi al database del sito. Prende come argomento una stringa per identificare il database.
MyLog(…) : per salvare le informazioni sul log. Prende come argomento una descrizione generica dell’azione che l’utente sta compiendo e una stringa che verrà utilizzata come chiave per fare ricerche o selezioni.
ReadAllLog(): legge tutti i Log presenti sulla tabella
ReadLog(…): ritorna solo i Log che appartegono ad una particolare chiave

Read the rest of this entry

WEBGL FOR DUMMIES [PARTE SEI]

Salve a tutti! In questo articolo cercheremo di disegnare il nostro prima oggetto interamente 3D ( un insieme di poligoni).

QUARTO ESEMPIO: CUBO COLORATO
Finalmente abbiamo le basi delle basi per affrontare la nostra prima applicazione 3D. Questo introdurrà un aumento della complessità del codice e l’inevitabile necessità di utilizzare tecniche efficienti per il disegno, visto che il numero di vertici aumenterà inesorabilmente.

Per disegnare, un cubo semplice monocolore al momento non richiederebbe molte modifiche: basterebbe passare alla sottofunzione drawArrays un array con gli otto punti necessari :

gl.drawArrays(gl.TRIANGLES, 0, cubeVertexPositionBuffer.numItems);

Per disegnare, tale funzione fa un ciclo e aggiunge un vertice alla volta tracciando  nella scena i triangoli ( per disegnare oggetti di forma varia, un buon metodo è suddividere il tutto in tanti triangolini che singolarmente son facili da disegnare) che collegano il vertice corrente dai precedenti.
Tale metodo funziona, ma,in caso di facce multicolore intrinsecamente porta ad una complicanza: poichè ogni vertice appartiene a tre facce diverse del nostro dato, egli dovrebbe possedere come attributo tre colori possibilmente diversi. Questi ed altri problemi ci costringono a valutare un ‘altra strada.

Read the rest of this entry

Salve, qualche giorno fa un mio amico mi aveva chiesto una mano per realizzare un semplice script per permettere di controllare l’utenza sul proprio sito. Terminato lo script mi sembrava utile condividerlo con chi ne avesse bisogno; i nostro obiettivi sono semplici:

1. realizzare una piccola form per permettere all’utente di loggarsi
2.creare uno script per il controllo delle credenziali
3. realizzare uno script da incollare in ogni pagina per il controllo delle credenziali

Read the rest of this entry

Salve a tutti!
Ricapitoliamo un pò il nostro operato: per il momento siamo capaci di disegnare figure e di assegnare ad esso dei colori base. Al momento però la nostra scena è piuttosto statica: a parte qualche variazione di colore proposto nell’esercizio, tutto rimane fisso ed invariato, come porvi rimedio?

ESEMPIO TRE: DISEGNARE UN POLIGONO IN MOVIMENTO

Per dare l’idea di movimento , l’idea più intuitiva che viene in mente è di ridisegnare ogni tot secondi il nostro poligono leggermente spostato rispetto al frame precedente, se l’intera operazione viene eseguita con con una velocità abbastanza ragionevole, il nostro occhio ci farà risultare il tutto con un momento continuo.
Per tale ragione dovremmo modificare sia la funzione DrawScene(), sia introdurre una nuova funzione che chiameremo Animation().Nel nostro esempio dovremmo disegnare un triangolo colorato che ruota su se stesso in senso antiorario.

Read the rest of this entry

Salve, questa è la seconda parte dell’articolo sulla realizzazione di un sito in php multilingua.
Per tornare alla prima parte dell’articolo, cliccare sul link seguente:

REALIZZARE UN SITO PHP MULTILINGUA[PARTE UNO]

Riprendendo da dove eravamo rimasti,mettiamo il tutto insieme e creiamo un esempio concreto:

– prendiamo il codice seguente e salviamolo in un file php che possiamo ad esempio chiamare Multilanguage.php

Read the rest of this entry