<?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-3244029371303226735</id><updated>2012-02-11T09:55:53.515-08:00</updated><category term='resource'/><category term='book'/><category term='example'/><title type='text'>Learn WebGL by example</title><subtitle type='html'>Learn 3D computer graphics programming on the browser using WebGL by examples.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://learnwebgl.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://learnwebgl.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>webgl2000</name><uri>http://www.blogger.com/profile/07402127257027325098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3244029371303226735.post-1308143721823209299</id><published>2009-11-04T10:05:00.051-08:00</published><updated>2009-11-05T07:46:50.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='example'/><title type='text'>Hello Triangle</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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="font-size: large;"&gt;First example, Hello Triangle!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="font-size: large;"&gt;Prerequisites:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="font-size: large;"&gt;&lt;a href="http://learnwebgl.blogspot.com/2009/11/setting-up-webgl-on-firefox-nightly.html"&gt;&lt;/a&gt; &lt;a href="http://learnwebgl.blogspot.com/2009/11/setting-up-webgl-on-firefox-nightly.html"&gt;Enabling WebGL on your browser&lt;/a&gt;. It is required to run the examples.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;a href="http://www.amazon.com/gp/product/0321502795?ie=UTF8&amp;amp;tag=inew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321502795" style="color: #999999; text-decoration: none;"&gt;OpenGL(R) ES 2.0 Programming Guide&lt;/a&gt; - highly recommended to understand the OpenGL concepts. The examples focus on WebGL specifics.&lt;/span&gt; &lt;br /&gt;&lt;/li&gt;&lt;/ul&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="font-size: large;"&gt;&amp;nbsp;Click&amp;nbsp;&lt;a href="http://learnwebgl.appspot.com/example/helloTriangle.html" style="color: #999999; text-decoration: none;"&gt;here&amp;nbsp;&lt;/a&gt;to see the demo and full source code.&lt;br /&gt;&lt;br /&gt;Let's start from here.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="border-collapse: separate; color: black; 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-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; 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-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; 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;&amp;nbsp; function main() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; initialize();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw();&lt;br /&gt;&amp;nbsp; } // main&lt;br /&gt;&lt;br /&gt;&amp;nbsp; window.onload = main;&amp;nbsp;&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;Once the browser has loaded the window, it will call main() function.&amp;nbsp;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;They are just standard JavaScript running on a browser.&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;initialize()&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;&amp;nbsp;will call&amp;nbsp;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;getGl()&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-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: large;"&gt;function. OpenGL is available on many different platforms and works with many different windows systems. It is designed to complement the window systems. It provides various extensions to various window systems. For example, AGL for Apple Macintosh,&lt;/span&gt;&amp;nbsp;&lt;/span&gt;GLX for X Window System and WGL for Microsoft Window. The following code shows how to bind the HTML canvas with the OpenGL context object in a browser.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&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-size: large;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&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',Courier,monospace;"&gt;function getGl() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var theCanvas = document.getElementById("webGlCanvas");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl = theCanvas.getContext("moz-webgl"); // Firefox&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!gl)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl = theCanvas.getContext("webkit-3d"); // Safari or Chrome&lt;br /&gt;&lt;/span&gt;}&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;&amp;nbsp;&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&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;OpenGL 2.0 is the sixth revision of the OpenGL API. One of the major changes is the programmable processing for vertices and fragments using OpenGL shading language. Below shows the Programmable and Fixed Function pipelines from&lt;a href="https://www.khronos.org/" style="color: #999999; text-decoration: none;"&gt; Khronos Group&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;a href="http://vip.cs.utsa.edu/classes/cs5113s2007/lectures/images/opengles_20_pipeline.gif" imageanchor="1" style="color: #5588aa; margin-left: 1em; margin-right: 1em; text-decoration: none;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="https://www.khronos.org/opengles/2_X/img/opengles_20_pipeline.gif" imageanchor="1" style="color: #5588aa; margin-left: 1em; margin-right: 1em; text-decoration: none;"&gt;&lt;img border="0" src="https://www.khronos.org/opengles/2_X/img/opengles_20_pipeline.gif" style="border-style: none; border-width: 0px;" /&gt;&lt;/a&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: Georgia,serif; font-size: 23px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;a href="https://www.khronos.org/opengles/2_X/img/opengles_1x_pipeline.gif" imageanchor="1" style="color: #5588aa; margin-left: 1em; margin-right: 1em; text-decoration: none;"&gt;&lt;img border="0" src="https://www.khronos.org/opengles/2_X/img/opengles_1x_pipeline.gif" style="border-style: none; border-width: 0px;" /&gt;&lt;/a&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;We define the "&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;vertexShader&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;" as the following:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&gt;&lt;br /&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',Courier,monospace;"&gt;&amp;nbsp; attribute vec4 vPosition;&lt;br /&gt;&amp;nbsp; void main() {&lt;/span&gt;&lt;/span&gt;&lt;br /&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',Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl_Position = vPosition;&lt;br /&gt;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&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',Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;Also, the "&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;fragmentShader&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;" as the following:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&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;&amp;nbsp;&lt;/span&gt;&lt;br /&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',Courier,monospace;"&gt;&amp;nbsp; void main() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);&lt;br /&gt;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;getVertexShader()&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; 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',Courier,monospace;"&gt;getShaderSource&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;()&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;retrieve the vertex shader information.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&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',Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; function getVertexShader() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var shaderNode = document.getElementById("vertexShader");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var shaderSource = getShaderSource(shaderNode);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var shader = gl.createShader(gl.VERTEX_SHADER);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.shaderSource(shader, shaderSource);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.compileShader(shader);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return shader;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&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',Courier,monospace;"&gt;&amp;nbsp; function getShaderSource(shaderNode) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var shaderSource = "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var node = shaderNode.firstChild;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (node) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (node.nodeType == 3) // Node.TEXT_NODE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shaderSource += node.textContent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node = node.nextSibling;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return shaderSource;&lt;br /&gt;&lt;/span&gt;&amp;nbsp; }&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman';"&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;/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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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: Georgia,serif;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; 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',Courier,monospace;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;The &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; 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: Georgia,serif;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; 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',Courier,monospace;"&gt;getFragmentShader()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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: Georgia,serif;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; 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',Courier,monospace;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&amp;nbsp;does similar thing for fragment shader.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;The remaining code on the&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt; initialize()&lt;/span&gt;&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;shows how to bind, compile and link them.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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',Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var shaderProgram = gl.createProgram();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.attachShader(shaderProgram, vertexShader);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.attachShader(shaderProgram, fragmentShader);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.bindAttribLocation(shaderProgram, 0, "vPosition");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.linkProgram(shaderProgram);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.useProgram(shaderProgram);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; 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;&amp;nbsp;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; var buffer = gl.createBuffer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.bindBuffer(gl.ARRAY_BUFFER, buffer);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&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;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;Now the OpenGL has been initialized, we are ready to draw.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&gt;&lt;br /&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',Courier,monospace;"&gt;function draw() { // Draw the picture&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var vertices = [ 0.0, 0.5, 0.0,&lt;/span&gt;&lt;/span&gt;&lt;br /&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',Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -0.5, -0.5, 0.0,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.5, -0.5, 0.0 ];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.bufferData(gl.ARRAY_BUFFER, new CanvasFloatArray(vertices), gl.STATIC_DRAW);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); // Load the vertex data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.enableVertexAttribArray(0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.drawArrays(gl.TRIANGLES, 0, 3);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gl.flush();&lt;br /&gt;&lt;/span&gt;}&lt;/span&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;span style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: large; 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;See the following for more info&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321502795?ie=UTF8&amp;amp;tag=inew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321502795" style="color: #999999; text-decoration: none;"&gt;OpenGL(R) ES 2.0 Programming Guide&lt;/a&gt;&lt;/li&gt;&lt;li&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: Georgia,serif; font-size: 23px;"&gt;&lt;a href="http://www.amazon.com/gp/product/0596101996?ie=UTF8&amp;amp;tag=inew-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596101996" style="color: #999999; text-decoration: none;"&gt;JavaScript: The Definitive Guide&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ul&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;Thanks to&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&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: Georgia,serif; font-size: 23px;"&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: Georgia,serif; font-size: 23px;"&gt;&lt;li&gt;&lt;a href="http://euclid.jimpick.com/" style="color: #999999; text-decoration: none;"&gt;WebGL Experiments&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://learningwebgl.com/blog/" style="color: #999999; text-decoration: none;"&gt;Learning WebGL&lt;/a&gt;&amp;nbsp;by giles&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nihilogic.dk/labs/webgl_cheat_sheet/WebGL_Cheat_Sheet.htm" style="color: #999999; text-decoration: none;"&gt;WebGL API Cheat Sheet&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ul&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: Georgia,serif; font-size: 23px;"&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/3244029371303226735-1308143721823209299?l=learnwebgl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://learnwebgl.blogspot.com/feeds/1308143721823209299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/hello-triangle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/1308143721823209299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/1308143721823209299'/><link rel='alternate' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/hello-triangle.html' title='Hello Triangle'/><author><name>webgl2000</name><uri>http://www.blogger.com/profile/07402127257027325098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3244029371303226735.post-1779682781215308450</id><published>2009-11-03T20:29:00.007-08:00</published><updated>2009-11-05T09:58:26.987-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='example'/><title type='text'>Enabling WebGL on your browser</title><content type='html'>&lt;span style="font-size: large;"&gt;Enabling WebGL on FireFox Nightly Builds&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to &lt;a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/"&gt;FireFox nightly build&lt;/a&gt; site.&lt;/li&gt;&lt;li&gt;Download the file. For example, &lt;b&gt;&lt;i&gt;firefox-3.7a1pre.en-US.win32.installer.exe&lt;/i&gt;&lt;/b&gt; for Microsoft Windows (as of November 3, 2009).&lt;/li&gt;&lt;li&gt;Install it.&lt;/li&gt;&lt;li&gt;Run the new Firefox. It is called Minefield as of November 3, 2009.&lt;/li&gt;&lt;li&gt;Enter "&lt;b&gt;about:config&lt;/b&gt;" as the web address on the Firefox.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Search for "&lt;b&gt;webgl&lt;/b&gt;".&lt;/li&gt;&lt;li&gt;Double-click "&lt;b&gt;webgl.enabled_for_all_sites&lt;/b&gt;" to change the value from &lt;b&gt;false &lt;/b&gt;to &lt;b&gt;true&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;I use this version side by side with the official released version 3.5. Click &lt;a href="http://blog.vlad1.com/2009/09/18/webgl-in-firefox-nightly-builds/"&gt;here &lt;/a&gt;for more info. &lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size: large;"&gt;Enabling WebGL on Chrome&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Go to Chrome &lt;a href="http://build.chromium.org/buildbot/continuous/LATEST/"&gt;Index of /buildbot/continuous/LATEST&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;Download chrome-win32.zip&lt;/li&gt;&lt;li&gt;Unzip it&lt;/li&gt;&lt;li&gt;Run Command Prompt&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Click Windows Start Button at the bottom left corner of your desktop&lt;/li&gt;&lt;li&gt;Click All Programs&lt;/li&gt;&lt;li&gt;Click Accessories&lt;/li&gt;&lt;li&gt;Click Command Prompt (cmd.exe)&lt;/li&gt;&lt;li&gt;Command Prompt Windows will show up&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Change to the directory where you unzip the Chrome&lt;/li&gt;&lt;li&gt;Run Chrome by typing "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;chrome.exe --enable-webgl --no-sandbox&lt;/span&gt;"&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size: large;"&gt;Click &lt;a href="http://learningwebgl.com/blog/?p=11"&gt;here&lt;/a&gt; for other browsers.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3244029371303226735-1779682781215308450?l=learnwebgl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://learnwebgl.blogspot.com/feeds/1779682781215308450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/setting-up-webgl-on-firefox-nightly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/1779682781215308450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/1779682781215308450'/><link rel='alternate' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/setting-up-webgl-on-firefox-nightly.html' title='Enabling WebGL on your browser'/><author><name>webgl2000</name><uri>http://www.blogger.com/profile/07402127257027325098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3244029371303226735.post-8346983009894411681</id><published>2009-11-03T20:11:00.004-08:00</published><updated>2009-11-04T21:16:46.746-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Books</title><content type='html'>&lt;table style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="width: 139px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321502795" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt; &lt;td style="width: 102px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321637631" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt; &lt;td style="width: 135px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321552628" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt; &lt;td style="width: 132px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=032163764X" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321498828" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="width: 139px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0122861663" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 139px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0120644819" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 102px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0124096735" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 132px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0123361559" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0125434553" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="width: 139px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321228324" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 139px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321335597" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 102px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321515269" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 132px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0321194969" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=1558607404" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="width: 139px;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=inew-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=0596101996" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 139px;"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 135px;"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="width: 132px;"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3244029371303226735-8346983009894411681?l=learnwebgl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://learnwebgl.blogspot.com/feeds/8346983009894411681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/books.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/8346983009894411681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/8346983009894411681'/><link rel='alternate' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/books.html' title='Books'/><author><name>webgl2000</name><uri>http://www.blogger.com/profile/07402127257027325098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3244029371303226735.post-2951925623204695642</id><published>2009-11-03T20:10:00.022-08:00</published><updated>2009-11-07T09:22:48.948-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resource'/><title type='text'>Resources</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;a href="http://learnwebgl.blogspot.com/2009/11/setting-up-webgl-on-firefox-nightly.html"&gt;Enabling WebGL on your browser&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://euclid.jimpick.com/"&gt;Euclid Jimpick&lt;/a&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/"&gt;   Firefox nighly build&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cs.rit.edu/%7Ebpd9116/webgl/glUtils.js"&gt;glUtils.js&lt;/a&gt;&amp;nbsp; - &lt;a href="http://www.cs.rit.edu/%7Ebpd9116/webgl/OneSpinningTriangle.html"&gt;Spinning Triangle demo&lt;/a&gt; from &lt;a href="http://bjartr.blogspot.com/"&gt;One Geek's Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://www.khronos.org/developers/resources/webgl/#tutilities"&gt;  Khronos&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://learnwebgl.appspot.com/"&gt;Learn WebGL blog table of contents&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://learningwebgl.com/blog/"&gt;Learning WebGL by giles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://readysetstop.blogspot.com/"&gt;Mark Steele blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://nehe.gamedev.net/"&gt;NeHe (Neon Helium Productions)&lt;/a&gt; -   OpenGL Tutorials&lt;/li&gt;&lt;li&gt;&lt;a href="http://bjartr.blogspot.com/"&gt;One Geek's Blog&lt;/a&gt; - Benjamin DeLillo's Project Blog&amp;nbsp; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.khronos.org/opengles/2_X/"&gt;OpenGL ES 2.0 home page&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.khronos.org/opengles/sdk/docs/man/"&gt;OpenGL ES 2.0 API&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf"&gt;OpenGL ES Shading Language version 1.0&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.opengl-redbook.com/"&gt;OpenGL Red Book&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.planet-webgl.org/"&gt;Planet WebGL&lt;/a&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://blog.vlad1.com/2009/09/18/webgl-in-firefox-nightly-builds/"&gt;  Vladimir Vukićević blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://webkit.org/blog/603/webgl-now-available-in-webkit-nightlies/"&gt;WebGL on WebKit&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;WebGL Cheat Sheet [&lt;a href="http://www.nihilogic.dk/labs/webgl_cheat_sheet/WebGL_Cheat_Sheet.pdf"&gt;pdf&lt;/a&gt;] [&lt;a href="http://www.nihilogic.dk/labs/webgl_cheat_sheet/WebGL_Cheat_Sheet.htm"&gt;html&lt;/a&gt;]&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://learningwebgl.com/cookbook/index.php/Main_Page"&gt;WebGL Cookbook&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.khronos.org/message_boards/viewforum.php?f=34"&gt;WebGL forum&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://en.wikipedia.org/wiki/WebGL"&gt;WebGL on wikipedia&lt;/a&gt;&lt;/li&gt;&lt;li&gt;  &lt;a href="http://sourceforge.net/projects/webglu/"&gt;WebGLU&lt;/a&gt; - Javascript   utility library for working with WebGL. WebGLU makes developing WebGL   applications easier.&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://webglu.svn.sourceforge.net/viewvc/webglu/trunk/src/webglu.js"&gt;WebGLU source code&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://webkit.org/blog-files/webgl/resources/CanvasMatrix.js"&gt;WebKit CanvasMatrix.js&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3244029371303226735-2951925623204695642?l=learnwebgl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://learnwebgl.blogspot.com/feeds/2951925623204695642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/resources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/2951925623204695642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3244029371303226735/posts/default/2951925623204695642'/><link rel='alternate' type='text/html' href='http://learnwebgl.blogspot.com/2009/11/resources.html' title='Resources'/><author><name>webgl2000</name><uri>http://www.blogger.com/profile/07402127257027325098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
