<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2698699932148222904</id><updated>2011-07-07T20:40:05.854-07:00</updated><title type='text'>webgl</title><subtitle type='html'>Traduzione (e qualcosa di piu') italiana delle lezioni di http://learningwebgl.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-4896571047958770141</id><published>2010-08-11T21:56:00.001-07:00</published><updated>2010-08-11T21:56:25.377-07:00</updated><title type='text'>Pannello WebGL per Firefox</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;a title='https://addons.mozilla.org/it/firefox/addon/215994/' href='https://addons.mozilla.org/it/firefox/addon/215994/'&gt;https://addons.mozilla.org/it/firefox/addon/215994/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Naturalmente si puo' installare solo sulle versioni di Firefox che supportano WebGL!&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-4896571047958770141?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/4896571047958770141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/08/pannello-webgl-per-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4896571047958770141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4896571047958770141'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/08/pannello-webgl-per-firefox.html' title='Pannello WebGL per Firefox'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-864327011727929640</id><published>2010-06-14T23:10:00.001-07:00</published><updated>2010-06-14T23:10:34.723-07:00</updated><title type='text'>HTML 5 test (include verifica sulle funzionalita' webgl)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;a title='http://www.html5test.com/' href='http://www.html5test.com/'&gt;http://www.html5test.com/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Questa applicazione web testa le funzionalita', dello standard html 5, implementate dal browser. Restituisce un punteggio e 300 e' il massimo ottenibile (ovvero tutte le funzionalita' implementate). Naturalmente c'e' anche un test per le webgl!&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-864327011727929640?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/864327011727929640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/06/html-5-test-include-verifica-sulle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/864327011727929640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/864327011727929640'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/06/html-5-test-include-verifica-sulle.html' title='HTML 5 test (include verifica sulle funzionalita&amp;#39; webgl)'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-4148667461837971865</id><published>2010-05-28T04:43:00.000-07:00</published><updated>2010-05-28T04:43:34.529-07:00</updated><title type='text'>Webgl su vecchio hardware (ATI e Flash dovete morire!)</title><content type='html'>Sto lavorando in condizioni estreme!&lt;br /&gt;Sto usando un vecchio lenovo t60 con una ATI X1300: per intenderci, ATI non supporta piu' questa scheda grafica!&lt;br /&gt;Ho l'accelerazione opengl(penso opengl 1.x!) ma non ho l'accelerazione per opengl ES 2.1 e non ho il pbuffer(questo sotto Linux). Ergo: non riesco ad utilizzare la GPU per far girare le webgl e fare i primi esperimenti(avrei una mezza intenzione di convertire un'applicazione flash che visualizza un glyph con una nuvola di tag...).&lt;br /&gt;Unica soluzione: compilarmi le mesa (nota importante: prima di compilare lanciare ./configure  --with-driver=osmesa ) ed utilizzare la CPU.&lt;br /&gt;&lt;br /&gt;Sotto windows XP tutto e' un po' piu' semplice e firefox trova tutto il necessario per usare la GPU: ma, lo sa chi mi conosce, non riesco a lavorare con windows!&lt;br /&gt;Giuro: la prossima scheda grafica sara' NVidia!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-4148667461837971865?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/4148667461837971865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/05/webgl-su-vecchio-hardware-ati-e-flash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4148667461837971865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4148667461837971865'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/05/webgl-su-vecchio-hardware-ati-e-flash.html' title='Webgl su vecchio hardware (ATI e Flash dovete morire!)'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-5743460683243246905</id><published>2010-05-15T00:03:00.000-07:00</published><updated>2010-05-15T00:03:16.543-07:00</updated><title type='text'>Aggiunto link a playwebgl</title><content type='html'>Ho aggiornato la lista dei link con il primo sito dedicato ai giochi fatti usando le webgl.&lt;br /&gt;Toh... c'e' Quake 2....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-5743460683243246905?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/5743460683243246905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/05/aggiunto-link-playwebgl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/5743460683243246905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/5743460683243246905'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/05/aggiunto-link-playwebgl.html' title='Aggiunto link a playwebgl'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-4852228612609899111</id><published>2010-05-11T02:02:00.001-07:00</published><updated>2010-05-11T02:02:06.999-07:00</updated><title type='text'>La versione on-line di Dev. mi pubblica le prime due lezioni!!!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;a target='_blank' title='http://www.infomedia.it/i/dev' href='http://www.infomedia.it/i/dev'&gt;http://www.infomedia.it/i/dev&lt;/a&gt;&lt;/p&gt;&lt;p&gt;...Dev. e' risorta on-line: grazie all'interessamento di Daniele Marsico mi pubblica le prime due lezioni!!!&lt;/p&gt;&lt;p&gt;Sottoscrivete! Garantirete la sopravvivenza ad un manipolo di appassionati di informatica e c.! &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-4852228612609899111?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/4852228612609899111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/05/la-versione-on-line-di-dev-mi-pubblica.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4852228612609899111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4852228612609899111'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/05/la-versione-on-line-di-dev-mi-pubblica.html' title='La versione on-line di Dev. mi pubblica le prime due lezioni!!!'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-1067385479620376360</id><published>2010-05-10T21:14:00.001-07:00</published><updated>2010-05-10T21:14:41.152-07:00</updated><title type='text'>Links</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;Sono stati aggiunti alcuni links importanti sulle webgl: librerie, esperimenti, tutorial, lezioni, wiki ...&lt;/p&gt;&lt;p&gt;Alcune note:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;nelle librerie x3dom c'e' una demo in realta' aumentata che non sono riuscito a visualizzare&lt;/li&gt;&lt;li&gt;processingjs non e' una libreria webgl: hanno fatto una &lt;a target='_blank' title='demo' href='http://matrix.senecac.on.ca/~asalga/3d_point_size/'&gt;demo&lt;/a&gt; utilizzando processingjs per l'interazione e webgl per la renderizzazione 2D&lt;/li&gt;&lt;/ul&gt;&lt;p/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-1067385479620376360?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/1067385479620376360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/05/links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1067385479620376360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1067385479620376360'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/05/links.html' title='Links'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-1567760280063367783</id><published>2010-05-07T22:28:00.001-07:00</published><updated>2010-05-07T22:28:24.910-07:00</updated><title type='text'>...alla fine anche le o3d saranno fatte con le webgl!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;a title='http://code.google.com/p/o3d/' href='http://code.google.com/p/o3d/'&gt;http://code.google.com/p/o3d/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Nata come una tecnologia "a plugin", per fare il 3d con javascript, le o3d iniziano ad essere convertite in webgl, aderendo a quelli che sono gli standard imposti dall'HTML5.&lt;/p&gt;&lt;p&gt;&lt;a title='http://o3d.blogspot.com/2010/05/future-of-o3d.html' href='http://o3d.blogspot.com/2010/05/future-of-o3d.html'&gt;http://o3d.blogspot.com/2010/05/future-of-o3d.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Nel blog ufficiale dicono che dovranno rinunciare, penso inizialmente, a molte cose che o3d faceva ma che webgl non riesce a fare. Riusciranno i nostri eroi dell'o3d a far girare il "Beach demo" anche con le webgl?&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-1567760280063367783?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/1567760280063367783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/05/alla-fine-anche-le-o3d-saranno-fatte.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1567760280063367783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1567760280063367783'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/05/alla-fine-anche-le-o3d-saranno-fatte.html' title='...alla fine anche le o3d saranno fatte con le webgl!'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-3079969329223791947</id><published>2010-03-30T04:02:00.000-07:00</published><updated>2010-03-30T04:02:17.562-07:00</updated><title type='text'>SceneJS 0.7</title><content type='html'>&lt;a href="http://www.scenejs.com"&gt;www.scenejs.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;# Nuove funzionalita'&lt;br /&gt;&lt;br /&gt;   1. Automatic shader generation&lt;br /&gt;   2. A more complete lighting model&lt;br /&gt;   3. Layered textures&lt;br /&gt;   4. Frustum culling&lt;br /&gt;   5. Level-of-detail selection&lt;br /&gt;   6. Logging&lt;br /&gt;   7. VRAM cache management&lt;br /&gt;   8. Animated Textures&lt;br /&gt;   9. Fog&lt;br /&gt;&lt;br /&gt;...e' stato aggiornato il sito, aggiunti video...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-3079969329223791947?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/3079969329223791947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/03/scenejs-07.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3079969329223791947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3079969329223791947'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/03/scenejs-07.html' title='SceneJS 0.7'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-5056463240967376290</id><published>2010-03-18T09:11:00.000-07:00</published><updated>2010-03-18T09:11:39.743-07:00</updated><title type='text'>Da Chrome a Chromium</title><content type='html'>Chrome di sviluppo non integrera' webgl: &lt;b&gt;bisogna "passare" a chromium!&lt;/b&gt;&lt;br /&gt;Ecco i links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://build.chromium.org/buildbot/continuous/win/LATEST/"&gt;http://build.chromium.org/buildbot/continuous/win/LATEST/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://build.chromium.org/buildbot/continuous/mac/LATEST/"&gt;http://build.chromium.org/buildbot/continuous/mac/LATEST/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://build.chromium.org/buildbot/continuous/linux/LATEST/"&gt;http://build.chromium.org/buildbot/continuous/linux/LATEST/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-5056463240967376290?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/5056463240967376290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/03/da-chrome-chromium.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/5056463240967376290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/5056463240967376290'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/03/da-chrome-chromium.html' title='Da Chrome a Chromium'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-4236809983669429428</id><published>2010-03-16T08:21:00.001-07:00</published><updated>2010-03-16T08:21:33.032-07:00</updated><title type='text'>News</title><content type='html'>Nuova libreria webgl:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://energize.cc/"&gt;http://energize.cc/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-4236809983669429428?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/4236809983669429428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/03/news.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4236809983669429428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4236809983669429428'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/03/news.html' title='News'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-6919736715393404313</id><published>2010-03-14T21:22:00.000-07:00</published><updated>2010-03-14T21:22:32.382-07:00</updated><title type='text'>Nuove</title><content type='html'>E' passato un bel po' dal mio ultimo post, tempo nel quale mi sono fatto un po' di esperienza pratica con le webgl e con gli strumenti da usare per "smanettare" con essa.&lt;br /&gt;Ho cambiato sistema operativo di lavoro (w7 rc mi si riavviava ogni 2h senza avvertirmi... e poi con w7 non si riesce a lavorare!): ora uso una kubuntu e qui, dopo aver naturalmente installato i driver per la mia ATI, uso firefox 3.7a3 e le webgl vanno una scheggia!&lt;br /&gt;Forse ci sara' anche una rivoluzione lato programmazione server...&lt;br /&gt;&lt;br /&gt;Comunque:&lt;br /&gt;1- scaricare la 3.7a3 dai repositori mozilla&lt;br /&gt;2- abilitare le webgl(andare nella barra degli indirizzi, digitare about:config, cliccare sul bottone che compare, in filter digitare webgl, e settare a true la variabile webgl.enabled_for_all_sites)&lt;br /&gt;3- provare le ultime demo(GLGE, WebGLU, Cooperlicht)&lt;br /&gt;&lt;br /&gt;Deve arrivare prossimamente anche l'aggiornamento delle scenejs: la 0.7 promette GRANDI cose!&lt;br /&gt;Stavo pensando infatti, dora in poi di concentrarmi piu' sul lato applicativo piuttosto che quello della libreria: usero' quindi una libreria gia' fatta (scenejs) e sviluppero' poi  un'applicazione web (rimane sempre il mio "sogno" di rifare teddy...).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-6919736715393404313?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/6919736715393404313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/03/nuove.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/6919736715393404313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/6919736715393404313'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/03/nuove.html' title='Nuove'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-3113681740537265641</id><published>2010-01-22T06:45:00.000-08:00</published><updated>2010-01-22T06:45:11.544-08:00</updated><title type='text'>Sorgenti demo webgl</title><content type='html'>svn checkout https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;Se si esegue questo comando e' possibile scaricare i sorgenti delle demo registrate nel wiki ufficiale delle webgl, ovvero &lt;a href="http://www.khronos.org/webgl/wiki/Main_Page"&gt;http://www.khronos.org/webgl/wiki/Main_Page&lt;/a&gt; .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-3113681740537265641?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/3113681740537265641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/01/sorgenti-demo-webgl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3113681740537265641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3113681740537265641'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/01/sorgenti-demo-webgl.html' title='Sorgenti demo webgl'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-3125616701789132903</id><published>2010-01-21T07:07:00.000-08:00</published><updated>2010-01-21T07:07:36.534-08:00</updated><title type='text'>Aggiornato anche il repositori con i sorgenti</title><content type='html'>&lt;a href="http://code.google.com/p/webgl-it/downloads/list"&gt;http://code.google.com/p/webgl-it/downloads/list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ho tolto la google app fatta in java(usando eclipse) ed ho messo quella fatta con python.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-3125616701789132903?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/3125616701789132903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/01/aggiornato-anche-il-repositori-con-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3125616701789132903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3125616701789132903'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/01/aggiornato-anche-il-repositori-con-i.html' title='Aggiornato anche il repositori con i sorgenti'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-1326555039922359259</id><published>2010-01-21T05:43:00.000-08:00</published><updated>2010-01-21T05:43:09.885-08:00</updated><title type='text'>Nuova google app</title><content type='html'>&lt;a href="http://webgl-it.appspot.com"&gt;http://webgl-it.appspot.com&lt;/a&gt;&lt;br /&gt;Ecco la nuova google app, sviluppata in python.&lt;br /&gt;Ora e' minimale, tanto per mettere on-line le prime due "lezioni"...:-)&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-1326555039922359259?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/1326555039922359259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/01/nuova-google-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1326555039922359259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1326555039922359259'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/01/nuova-google-app.html' title='Nuova google app'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-8538411627990721107</id><published>2010-01-19T08:01:00.000-08:00</published><updated>2010-01-19T08:01:12.789-08:00</updated><title type='text'>"Nuovi" link</title><content type='html'>&lt;a href="https://developer.mozilla.org/en/WebGL"&gt;https://developer.mozilla.org/en/WebGL&lt;/a&gt;&lt;br /&gt;Lezioni webgl dai Mozilla labs...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spidergl.org/"&gt;http://spidergl.org/&lt;/a&gt;&lt;br /&gt;Altro framework javascript per manipolare a piu' alto livello le webgl.&lt;br /&gt;&lt;br /&gt;Poi pensavo di gestire le google app non piu' usando java e gwt, ma usando invece python e pyjamas...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-8538411627990721107?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/8538411627990721107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/01/nuovi-link.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8538411627990721107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8538411627990721107'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/01/nuovi-link.html' title='&quot;Nuovi&quot; link'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-8482313604485251133</id><published>2010-01-06T06:52:00.000-08:00</published><updated>2010-01-06T06:52:56.793-08:00</updated><title type='text'>Aggiornata la google app</title><content type='html'>Aggiornata la google app:&lt;br /&gt;&lt;a href="http://webgl-it.appspot.com"&gt;http://webgl-it.appspot.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...ho dei problemi ad aggiornare il repository dei sorgenti :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-8482313604485251133?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/8482313604485251133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/01/aggiornata-la-google-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8482313604485251133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8482313604485251133'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/01/aggiornata-la-google-app.html' title='Aggiornata la google app'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-8731169118993813138</id><published>2010-01-04T20:39:00.000-08:00</published><updated>2010-01-04T21:12:17.945-08:00</updated><title type='text'>Librerie interessanti</title><content type='html'>&lt;a href="http://www.glge.org/"&gt;http://www.glge.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scenejs.com/"&gt;http://www.scenejs.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Per ora segno i links...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-8731169118993813138?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/8731169118993813138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/01/librerie-interessanti.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8731169118993813138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8731169118993813138'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/01/librerie-interessanti.html' title='Librerie interessanti'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-3471923704112859802</id><published>2010-01-04T19:56:00.000-08:00</published><updated>2010-01-04T19:56:57.122-08:00</updated><title type='text'>Aggiunto sorgente del workspace di eclipse per la google app della lezione 1</title><content type='html'>Qui trovate il webgl-workspace.zip con tutto il workspace di eclipse della google app della lezione 1(l'ho provato con chrome di sviluppo con le webgl abilitate... per chi non si ricordasse, per abilitarle si esegue chrome di sviluppo con:&lt;br /&gt;chrome.exe --no-sandbox --enable-webgl&lt;br /&gt;)&lt;br /&gt;&lt;a href="http://code.google.com/p/webgl-it/downloads/list"&gt;http://code.google.com/p/webgl-it/downloads/list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Questa e' la google app&lt;br /&gt;&lt;a href="http://webgl-it.appspot.com"&gt;http://webgl-it.appspot.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-3471923704112859802?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/3471923704112859802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2010/01/aggiunto-sorgente-del-workspace-di.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3471923704112859802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/3471923704112859802'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2010/01/aggiunto-sorgente-del-workspace-di.html' title='Aggiunto sorgente del workspace di eclipse per la google app della lezione 1'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-6579788686024918320</id><published>2009-12-31T07:54:00.000-08:00</published><updated>2009-12-31T07:54:46.281-08:00</updated><title type='text'>Buon 2010</title><content type='html'>&lt;a href="http://code.google.com/p/webgl-it/downloads/list"&gt;http://code.google.com/p/webgl-it/downloads/list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ho aggiunto un nuovo pacchetto che contiene anche la seconda lezione che aggiunge un po' di colore alla scena.&lt;br /&gt;&lt;br /&gt;Pensavo nell'anno nuovo di sperimentare qualcosa a piu' alto livello, come le c3dl &lt;a href="http://www.c3dl.org/"&gt;http://www.c3dl.org/&lt;/a&gt; e di utilizzare un ambiente di sviluppo un po' piu' "professionale" dei semplici file html e js, come Google App Engine, e magari provare anche a fare qualche RIA con le nuove GWT(traduzione simultanea: provare a fare qualche applicazione web con gli strumenti usati da Google...).&lt;br /&gt;Ormai sul web hanno migrato quasi tutte le applicazioni desktop, un'applicazione 3d manca: magari sarebbe bello iniziare con la migrazione webgl di Teddy di Takeo Igarashi( &lt;a href="http://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy.htm"&gt;http://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy.htm&lt;/a&gt; ).&lt;br /&gt;Vabbe'... per ora un augurio di Buon 2010!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-6579788686024918320?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/6579788686024918320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2009/12/buon-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/6579788686024918320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/6579788686024918320'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2009/12/buon-2010.html' title='Buon 2010'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-1992617735044505115</id><published>2009-12-27T23:41:00.000-08:00</published><updated>2009-12-27T23:43:11.407-08:00</updated><title type='text'>Consigli vari...</title><content type='html'>Lo standard WebGL e' supportato nel progetto Chromium ed e' disponibile per i sistemi operativi Linux, Mac OS X, and Windows. Ecco alcuni indirizzi:&lt;br /&gt;&lt;br /&gt;* Linux 32-bit: &lt;a href="http://build.chromium.org/buildbot/continuous/linux/LATEST/"&gt;http://build.chromium.org/buildbot/continuous/linux/LATEST/&lt;/a&gt;&lt;br /&gt;* Linux 64-bit: &lt;a href="http://build.chromium.org/buildbot/snapshots/chromium-rel-linux-64/"&gt;http://build.chromium.org/buildbot/snapshots/chromium-rel-linux-64/&lt;/a&gt;&lt;br /&gt;* Mac OS X: &lt;a href="http://build.chromium.org/buildbot/continuous/mac/LATEST/"&gt;http://build.chromium.org/buildbot/continuous/mac/LATEST/&lt;/a&gt;&lt;br /&gt;* Windows: &lt;a href="http://build.chromium.org/buildbot/continuous/win/LATEST/"&gt;http://build.chromium.org/buildbot/continuous/win/LATEST/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Chromium deve essere eeguito da CLI per abilitare le webgl.&lt;br /&gt;&lt;br /&gt;* Linux: ./chrome --no-sandbox --enable-webgl&lt;br /&gt;* Mac OS X: Chromium.app/Contents/MacOS/Chromium --no-sandbox --enable-webgl&lt;br /&gt;* Windows: chrome.exe --no-sandbox --enable-webgl &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ecco invece il link al codice delle lezioni:&lt;br /&gt;&lt;a href="http://code.google.com/p/webgl-it/downloads/list"&gt;http://code.google.com/p/webgl-it/downloads/list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ecco il link al wiki ufficiale&lt;br /&gt;&lt;a href="https://www.khronos.org/webgl/wiki/Main_Page"&gt;https://www.khronos.org/webgl/wiki/Main_Page&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-1992617735044505115?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/1992617735044505115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2009/12/consigli-vari.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1992617735044505115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/1992617735044505115'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2009/12/consigli-vari.html' title='Consigli vari...'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-8118230098052506228</id><published>2009-12-22T23:54:00.000-08:00</published><updated>2009-12-22T23:54:06.004-08:00</updated><title type='text'>Lezione 2: aggiungiamo un po' di colore...</title><content type='html'>Nella seconda lezione vedremo come aggiungere un po' di colore alla nostra scena 3d; le uniche cose che cambieranno saranno gli shaders, l' initBuffers e la funzione drawScene. Il funzionamento della pipeline di rendering di webgl lo si puo' vedere nella seconda lezione sul sito originale. Qui mi addentrero' subito nel codice, spiegando qua' e la' come funziona la logica di visualizzazione. &lt;br /&gt;&lt;br /&gt;the vertex shader. &lt;br /&gt;ecco come cambia:&lt;br /&gt;attribute vec3 aVertexPosition; &lt;br /&gt;attribute vec4 aVertexColor; &lt;br /&gt;uniform mat4 uMVMatrix; &lt;br /&gt;uniform mat4 uPMatrix; &lt;br /&gt;varying vec4 vColor; &lt;br /&gt;void main(void) { &lt;br /&gt;    gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); &lt;br /&gt;    vColor = aVertexColor; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Abbiamo due attribute, VertexPosition and aVertexColor, due uniforms non variabili called uMVMatrix anduPMatrix, e un output rappresentato  dalla variabile vColor.&lt;br /&gt;Nella parte centrale dello shader calcoleremo la gl_Position (che e' implicitamente definita come una variabile per ogni vertex shader)  esattamente come abbiamo fatto nella lezione precedente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Una volta eseguito questo per ogni vertice, viene eseguita un'interpolazione per generare il fragments, i quali vengono passati allo fragmaents shader:&lt;br /&gt;&lt;br /&gt;varying vec4 vColor; &lt;br /&gt; void main(void) { &lt;br /&gt;     gl_FragColor = vColor; &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Qui prendiamo la variabile in input vColor , che contieneil colotr elaborato dall'interpolazione lineare e lo ritorna subito come colore per questo fragment.&lt;br /&gt;&lt;br /&gt;Ci sono altre due modifiche. La prima nell' initShaders , dove ora otteniamo i riferimenti di due attributi invece di uno:&lt;br /&gt;&lt;br /&gt;var shaderProgram; &lt;br /&gt;var vertexPositionAttribute; &lt;br /&gt;var vertexColorAttribute; &lt;br /&gt;function initShaders() { &lt;br /&gt;    var fragmentShader = getShader(gl, "shader-fs");&lt;br /&gt;    var vertexShader = getShader(gl, "shader-vs");&lt;br /&gt;  shaderProgram = gl.createProgram();&lt;br /&gt; gl.attachShader(shaderProgram, vertexShader);&lt;br /&gt; gl.attachShader(shaderProgram, fragmentShader);&lt;br /&gt; gl.linkProgram(shaderProgram);&lt;br /&gt; if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) { &lt;br /&gt;    alert("Could not initialise shaders");&lt;br /&gt; }&lt;br /&gt; gl.useProgram(shaderProgram);&lt;br /&gt; vertexPositionAttribute = gl.getAttribLocation(shaderProgram, "aVertexPosition");&lt;br /&gt; gl.enableVertexAttribArray(vertexPositionAttribute);&lt;br /&gt;vertexColorAttribute = gl.getAttribLocation(shaderProgram, "aVertexColor");&lt;br /&gt;gl.enableVertexAttribArray(vertexColorAttribute); &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Nella lezione precedente avevamo solo l'attributo per la posizione...&lt;br /&gt;&lt;br /&gt;I cambiamenti nell' initBuffers consistono nel definire due variabili che conterranno il color buffer per il triangolo e per il quadrato:&lt;br /&gt;&lt;br /&gt;var triangleVertexPositionBuffer; &lt;br /&gt;var triangleVertexColorBuffer;&lt;br /&gt;var squareVertexPositionBuffer;&lt;br /&gt;var squareVertexColorBuffer;&lt;br /&gt;&lt;br /&gt;Dopo avere creato il buffer che contiene la posizione del triangolo, specifichiamo anche il colore dei vertici:&lt;br /&gt;&lt;br /&gt;function initBuffers() { &lt;br /&gt;    triangleVertexPositionBuffer = gl.createBuffer();&lt;br /&gt;    gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexPositionBuffer);&lt;br /&gt;    var vertices = [ 0.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -1.0, 0.0 ];&lt;br /&gt;    gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(vertices), gl.STATIC_DRAW);&lt;br /&gt;    triangleVertexPositionBuffer.itemSize = 3;&lt;br /&gt;    triangleVertexPositionBuffer.numItems = 3;&lt;br /&gt;   triangleVertexColorBuffer = gl.createBuffer();&lt;br /&gt;   gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexColorBuffer);&lt;br /&gt;   var colors = [ 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, ];&lt;br /&gt;   gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(colors), gl.STATIC_DRAW);&lt;br /&gt;   triangleVertexColorBuffer.itemSize = 4; triangleVertexColorBuffer.numItems = 3;&lt;br /&gt;&lt;br /&gt;E' evidente la principale differenza fra i buffer posizione e colore: mentre la posizione dei vertici e' definita da tre numeri(le coordinate x,y,z), il loro colore e' definito da quattro elementi(il colore rosso, il verde, il blue ed il canale alpha per la trasparenza).&lt;br /&gt;E' ovvio che questa variazione influenza anche l' itemSize ...&lt;br /&gt;&lt;br /&gt;Successivamente facciamo lo stesso per il quadrato ma questa volta useremo lo stesso colore per ogni vertice e per far questo useremo un ciclo:&lt;br /&gt;&lt;br /&gt;squareVertexPositionBuffer = gl.createBuffer();&lt;br /&gt;gl.bindBuffer(gl.ARRAY_BUFFER, squareVertexPositionBuffer);&lt;br /&gt;vertices = [ 1.0, 1.0, 0.0, -1.0, 1.0, 0.0, 1.0, -1.0, 0.0, -1.0, -1.0, 0.0 ];&lt;br /&gt;gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(vertices), gl.STATIC_DRAW);&lt;br /&gt;squareVertexPositionBuffer.itemSize = 3;&lt;br /&gt;squareVertexPositionBuffer.numItems = 4;&lt;br /&gt;squareVertexColorBuffer = gl.createBuffer();&lt;br /&gt;gl.bindBuffer(gl.ARRAY_BUFFER, squareVertexColorBuffer);&lt;br /&gt;colors = [];&lt;br /&gt;for (var i=0; i &lt; 4; i++) {&lt;br /&gt;    colors = colors.concat([0.5, 0.5, 1.0, 1.0]);&lt;br /&gt;}&lt;br /&gt;gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(colors), gl.STATIC_DRAW);&lt;br /&gt;squareVertexColorBuffer.itemSize = 4;&lt;br /&gt;squareVertexColorBuffer.numItems = 4;&lt;br /&gt;&lt;br /&gt;Ora modifichiamo drawScene per usare le nuove informazioni sui colori:&lt;br /&gt;&lt;br /&gt;function drawScene() {&lt;br /&gt;  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);&lt;br /&gt;  perspective(45, 1.0, 0.1, 100.0);&lt;br /&gt;  loadIdentity();&lt;br /&gt;  mvTranslate([-1.5, 0.0, -7.0]);&lt;br /&gt;gl.bindBuffer(gl.ARRAY_BUFFER,triangleVertexPositionBuffer);&lt;br /&gt;gl.vertexAttribPointer(vertexPositionAttribute,triangleVertexPositionBuffer.itemSize,gl.FLOAT,false,0,0);&lt;br /&gt;gl.bindBuffer(gl.ARRAY_BUFFER,triangleVertexColorBuffer);&lt;br /&gt;gl.vertexAttribPointer(vertexColorAttribute,triangleVertexColorBuffer.itemSize,gl.FLOAT,false,0,0); setMatrixUniforms();&lt;br /&gt;gl.drawArrays(gl.TRIANGLES,0,triangleVertexPositionBuffer.numItems);&lt;br /&gt;mvTranslate([3.0, 0.0, 0.0]);&lt;br /&gt;gl.bindBuffer(gl.ARRAY_BUFFER,squareVertexPositionBuffer);&lt;br /&gt;gl.vertexAttribPointer(vertexPositionAttribute,squareVertexPositionBuffer.itemSize,gl.FLOAT,false, 0, 0);&lt;br /&gt;gl.bindBuffer(gl.ARRAY_BUFFER,squareVertexColorBuffer);&lt;br /&gt;gl.vertexAttribPointer(vertexColorAttribute,squareVertexColorBuffer.itemSize,gl.FLOAT,false,0,0);&lt;br /&gt;setMatrixUniforms();&lt;br /&gt;gl.drawArrays(gl.TRIANGLE_STRIP, 0, squareVertexPositionBuffer.numItems);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;...thats all folks!&lt;br /&gt;Ora abbiamo il colore nella nostra scena!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-8118230098052506228?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/8118230098052506228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2009/12/lezione-2-aggiungiamo-un-po-di-colore.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8118230098052506228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/8118230098052506228'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2009/12/lezione-2-aggiungiamo-un-po-di-colore.html' title='Lezione 2: aggiungiamo un po&apos; di colore...'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2698699932148222904.post-4239799282693447267</id><published>2009-12-18T23:51:00.000-08:00</published><updated>2009-12-18T23:51:40.326-08:00</updated><title type='text'>...si inizia!</title><content type='html'>&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;h2 class="title" style="font-size: 14pt;"&gt;&lt;/h2&gt;&lt;div style="font-family: Verdana,sans-serif; margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;A differenza di altre tecnologie per fare 3d su web, WebGL non richiede l'istallazione di plugin.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Per poterne vedere le funzionalita' bisogna avere (per ora) delle particolari versioni dei browser utilizzati... ed una scheda grafica con accelerazione 3d.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;In parole povere cosa vuol dire questo:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; margin-bottom: 0px; margin-top: 0px;"&gt;&lt;ul style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Se si possiede Internet Explorer bisogna rassegnarsi: per ora non c'e' supporto&lt;/span&gt;&lt;/li&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;ul style="font-family: Verdana,sans-serif; margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Se si usa Firefox, WebGL funziona nelle release sperimentali (le nightly, o meglio o compilati giornalieri che presentano le ultime features implementate ma poco testate) ed esistono le versioni per Windows, Mac OS X, e Linux.&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Se si usa Safari, WebGL funziona solo sui Mac.&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Se si usa Chrome, come il sottoscritto, si puo' trovare il supporto per WebGL nel canale dello sviluppo, dove si possono scaricare le versioni sperimentali.&lt;/span&gt;&lt;/li&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif; margin: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; margin: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Non staro' qui a spiegare o descrivere come far funzionare i vari browser... le istruzioni le trovate nei siti del browser specifico!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; margin: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Non lo faccio un po' per pigrizia (non ho voglia di tradurre e capire i vari settaggi da fare) e poi anche perche' mi voglio concentrare sull' aspetto piu' divertente: lo sviluppo! Ma vi rendete conto che prima c'era bisogno di un ambiente di compilazione ed ora viene tutto eseguito in tempo reale?!? E' vero, per cose complesse, per ora, il rischio e' quello di perdere il controllo, pero' questo, per me, e' un vincolo che verra' risolto presto.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; margin: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; margin: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;In giro troverete anche molte demo fatte con le quali potrete sperimentare gia' alcune funzionalita' di webgl... ma senza che ve le abbia spiegate io, quindi iniziamo subito con il primo esempio, non molto accattivante ma introduce bene le funzionalita' proposte da questa tecnologia. Daro' per scontato che si abbiano gia' alcuni rudimenti sulla programmazione web, sulla scrittura di codice html e come funziona javascript (penso che non tocchero' l'argomento css...), sulla matematica usata(matrici, vettori, etc...).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: x-small;"&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;body onload="webGLStart()"&amp;gt;&lt;br /&gt;&amp;lt;canvas id="lesson01-canvas" style="border: none;" width="500" height="500"&amp;gt;&lt;br /&gt;&amp;lt;/canvas&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: x-small;"&gt;Questo e' tutto l'html che, per ora, bisogna scrivere: tutto il resto e' javascript, o meglio webgl!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;Ora vediamo com'e' implementata la funzione javascript webGLStart():&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;function webGLStart() { var canvas = document.getElementById("lesson01-canvas"); initGL(canvas); initShaders() gl.clearColor(0.0, 0.0, 0.0, 1.0); gl.clearDepth(1.0) gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.LEQUAL); initBuffers(); setInterval(drawScene, 15); }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: x-small;"&gt;In ordine la funzione esegue:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;ottengo il riferimento all'oggetto canvas del mio documento html: questo e' il mio pannello dove "disegnero'" con le webgl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;inizializzo l'ambiente webgl nel pannello&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;inizializzo gli shaders&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;dico che quando "pulisco" il pannello lo voglio nero&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;pulisco tutto quello che visualizzo&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;abilitiamo il depth_test e la funzione da usare&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;inizializziamo qualche buffer, che conterrano informazioni sulle primitive che disegneremo&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;impostiamo l'intervallo della chiamata alla funzione drawscene ogni 15 millisecondi&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;Come funzionano initGL ed initShaders lo vedremo piu' avanti e ci permetteranno di capire meglio come "lavora" la pagina. Adesso soffermiamoci dulle funzioni initBuffers e drawscene.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;var triangleVertexPositionBuffer; var squareVertexPositionBuffer;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: x-small;"&gt;Prima di vedere la funzione dichiariamo due variabili che funzionano da buffer (in realta' webgl non usa delle variabili globali separate per ogni progetto, ma viene adottata questo approccio per semplificare le cose).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;function initBuffers() { triangleVertexPositionBuffer = gl.createBuffer();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: x-small;"&gt;Creiamo il buffer che conterra' la posizione dei vertici, che non sono altro che punti in uno spazio 3d che ci permetteranno di disegnare la nostra scena. Il buffer per ora occuopa veramente poco spazio nella nostra scheda grafica: se mettiamo la posizione dei vertici nel nostro codice di inizializzazione e, successivamente, ridisegnamo e' come se dicessimo a webgl "disegna le cose che ti ho detto prima", e cio' ci permette di rendere il nostro codice veramente efficente(soprattutto se i vertici da pochi diventano decine o centinaia di migliaia)!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexPositionBuffer);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;Qui specifichiamo che ogni operazione successiva che usera' il buffer operera' su quello specificato.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;var vertices = [ 0.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -1.0, 0.0 ];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Definiamo la posizione dei nostri vertici tramite una lista javascript.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(vertices), gl.STATIC_DRAW);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ora creiamo un oggetto&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;WebGLFloatArray&lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;basato sulla nostra lista javascript e diciamo a webgl di usarla per riempire il buffer corrente, ovvero il&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;triangleVertexPositionBuffer&lt;/span&gt;&lt;span style="font-size: small;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;triangleVertexPositionBuffer.itemSize = 3; triangleVertexPositionBuffer.numItems = 3;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ora settiamo due proprieta' del buffer, che ci serviranno di seguito per dire che i 9 elementi presenti nel buffer rappresentano 3 separate posizioni dei vertici&lt;/span&gt;&lt;span style="font-size: small;"&gt;(&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;numItems&lt;/span&gt;&lt;span style="font-size: small;"&gt;), &amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;ognuno dei quali e' definito da tre numeri&lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;itemSize&lt;/span&gt;&lt;span style="font-size: small;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ora che abbiamoi definito il buffer per il triangolo, facciamo lo stesso per il quadrato.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="color: #444444; margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: Courier New;"&gt;squareVertexPositionBuffer = gl.createBuffer();&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="color: #444444; margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: Courier New;"&gt;gl.bindBuffer(gl.ARRAY_BUFFER, squareVertexPositionBuffer);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;vertices = [ 1.0, 1.0, 0.0, -1.0, 1.0, 0.0, 1.0, -1.0, 0.0, -1.0, -1.0, 0.0 ]; gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(vertices), gl.STATIC_DRAW); squareVertexPositionBuffer.itemSize = 3; squareVertexPositionBuffer.numItems = 4; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ora vediamo la drawscene()&lt;/span&gt;&lt;span style="font-size: small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;function drawScene() { gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;Creiamo il canvas e prepariamolo per disegnarci qualcosa.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;perspective(45, 1.0, 0.1, 100.0);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;Qui settiamo la prospettiva con la quale visualizzare la scena&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-size: small;"&gt;. &lt;span style="font-size: x-small;"&gt;Di default webgl disegna gli oggetti che stanno in profondita' della stessa grandezza di quelli che stanno in primo piano, ovvero usa una vista ortogonale. Per ottenere un effetto diverso, ovvero oggetti sullo sfondo piu' piccoli rispetto a quelli in primo piano, dobbiamo specificare i settaggi della prospettiva usata. In questo caso stiamo dicendo che il field of view, ovvero l'asse verticale, e' di 45 gradi&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;; il ratio(la proporzione) fra altezza e larghezza del nostro canvas e' 1:1, che non vogliamo vedere oggetti che distano piu' di 0.1 unita' dalla nostra viewport e con vogliamo vedere oggetti che distano piu' di 100 unita' (nb: a cosa corrisponde una unita'? cos'e' la viewport?con che orientamento ruoto?)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;loadIdentity();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ora specifichiamo il centro della scena. Con le OpenGL, quando si disegna una scena lo si fa specificando, per ogni oggetto la posizione e rotazione attuale, es."trasla di 20 unita' in avanti, ruota di 32 gradi e disegna un robot”. Questo e' molto utile, perche' si puo' incapsulare "disegna il robot" in una funzione.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Le informazioni sulla posizione e sulla rotazione sono gestite con una matrice, chiamata&amp;nbsp;&lt;i&gt;model-view matrix&lt;/i&gt;, e la funzione&amp;nbsp;&lt;span style="font-family: Courier New;"&gt;loadIdentity&lt;/span&gt;&amp;nbsp;la setta con una mtrice identita' , in modo da essere pronti per moltiplicare traslazioni e rotazioni su essa.(ripeto, do per scontato anche la conoscenza di queste nozioni, me se ci sono domande...)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;mvTranslate([-1.5, 0.0, -7.0]);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Una volta posizionati al centro del nostro spazio 3d, con la chiamata loadidentity&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;, ci muoviamo 1.5 unita' a sinistra(ci muoviamo in senso negativo rispetto all'asse x, il primo valore specificato), e ci muoviamo di sette unita' in senso negativo rispetto all'asse z(il terzo valore specificato). Per tornare alla matematica, questa non fa altro che applicare una matrice di traslazione alla matrice identita'.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexPositionBuffer);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;gl.vertexAttribPointer(vertexPositionAttribute, triangleVertexPositionBuffer.itemSize, gl.FLOAT, false, 0, 0);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Usiamo&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;gl.bindBuffer&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;per specificare il buffer da usare e chiamiamo il codice che deve operare su esso.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Qui selezioniamo un&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;triangleVertexPositionBuffer&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;, che dice a webgl che i suoi valori devono essere usati come posizioni dei vertici, usando&amp;nbsp;&lt;span style="font-family: Courier New;"&gt;itemSize&lt;/span&gt;&amp;nbsp;per specificare che ogni vertice e' definito da tre numeri(x,y,z).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style="font-size: x-small;"&gt;setMatrixUniforms();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Tutte le matrici non sono proprieta' di WebGL, o meglio, non sono create inizialmente con questa tecnologia. Quando, per esempio, si esegue&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;mvTranslate&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;, lo si fa nell'ambiente JavaScript.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;setMatrixUniforms&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;trasforma il tutto nell'ambiente webgl.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Una volta fatto, webgl ha un array di numeri da usare come posizioni di vertici, e conosce la nostra matrice di trasformazione.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;gl.drawArrays(gl.TRIANGLES, 0, triangleVertexPositionBuffer.numItems);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ecco la chiamata principale che disegnera' la nostra primitiva! Il primo parametro dice che disegnero' dei triangoli, in questo caso uno, il terzo dice di usare il buffer creato prima, il secondo che deve partire dallo 0imo elemento per finire con il numItems-imo elemento(del buffer).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ora facciamo il tutto per il quadrato.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;mvTranslate([3.0, 0.0, 0.0])&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;Ricordiamoci che ci stiamo muovendo rispetto all'ultima matrice di trasformazione(quela che ci faceva spostare -1.5,0,-7!!!)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;gl.bindBuffer(gl.ARRAY_BUFFER, squareVertexPositionBuffer);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="color: #444444; font-family: Courier New;"&gt;gl.vertexAttribPointer(vertexPositionAttribute, squareVertexPositionBuffer.itemSize, gl.FLOAT, false, 0, 0);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style="font-size: x-small;"&gt;setMatrixUniforms();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style="font-size: x-small;"&gt;gl.drawArrays(gl.TRIANGLE_STRIP, 0, squareVertexPositionBuffer.numItems);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: x-small;"&gt;TRIANGLE_STRIP? Ma non era un quadrato? Beh, un quadrato e' in realta' fatto da due triangoli, no? In casi piu' complicati, come l'approssimazione di superfici, e' meglio usare come primitiva il triangolo, piuttosto che il quadrato,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #444444; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;Fine di drawscene!!!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;Prossimamente aggiungero' file di esempio, mettero' link a risorse esterne.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; vertical-align: baseline;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-size: small;"&gt;Mi sono reso conto che ho dato per scontato davvero molte cose, dunque se avete domande... non esitate a farmele!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="entry" style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2698699932148222904-4239799282693447267?l=webgl-it.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webgl-it.blogspot.com/feeds/4239799282693447267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://webgl-it.blogspot.com/2009/12/si-inizia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4239799282693447267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2698699932148222904/posts/default/4239799282693447267'/><link rel='alternate' type='text/html' href='http://webgl-it.blogspot.com/2009/12/si-inizia.html' title='...si inizia!'/><author><name>Fast3d</name><uri>http://www.blogger.com/profile/04801650984948620391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_rIrwaVHDyTw/SqXvok7TZyI/AAAAAAAAAj8/kT_7LpJlHlc/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry></feed>
