<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet WebGL</title>
  <updated>2010-07-31T23:00:09Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Christopher Blizzard</name>
    <email>blizzard@mozilla.com</email>
  </author>
  <id>http://planet-webgl.com/atom.xml</id>
  <link href="http://planet-webgl.com/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://planet-webgl.com/" rel="alternate"/>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2481</id>
    <link href="http://learningwebgl.com/blog/?p=2481" rel="alternate" type="text/html"/>
    <title>Shader validation and other API changes</title>
    <summary>There are some API changes coming in WebGL, which will probably require pretty much all of the WebGL content out there to be modified; the changes are likely to go live in Minefield in a week or two, so we need to get moving!  Vladimir Vukićević and Benoit Jacob have given the details in [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>There are some API changes coming in WebGL, which will probably require pretty much all of the WebGL content out there to be modified; the changes are likely to go live in Minefield in a week or two, so we need to get moving!  Vladimir Vukićević and Benoit Jacob have given the details in two posts <a href="http://www.khronos.org/webgl/public-mailing-list/archives/1007/msg00034.html">on the public WebGL mailing list</a>.  Here’s a summary:</p>
<ul>
<li>Fragment shaders will now be validated to make sure that they are correct for WebGL / OpenGL ES; previously you could get away with using quite a lot of desktop OpenGL stuff, in particular missing out the mandatory precision specifier in fragment shaders (see the mailing list for details and a fix from Vladimir).  In the short term, whether or not this validation happens will be optional, decided by the brower’s user, and off by default.  However, it will become mandatory, so you should switch it on now to test your content.  To switch it on:
<ul>
<li>In Minefield, go to <code>about:config</code> and change <code>webgl.shader_validator</code> to true.</li>
<li>In Chromium, pass <code>--enable-glsl-translator</code> in on the command line.</li>
<li>There are no details on how to do it in WebKit yet.
</li></ul>
</li>
<li>The <code>gl.texImage2D</code> function has changed its signature.  Brandon Jones <a href="http://blog.tojicode.com/2010/07/obsolete-teximage2d-wha.html">posted</a> about this the other week, noting that Chromium warnsyou when you use the old form; both old and new forms of the function have been supported by the browsers for a while, but the old one will soon be gone.</li>
<li>As Andor Salga <a href="http://asalga.wordpress.com/2010/07/14/compensating-for-webgl-readpixels-spec-changes/">mentioned</a> recently, <code>gl.readPixels</code> has also changed.</li>
</ul>
<p>So, I’m going to go through all of my demos and tutorial code and change to the new APIs; if you have WebGL content live on the Web, you should too!</p></div>
    </content>
    <updated>2010-07-28T20:20:15Z</updated>
    <category term="API changes"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2478</id>
    <link href="http://learningwebgl.com/blog/?p=2478" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 28 July 2010</title>
    <summary>Quite a lot of links for today, some of them quite old — but now my backlog is cleared, and just in time: SIGGRAPH is running right now — Dennis Ippel and Benjamin Delillo, who often appear in these roundups, are there — so I’m sure we can expect a rush of further news over [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Quite a lot of links for today, some of them quite old — but now my backlog is cleared, and just in time: SIGGRAPH is running right now — <a href="http://www.rozengain.com/blog/2010/07/27/speaking-at-siggraph-2010/">Dennis Ippel</a> and <a href="http://twitter.com/Bjartr/status/19764677372">Benjamin Delillo</a>, who often appear in these roundups, are there — so I’m sure we can expect a rush of further news over the next few days :-)</p>
<ul>
<li>On <a href="http://groups.google.com/group/webgl-dev-list/browse_thread/thread/af8191cddd2b6620">the WebGL developers’ list</a> and <a href="http://www.peternitsch.net/blog/?p=741">on his blog</a>, Peter Nitsch has posted about some really cool pages he’s built using Flash to access your webcam and provide textures that can be used in WebGL scenes: <a href="http://www.peternitsch.net/demo/webgl_webcam/">a cube</a>, and adaptions of two of <a href="http://www.iquilezles.org/">IQ</a>’s demos, <a href="http://www.peternitsch.net/demo/webgl_webcam/kaleido.html">a kaleidoscope</a> and <a href="http://www.peternitsch.net/demo/webgl_webcam/raytracer.html">a raytracer</a> — very cool stuff!  So Flash is still good for something ;-)</li>
<li>An even prettier demo, also from Peter, is <a href="http://www.peternitsch.net/blog/?p=769">this Mandelbox explorer</a>.</li>
<li>I mentioned SIGGRAPH — one of the big announcements there was that AMD will be shipping EGL and OpenGL ES drivers for their graphics cards, which are better-known under their ATI brand.  If you’re wondering why that’s important for WebGL, given that it works on ATI cards already, <a href="http://blog.vlad1.com/2010/07/26/egl-opengl-es-come-to-windows/">Vladimir Vukićević  has an explanation</a>.</li>
<li><a href="http://scenejs.wikispaces.com/V0.7.6+Release+Notes">SceneJS V0.7.6 has been released</a>!  It’s has more new features than I can list here, so follow that link.</li>
<li><a href="http://www.glge.org/webgl-glge-updates-and-demos-video-canvas-textures-plus-filters/">Some great new demos for Paul Brunt’s GLGE</a>: 2D filters, video textures and canvas-based textures.</li>
<li>A bit of a mash-up from Dennis Ippel: <a href="http://www.rozengain.com/blog/2010/07/23/visualizing-lastfm-data-with-webgl-glge-jquery/">visualising Last.fm data with WebGL, GLGE and jQuery</a>.</li>
<li>Here’s <a href="http://vcg.isti.cnr.it/Publications/2010/DPGS10/">a formal academic paper on SpiderGL</a>.</li>
<li>Here’s a fun game from Nikolaus Gebhardt (one of the CopperLicht guys): <a href="http://www.ambiera.at/copperlicht/demos/asteroid/">WebGL Asteroids</a>.  The author’s <a href="http://www.irrlicht3d.org/pivot/entry.php?id=1093">written about it here</a>, with an interesting comparison of how “ready” the different technologies he used are.</li>
<li>Charles Cliffe’s CubicVR 3D engine now supports <a href="http://cubicvr.org/CubicVR.js/fluid_sim/GPUFluid.html">GPU fluids</a>.</li>
<li><a href="http://x3dom.org/x3dom/example/x3dom_animatedLights.xhtml">A demo of using multiple animated lights in X3DOM</a>.</li>
<li>From Andor Salga, <a href="http://asalga.wordpress.com/2010/07/14/compensating-for-webgl-readpixels-spec-changes/">a useful hint about using <code>gl.readPixels</code></a>, which is currently implemented differently by different browsers.</li>
<li>Andor’s XB Pointstream is going from strength to strength, and <a href="http://asalga.wordpress.com/2010/07/28/xb-pointstream-0-4-released/">now supports streaming</a> so that you don’t have to wait for a whole point cloud to load before you see it — useful with demos like their 22Mb model of a lion!</li>
<li>Fun: <a href="http://kikko.fr/lab/webgl/modelviewer/">some models from a computer game called “Yo Frankie!”</a></li>
<li>From Max (aka Yi Ren) at the University of Michigan, <a href="http://www-personal.umich.edu/~yiren/test0708.html">a car modeller that he’s ported from Sketchup</a>.</li>
<li>Here’s a real-world use for WebGL: <a href="http://www.twodee.org/blog/?p=166">proving that the crescent moon is drawn wrongly in children’s books</a> :-)</li>
<li>If you’d like a solid introduction to WebGL, <a href="http://www.informit.com/articles/article.aspx?p=1613551">this is worth reading</a> (<a href="http://twitter.com/henrikbennetsen/statuses/19633420579">via</a> Henrik Bennetsen)
</li></ul></div>
    </content>
    <updated>2010-07-28T20:07:58Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1704</id>
    <link href="http://asalga.wordpress.com/2010/07/28/xb-pointstream-0-4-released/" rel="alternate" type="text/html"/>
    <title>XB PointStream 0.4 Released!</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We’ve released XB PointStream 0.4! Have a WebGL-enabled browser? Check out the demos! Or check out our video. What is XB PointStream? XB PointStream is a JavaScript library which will emulate Arius3D‘s PointStream viewer. It is designed to quickly render a large amount of point cloud data to the &lt;canvas&gt; tag using WebGL. Features Landed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1704&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We’ve released <a href="http://zenit.senecac.on.ca/wiki/index.php/XB_PointStream">XB PointStream 0.4</a>! Have a <a href="http://www.khronos.org/webgl/">WebGL</a>-enabled browser? Check out the <a href="http://scotland.proximity.on.ca/asalga/">demos</a>! Or check out our <a href="http://www.youtube.com/watch?v=kPqJGD8VCbs">video</a>.</p>
<p><a href="http://scotland.proximity.on.ca/asalga/"><img alt="" class="alignnone size-medium wp-image-1707" height="300" src="http://asalga.files.wordpress.com/2010/07/lion.jpg?w=300&amp;h=300" title="Lion" width="300"/></a><br/>
</p>
<h2>What is XB PointStream?</h2>
<p>XB PointStream is a JavaScript library which will emulate <a href="http://www.arius3d.com/">Arius3D</a>‘s PointStream viewer. It is designed to quickly render a large amount of point cloud data to the &lt;canvas&gt; tag using <a href="http://www.khronos.org/webgl/">WebGL</a>.<br/>
</p>
<h2>Features Landed</h2>
<p>In this release we added streaming support, you no longer have to wait until the entire point cloud is downloaded before viewing it. Also, there was an issue rendering on some versions of OS X and Linux, which we fixed. Our PSI reader is coming along and has been pushed into our <a href="http://github.com/asalga/XB-PointStream">Github repository</a>.<br/>
</p>
<h2>Get Involved!</h2>
<p>If you’d like to get involved in development, testing or if you simply want to suggest ideas, visit us in the #seneca channel in <a href="irc://irc.mozilla.org/seneca">irc.mozilla.org</a>. Or file some tickets on our <a href="http://cdot.lighthouseapp.com/projects/52886-xb-pointstream">Lighthouse page</a>. If you wanna get your hands dirty and hack some code, fork our repository from <a href="http://github.com/asalga/XB-PointStream">Github</a>.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/arius3d/">Arius3D</a>, <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>, <a href="http://asalga.wordpress.com/category/xb-pointstream/">XB PointStream</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1704/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1704/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1704/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1704/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1704/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1704&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-07-28T17:12:11Z</updated>
    <category term="Arius3D"/>
    <category term="Open Source"/>
    <category term="WebGL"/>
    <category term="XB PointStream"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.peternitsch.net/blog/?p=769</id>
    <link href="http://www.peternitsch.net/blog/?p=769" rel="alternate" type="text/html"/>
    <title>Exploring a Mandelbox with WebGL</title>
    <summary>WebGL Mandelbox Explorer
Note: This demo requires a WebGL capable browser. Installation instructions can be found at Learning WebGL or the WebGL Wiki.
This weekend I put the finishing touches on a WebGL Mandelbox explorer I’ve been tinkering with for the past week or so. If you’re interested in the mathematics, Tom Lowes who wrote the Mandelbox [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.peternitsch.net/demo/mandelbox/" target="_blank"><img src="http://www.peternitsch.net/images/box_1.jpg"/></a></p>
<p><a href="http://www.peternitsch.net/demo/mandelbox/" target="_blank">WebGL Mandelbox Explorer</a></p>
<p><em><strong>Note:</strong> This demo requires a WebGL capable browser. Installation instructions can be found at <a href="http://learningwebgl.com/blog/?p=11">Learning WebGL</a> or the <a href="http://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">WebGL Wiki</a>.</em></p>
<p>This weekend I put the finishing touches on a WebGL Mandelbox explorer I’ve been tinkering with for the past week or so. If you’re interested in the mathematics, Tom Lowes who wrote the <a href="http://en.wikipedia.org/wiki/Mandelbox">Mandelbox formula</a> does a good job explaining it in detail on his <a href="http://sites.google.com/site/mandelbox/what-is-a-mandelbox">site</a>. I’ve been captivated with the pattern ever since watching Krzysztof Marczak’s amazing <a href="http://www.youtube.com/watch?v=bO9ugnn8DbE">Mandelbox trip</a> on YouTube (a must-see).  </p>
<p><span id="more-769"/><img src="http://www.peternitsch.net/images/box_2.jpg"/></p>
<p>Traversing a 3D Mandelbox in real-time is intensive on any platform, but WebGL does a fairly good job thanks to the GPU. I still need to lower the fractal iterations upon interaction, but that was expected. Rrrola was nice enough to <a href="http://www.fractalforums.com/3d-fractal-generation/where-are-the-realtime-gpu-mandelboxeds/">post some source</a> for his <a href="http://www.ms.mff.cuni.cz/~kadlj3am/big/boxplorer/">real-time explorer</a>, which I ported to this version. I’ll add my own refinements over time as I get more comfortable with the formula. </p>
<p><img src="http://www.peternitsch.net/images/box_3.jpg"/></p>
<p>There is plenty of room for refinement, but basic mouse and keyboard movement controls make exploration fairly simple. Things like camera viewing angles will be patched in over time. </p>
<p><img src="http://www.peternitsch.net/images/box_4.jpg"/></p>
<p>This will be an evolving project. If you stumble upon any bugs or have suggestions, I’d love to hear them.  </p></div>
    </content>
    <updated>2010-07-26T15:10:09Z</updated>
    <category term="WebGL"/>
    <category term="fractals"/>
    <category term="HTML5"/>
    <category term="Javascript"/>
    <author>
      <name>Peter Nitsch</name>
    </author>
    <source>
      <id>http://www.peternitsch.net/blog</id>
      <link href="http://www.peternitsch.net/blog/?feed=rss2&amp;cat=97" rel="self" type="application/atom+xml"/>
      <link href="http://www.peternitsch.net/blog" rel="alternate" type="text/html"/>
      <title>peter nitsch.net » WebGL</title>
      <updated>2010-07-26T15:20:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2473</id>
    <link href="http://learningwebgl.com/blog/?p=2473" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 21 July 2010</title>
    <summary>Sick of JavaScript’s and GLSL’s syntax?  Well, you could try writing your WebGL code and shaders in C# and cross-compiling them…
Andor Salga has released version 0.3 of XB PointStream, a WebGL viewer that can show models made up of massive numbers of points.
Here’s another website Andor’s done, with an appropriate name: http://www.doesmybrowsersupportwebgl.com/.  Must [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul>
<li>Sick of JavaScript’s and GLSL’s syntax?  Well, you could try <a href="http://zproxy.wordpress.com/2010/07/12/write-webgl-in-c-with-jsc/">writing your WebGL code and shaders in C# and cross-compiling them</a>…</li>
<li>Andor Salga has released <a href="http://asalga.wordpress.com/2010/07/13/xb-pointstream-0-3-released/">version 0.3 of XB PointStream</a>, a WebGL viewer that can show models made up of massive numbers of points.</li>
<li>Here’s another website Andor’s done, with an appropriate name: <a href="http://www.doesmybrowsersupportwebgl.com/">http://www.doesmybrowsersupportwebgl.com/</a>.  Must have taken ages to write ;-)</li>
<li>A fun WebGL game from 3dgames.pl: <a href="http://3dgames.pl/blog/2010/07/nowa-gra-w-webgl-curling/">Curling</a> (the blog post is in Polish, but the game is in English).</li>
<li><a href="http://asydik.wordpress.com/2010/07/13/toronto-webgl-community/">This is the Toronto WebGL Community</a>!  Hmm, anyone fancy a London WebGL meetup?</li>
<li>Benjamin Davis is using the O3D port to WebGL; starting with a <a href="http://bnhw.co.uk/3d/first-steps-with-o3d-and-webgl/">a spinning cylinder</a> but immediately moving on to something much more advanced: <a href="http://bnhw.co.uk/3d/depth-of-field-in-o3d/">depth-of-field post-processing</a> (sadly the latter didn’t work for me in Minefield — but it was fine in Chromium).
</li><li>If you want to add your thoughts on the pros and cons of WebGL, <a href="http://www.quora.com/What-are-the-pros-cons-of-webgl">here’s a good place</a>.</li>
</ul></div>
    </content>
    <updated>2010-07-21T14:04:20Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1689</id>
    <link href="http://asalga.wordpress.com/2010/07/17/does-my-browser-support-webgl/" rel="alternate" type="text/html"/>
    <title>Does My Browser Support WebGL?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Sometimes I want to know if my browser supports WebGL–without loading a large and fancy demo or digging through about:config. www.DoesMyBrowserSupportWebGL.com will give me a straightforward answer. This is especially useful if your desktop looks anything like mine: Is WebGL enabled? Is this new demo broken? Didn’t I just do an update? Am I using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1689&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Sometimes I want to know if my browser supports <a href="http://www.khronos.org/webgl/">WebGL</a>–without loading a large and fancy demo or digging through about:config.</p>
<p><a href="http://www.DoesMyBrowserSupportWebGL.com">www.DoesMyBrowserSupportWebGL.com</a> will give me a straightforward answer. This is especially useful if your desktop looks anything like mine:</p>
<p><a href="http://asalga.files.wordpress.com/2010/07/browsers.jpg"><img alt="" class="alignnone size-medium wp-image-1690" height="232" src="http://asalga.files.wordpress.com/2010/07/browsers.jpg?w=300&amp;h=232" title="browsers" width="300"/></a></p>
<p>Is WebGL enabled? Is this new demo broken? Didn’t I just do an update? Am I using the right profile? This site expunges one variable to investigate.</p>
<p><a href="http://www.DoesMyBrowserSupportWebGL.com">Yay or Nay</a>.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1689/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1689/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1689/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1689/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1689/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1689/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1689/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1689/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1689/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1689/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1689&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-07-17T14:26:27Z</updated>
    <category term="Open Source"/>
    <category term="WebGL"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1666</id>
    <link href="http://asalga.wordpress.com/2010/07/14/compensating-for-webgl-readpixels-spec-changes/" rel="alternate" type="text/html"/>
    <title>Compensating for WebGL readPixels() Spec Changes</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I’m currently working on two projects which, in some way use WebGL‘s readPixels(). In Processing.js it is needed when running ref tests with 3D sketches. In XB PointStream it is used to get a screenshot of a point cloud on the user’s request. In my last blog I wrote about some trouble I had calling [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1666&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’m currently working on two projects which, in some way use <a href="http://www.khronos.org/webgl/">WebGL</a>‘s readPixels(). In <a href="https://www.processingjs.org">Processing.js</a> it is needed when running <a href="http://vocamus.net/dave/?p=1039">ref tests</a> with 3D sketches. In <a href="http://github.com/asalga/XB-PointStream">XB PointStream</a> it is used to get a <a href="http://scotland.proximity.on.ca/asalga/demos/acorn/acorn.html">screenshot of a point cloud</a> on the user’s request.</p>
<p><a href="http://scotland.proximity.on.ca/asalga/demos/acorn/acorn.html"><img alt="" class="alignnone size-medium wp-image-1682" height="300" src="http://asalga.files.wordpress.com/2010/07/snapshot-2010-07-14-20-22-48.jpg?w=297&amp;h=300" title="XB PointStream toPNG()" width="297"/></a></p>
<p>In my last blog I wrote about some trouble I had calling readPixels(). It worked on Minefield and Chrome, but not on WebKit. <a href="http://ca.linkedin.com/pub/benoit-jacob/18/309/171">Benoit Jacob</a> mentioned the problem could have been due to a change in the WebGL specification. I re-checked the spec and sure enough, readPixels() was changed. To support both methods (old and new), I needed to write a work-around. It didn’t take long to come up with something that’s cross-browser. Here it is:</p>
<pre>var arr = ctx.readPixels(0, 0, w, h, ctx.RGBA,
                         ctx.UNSIGNED_BYTE);
if(!arr){
  arr = new WebGLUnsignedByteArray(w * h * 4);
  ctx.readPixels(0, 0, w, h, ctx.RGBA,
                 ctx.UNSIGNED_BYTE, arr);
}
</pre>
<p>If you want to see it in action, check out our <a href="http://scotland.proximity.on.ca/asalga/">3D point cloud gallery</a>.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/arius3d/">Arius3D</a>, <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/processing-js/">Processing.js</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>, <a href="http://asalga.wordpress.com/category/xb-pointstream/">XB PointStream</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1666/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1666/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1666/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1666/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1666/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1666/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1666/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1666/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1666/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1666/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1666&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-07-14T23:45:11Z</updated>
    <category term="Arius3D"/>
    <category term="Open Source"/>
    <category term="Processing.js"/>
    <category term="WebGL"/>
    <category term="XB PointStream"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1648</id>
    <link href="http://asalga.wordpress.com/2010/07/13/xb-pointstream-0-3-released/" rel="alternate" type="text/html"/>
    <title>XB PointStream 0.3 Released!</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We’ve released XB PointStream 0.3! Have a WebGL-enabled browser? Check out the demos! Or check out our video. Features Landed In this release, we decided to add some elementary features such as mouse and keyboard support, but we’ve also added interesting bits like toPNG(), resize() and attenuation(). With toPNG() you can create a static 2D [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1648&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We’ve released XB PointStream 0.3! Have a <a href="http://www.khronos.org/webgl/">WebGL</a>-enabled browser? Check out the <a href="http://scotland.proximity.on.ca/asalga/">demos</a>! Or check out our <a href="http://www.youtube.com/watch?v=SQ0bGsmpUL4">video</a>.</p>
<p><a href="http://scotland.proximity.on.ca/asalga/"><img alt="" class="alignnone size-full wp-image-1655" height="180" src="http://asalga.files.wordpress.com/2010/07/acorn.png?w=167&amp;h=180" title="acorn" width="167"/></a></p>
<h2>Features Landed</h2>
<p>In this release, we decided to add some elementary features such as mouse and keyboard support, but we’ve also added interesting bits like toPNG(), resize() and attenuation(). With toPNG() you can create a static 2D image from the 3D point cloud. resize() simply resizes the canvas and attenuation() along with pointSize() allows you to finely tune the point attenuation desired for your point cloud.</p>
<h2>Bugs!</h2>
<p>While working with Minefield, Chrome and Webkit, we’ve seen several inconsistencies. One major issue is toPNG() doens’t work on Webkit because readPixels() now fails. But <a href="http://asalga.wordpress.com/2010/03/19/compensating-for-webgl-readpixels-implementation-inconsistencie/">it used to work</a>! Another issue is rendering anything using OS X 10.6 on an iMac. The points come out looking like garbage. This happens both on Minefield and Chrome while Webkit refuses to render anything. Interestingly, on the same machine running Windows everything looks good. And I have no problems on my MacBook Pro running 10.5… We certainly have a long road ahead in terms PointStream being cross-browser.</p>
<h2>Get Involved!</h2>
<p>If you’d like to get involved in development, testing or if you simply want to suggest ideas, visit us in the #seneca channel in <a href="irc://irc.mozilla.org/seneca">irc.mozilla.org</a>. Or file some tickets on our <a href="http://cdot.lighthouseapp.com/projects/52886-xb-pointstream">Lighthouse page</a>. If you wanna get your hands dirty and hack some code, fork our repository from <a href="http://github.com/asalga/XB-PointStream">Github</a>.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/arius3d/">Arius3D</a>, <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>, <a href="http://asalga.wordpress.com/category/xb-pointstream/">XB PointStream</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1648/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1648/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1648/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1648/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1648/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1648/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1648/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1648/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1648/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1648/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1648&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-07-14T03:36:50Z</updated>
    <category term="Arius3D"/>
    <category term="Open Source"/>
    <category term="WebGL"/>
    <category term="XB PointStream"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2457</id>
    <link href="http://learningwebgl.com/blog/?p=2457" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 11 July 2010</title>
    <summary>So, the big news is of course the release of the beta version of Firefox 4 (previously known as 3.7).  Mozilla have been making a lot of noise about the inclusion of WebGL in this release (though you still need to switch it on with the about:config flag webgl.enabled_for_all_sites), so it looks likely that [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul>
<li>So, the big news is of course the release of <a href="http://www.mozilla.com/en-US/firefox/beta/">the beta version of Firefox 4</a> (previously known as 3.7).  Mozilla have been making a lot of noise about the inclusion of WebGL in this release (though you still need to switch it on with the <code>about:config</code> flag <code>webgl.enabled_for_all_sites</code>), so it looks likely that it’s going to be there in the final release.</li>
<li>Some of the publicity for the new beta was at Mozilla Summit 2010; here’s <a href="http://www.youtube.com/watch?v=ebxQitnnSGc&amp;feature=youtu.be">a video of Vladimir Vukićević’s talk</a>.  Links to all of the demos he shows in it are on <a href="http://people.mozilla.org/~vladimir/misc/vlad-summit2010.html">this page on his site</a>; looks like there are some adaptations of Pl4n3 and Jacob Seidelin’s stuff there.</li>
<li>One thing Vlad showed was a very cool WebGL platformer, which Paul Brunt has written <a href="http://www.glge.org/webgl-a-platform-game-in-glge-v0-5/">to celebrate the release of GLGE 0.5</a></li>
<li>I believe this was also shown at the Mozilla Summit: a demo with many contributors, far too many to list here: <a href="http://www.youtube.com/watch?v=VUOIS3jtD8Y">Flight of the Navigator</a>.  <del datetime="2010-07-11T23:13:19+00:00">(Does anyone know of a link to a live version of this?)</del>[UPDATE: <a href="http://twitter.com/ccliffe/status/18296920305">a live version is on its way</a>.]</li>
<li>On to non-Mozilla-related news: some competition for WebGL?  There are <a href="http://news.cnet.com/8301-30685_3-20009940-264.html">early</a> <a href="http://www.downloadsquad.com/2010/07/09/adobe-flash-11-will-feature-a-proper-3d-rendering-engine-and-api/">indications</a> that the next version of Flash will have support for 3D graphics.</li>
<li>I really enjoyed <a href="http://www.tojicode.com/2010/07/webgls-greatest-challenge-as-gaming.html">this post by Brandon Jones</a>: why the biggest threat to WebGL gaming is neither Microsoft nor JavaScript performance, but instead the very user interface style that makes browsers so useful.</li>
<li>From Paul Rouget, a nice simple example that should help anyone who wants to use <a href="http://people.mozilla.org/~prouget/demos/webglvideo/index.html">videos as textures in their WebGL scenes</a>.</li>
<li>I suspect you need to know more about the background than I do to know what’s going on here: <a href="http://accense-demo.appspot.com/WebGL+WebSocket">RADIUS network traffic analysed, sent to the browser over WebSocket, and displayed in 3D using WebGL</a>, by Takanao Endoh.
</li><li>Matthew Postill has created <a href="http://www.c3dl.org/index.php/c3dl-dev/scenecreator0-3/">a C3DL-based system called SceneCreator</a> which lets people create 3D browser-based scenes to share with others.  Looks like fun!</li>
<li>Evgeny Demidov has written<a href="http://www.ibiblio.org/e-notes/webgl/fire.html"> a very attractive particle-based fire demo</a>.</li>
<li>I don’t know whether I’m more impressed by the (apparently) 1.8 million polygons in <a href="http://dev.miaumiau.cat/quickGraph/">this demo</a>, or the domain name ;-)</li>
<li>From the WebGL dev list, a <a href="http://www.pbdefence.com/">terrain generator</a>.</li>
</ul></div>
    </content>
    <updated>2010-07-11T19:07:42Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c3dl.org/?p=2651</id>
    <link href="http://www.c3dl.org/index.php/c3dl-dev/scenecreator0-3/" rel="alternate" type="text/html"/>
    <title>SceneCreator0.3</title>
    <summary>SceneCaster is an online application that allows people to create “spaces” which are 3d scenes on the browsers and share them which other.  It is free to sign up and relatively  easy easy to use. The main problems with SceneCaster are the requirements: The operating systems used are Windows XP or Vista and the browser [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://www.scenecaster.com/web/home.php">SceneCaster</a> is an online application that allows people to create “spaces” which are 3d scenes on the browsers and share them which other.  It is free to sign up and relatively  easy easy to use. The main problems with SceneCaster are the requirements: The operating systems used are Windows XP or Vista and the browser must be FireFox or Internet Explorer. Also SceneCaster needs to install an application onto the users computer. These requirements limit the amount of people able to uses SceneCaster. I have created a demo using the <a href="http://www.c3dl.org/">c3dl </a>library, which uses <a href="http://www.khronos.org/webgl/">WebGL</a>, to create a demo of SceneCaster called SceneCreator. This will allow many people to use SceneCaster without installing any software or pug-ins and will support many different browsers.
<br/>
<br/>
SceneCreator  has its own <a href="http://github.com/asalga/SceneCreator">GitHub </a>, <a href="http://c3dl.lighthouseapp.com/projects/52892-scenecreator">LightHouse</a>, <a href="http://zenit.senecac.on.ca/wiki/index.php/SceneCreator">Website</a> and is worked on daily by Matthew Postill (me). If you would like to see the progression of SceneCreator you can check out my blog at <a href="http://sonnilion.wordpress.com/">http://sonnilion.wordpress.com/</a>. <span style="line-height: 25px;">The demo is located <a href="http://matrix.senecac.on.ca/~mapostil/SceneCreator0.3/">here</a> (requires a <a href="http://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">WebGL enabled browser</a>). The demo is on version  0.3 and has 3 views 2D, 3D, and Google 3D Warehouse. </span>
<h4 style="color: black; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-style: none; border-bottom-color: initial; font-size: 15px;"><span>2D:</span></h4>
<ul>
	<li>display 3d object using bounding boxes, walls, lights, and enclosures in a 2d scene</li>
	<li>create wall</li>
	<li>insert lights</li>
	<li>new scene(delete all)</li>
	<li>walls, wall corner, and lights can be selected</li>
	<li>delete selected</li>
	<li>move selected</li>
</ul>
<h4 style="color: black; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-style: none; border-bottom-color: initial; font-size: 15px;"><span>3D:</span></h4>
<ul>
	<li>add item to scene from the side bar</li>
	<li>item selection (clicking an item highs it blue and is set as the selected item) *wall are not selectable</li>
	<li>once an item is selected a user can (using the button above the scene):
<ul>
	<li>delete</li>
	<li>rotate</li>
	<li>move up/down</li>
	<li>scale</li>
	<li>copy</li>
	<li>move to position of the mouse</li>
</ul>
</li>
	<li>camera widget</li>
	<li>5 independent cameras</li>
        <li>save/load using local storage</li>
</ul>
<h4 style="color: black; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-style: none; border-bottom-color: initial; font-size: 15px;"><span>Google Warehouse:</span></h4>
<ul>
	<li>view the Google 3D Warehouse website inside the browser</li>
	<li>back and forward functionality</li>
</ul>
Here is a demo of me creating a PacMan scene in only 3 minutes.
<a href="http://www.youtube.com/watch?v=YbXLaAsorLc">SceneCreator Pacman</a>
<img alt="Pacman Scene" class="alignnone size-medium wp-image-2664" height="181" src="http://www.c3dl.org/wp-content/uploads/2010/07/pacman2-300x181.jpg" width="300"/></div>
    </content>
    <updated>2010-07-09T16:24:37Z</updated>
    <category term="c3dl development"/>
    <author>
      <name>Matt</name>
    </author>
    <source>
      <id>http://www.c3dl.org</id>
      <link href="http://www.c3dl.org/index.php/category/c3dl-dev/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.c3dl.org" rel="alternate" type="text/html"/>
      <subtitle>WebGL made easy!</subtitle>
      <title>Canvas 3d JS Library » c3dl development</title>
      <updated>2010-07-09T17:20:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2411</id>
    <link href="http://learningwebgl.com/blog/?p=2411" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 1 July 2010</title>
    <summary>Lots of good stuff from last week’s WebGL Camp: there are videos for all, and copies of the slides for most, of the presentations up on the website.  Well worth looking at! 
One great bit of news that Paul Brunt mentioned in his presentation, and has since blogged about, is that he’s ported the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul>
<li>Lots of good stuff from last week’s WebGL Camp: there are videos for all, and copies of the slides for most, of the presentations <a href="http://www.webglcamp.com/wiki/index.php?title=Schedule">up on the website</a>.  Well worth looking at! </li>
<li>One great bit of news that Paul Brunt mentioned in his presentation, and has since <a href="http://www.glge.org/jiglib-in-glge/">blogged about</a>, is that he’s ported the jiglibflash physics library <a href="http://github.com/supereggbert/JibLibJS">over to JavaScript so that you can use it in WebGL</a>.  He’s getting pretty impressive performance!</li>
<li>There are some translations of the <a href="http://www.w3center.pl/2010/06/kurs-webgl-wstep.html">tutorials from this site into Polish</a> over at w3center.pl, including <a href="http://www.w3center.pl/2010/06/rozwiazywanie-problemow-z-webgl.html">a run though the troubleshooting stuff</a> that recently landed in lesson 0.</li>
<li>A case where the backstory is more perhaps interesting than the demo: <a href="http://hephaestus.papakipos.com:33280/sg3d/">a cloud of particles</a> from Matthew Papakipos, a high-flying Google Chrome engineer who <a href="http://twitter.com/papakipos/status/17229270120">tweeted</a> about having done this just before <a href="http://twitter.com/papakipos/status/17268835751">dropping</a> the bombshell that he was <a href="http://news.cnet.com/8301-30685_3-20009043-264.html?part=rss&amp;tag=feed&amp;subj=DeepTech">moving to Facebook</a> after being head of the Chrome OS project.</li>
<li>An interesting <a href="http://twitter.com/hsivonen/status/16837616671">tweet</a> from Henri Sivonen: “Cool. <a href="http://code.google.com/apis/maps/documentation/javascript/examples/streetview-map.html">Street View using WebGL</a>. Degrades gracefully to a static cylindrical movable image when WebGL isn’t available.”
</li><li>Another Quakesque demo from Brandon Jones: a <a href="http://www.tojicode.com/2010/06/quake-2-bsp-quite-possibly-worst-format.html">Quake 2 level in WebGL</a>, along with an explanation of why doing such a thing is a terrible idea :-)</li>
<li>This is an interesting application for WebGL — Diego Cantor’s doing <a href="http://www.youtube.com/watch?v=uUx03nDyGQ4&amp;feature=youtu.be">medical imaging</a> (YouTube video only, unfortunately).
</li><li>Here’s <a href="http://alteredqualia.com/glearth/">a very pretty WebGL Earth</a>.</li>
<li>From China, <a href="http://www.cnblogs.com/wildabc/archive/2010/06/27/1759207.html">an attractive ripple effect demo</a>.</li>
</ul></div>
    </content>
    <updated>2010-07-01T13:15:03Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2423</id>
    <link href="http://learningwebgl.com/blog/?p=2423" rel="alternate" type="text/html"/>
    <title>First cut at a WebGL FAQ</title>
    <summary>I’ve polished up the content from the talk I gave at WebGL Camp last Friday (video of the Skype presentation of my talk here, all talks linked from here) and used it to create a WebGL FAQ!  Thoughts, comments, corrections, whinges and whines all welcome in the comments — or just register and edit [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’ve polished up the content from the talk I gave at <a href="http://www.webglcamp.com/">WebGL Camp</a> last Friday (video of the Skype presentation of my talk <a href="http://www.ustream.tv/recorded/7890426">here</a>, all talks linked from <a href="http://www.ustream.tv/channel/webgl-camp">here</a>) and used it to create <a href="http://learningwebgl.com/faq/">a WebGL FAQ</a>!  Thoughts, comments, corrections, whinges and whines all welcome in the comments — or just register and edit the Wiki.</p></div>
    </content>
    <updated>2010-06-29T00:28:58Z</updated>
    <category term="FAQ"/>
    <category term="Links"/>
    <category term="Talks"/>
    <category term="Troubleshooting"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2420</id>
    <link href="http://learningwebgl.com/blog/?p=2420" rel="alternate" type="text/html"/>
    <title>Slides for my WebGL camp presentation</title>
    <summary>Just finished my first-ever Skype-based presentation — very confusing talking to a live audience when they’re thousands of miles away!  Here are the slides I showed; feedback on the suggested answers to the frequently asked questions in there — and, indeed, other stuff that should be in there — are of course very welcome.
I’ll [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just finished my first-ever Skype-based presentation — very confusing talking to a live audience when they’re thousands of miles away!  <a href="http://learningwebgl.com/presentations/presentation20100625.odp">Here are the slides I showed</a>; feedback on the suggested answers to the frequently asked questions in there — and, indeed, other stuff that should be in there — are of course very welcome.</p>
<p>I’ll put it all on the WebGL Cookbook wiki later so that everyone can edit it — hopefully Khronos will be willing to host it as a better FAQ later on.</p></div>
    </content>
    <updated>2010-06-25T18:49:29Z</updated>
    <category term="Talks"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2374</id>
    <link href="http://learningwebgl.com/blog/?p=2374" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 23 June 2010</title>
    <summary>Lots of news for today:

Changes in the WebGL Working Group: Mozilla’s Arun Ranganathan, who was chairing the group, is stepping down, and Vladimir Vukićević is coming in as interim chair until 1.0 of the spec comes out.
It was amusing that Apple’s demo of the new HTLM5 standard was branded Safari-only, and sad that it didn’t [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Lots of news for today:</p>
<ul>
<li><a href="https://www.khronos.org/webgl/public-mailing-list/archives/1006/msg00136.html">Changes</a> in the WebGL Working Group: Mozilla’s Arun Ranganathan, who was chairing the group, is stepping down, and Vladimir Vukićević is coming in as interim chair until 1.0 of the spec comes out.
</li><li>It was amusing that Apple’s demo of the new HTLM5 standard was branded Safari-only, and sad that it didn’t include WebGL.  Google’s response, <a href="http://www.html5rocks.com/">HTML5 Rocks</a>, has neither problem (the San Angeles demo is on <a href="http://slides.html5rocks.com/#slide25">slide 25</a> of the “Interactive Presentation”).
</li><li>On the subject of animation, this is rather impressive: from the Biomotion Lab at Queen’s University in Canada, here’s <a href="http://www.biomotionlab.ca/Demos/webgl_walker/">a WebGL walker</a>.  I highly recommend you switch on the “Bones” toggle, and then play with the sliders — hours of fun to be had…</li>
<li>Unsuprisingly, California continues to be a good place to be for WebGL meetups… SIGGRAPH 2010 will be in Los Angeles on 26-29 July, and <a href="http://www.khronos.org/news/events/detail/siggraph-la-2010/">Khronos will be holding a WebGL BOF session</a>.
</li><li><a href="http://www.cgdigg.com/story.php?title=coppercube-1-4-1-released---with-webgl-character-animation-support-1">CopperCube 1.4.1 has been released, and now supports animation</a></li>
<li>The online WebGL 3D editor 3DTin <a href="http://blog.3dtin.com/orthographic-projection-0">now supports orthographic projections</a> — maybe not as attractive as perspective views, but often much easier to work with when editing models.
</li><li>Dennis Ippel’s come up with another WebGL tutorial, this one covering <a href="http://www.rozengain.com/blog/2010/06/23/hands-on-webgl-basic-glge-tutorial/">getting started with GLGE</a>.</li>
<li>Another tutorial: 3dgames.pl, a Polish-language site covering 3D game development and WebGL in particular, has <a href="http://3dgames.pl/blog/2010/06/kolizje-fizyka-oraz-obsluga-klawiatury-w-webgl/">a promising tutorial on collision-detection, physics and reading the keyboard</a> in WebGL games.</li>
<li>A new project: <a href="http://livelygoes3d.blogspot.com/">Lively Goes 3D</a> from Tampere University of Technology “aims for the development of a compelling 3D mashup environment”.  It’s based on earlier work <a href="http://lively.cs.tut.fi/qt/index.html">at the university</a> and <a href="http://labs.oracle.com/projects/lively/">at Sun</a>, and they have <a href="http://livelygoes3d.blogspot.com/2010_06_01_archive.html">a simple WebGL-based version</a> up and running.
</li><li>Andor Salga’s been busy, with <a href="http://asalga.wordpress.com/2010/06/15/xb-pointstream-release-0-1/">release 0.1 of the XB PointStream tool</a> he’s been working on to display high-quality point clouds in the browser (<a href="http://matrix.senecac.on.ca/~asalga/XB_PointStream/">demos here</a>, though be warned that they take a long time to load!), and also <a href="http://matrix.senecac.on.ca/~asalga/processing.js/demos/ani_tex_cube/">extending Processing.js to support transparent WebGL canvases</a> (with, for example, HTML text underneath).
</li><li>This is an interesting proposal, I don’t know whether I think it’s a good idea or not: the guys behind Stack Overflow are asking for ideas for single-topic equivalents of the generic SO site, and Rahul Hamdapurkar has <a href="http://area51.stackexchange.com/proposals/8386/webgl?referrer=L_3A1cl1HByB49QQOgt7xA2">proposed that they create one for WebGL</a>.
</li><li><a href="http://www.int13h.com/">DaveR53</a> <a href="http://learningwebgl.com/blog/?p=2303&amp;cpage=1#comment-3941">commented</a> on last week’s post about the N900 pointing out that the browser also supports HTML events when the phone’s orientation changes: someone’s now put together <a href="http://www.youtube.com/watch?v=CYwGY_A3Ck4">a video showing a cube that rotates when the phone does</a>.  There are some really interesting possibilities for web-based augmented reality here.</li>
<li>Also on the N900, the X3DOM team blog that <a href="http://www.x3dom.org/?p=825">they’ve confirmed that their library works on the phone</a>, including animation and sound.
</li><li>And in further X3DOM news, here’s <a href="http://i.document.m05.de/?p=857">an online X3DOM editor from Michael Zoellner</a>.
</li></ul></div>
    </content>
    <updated>2010-06-23T12:56:57Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2380</id>
    <link href="http://learningwebgl.com/blog/?p=2380" rel="alternate" type="text/html"/>
    <title>WebGL Camp</title>
    <summary>The first WebGL Camp is happening at Stanford University, Palo Alto, California this Friday, and I’m pleased to say that I’ll be giving a short talk (via Skype, so people will be spared the sight of my face ;-)  If you’re in the area then it really sounds worth going to; if you’re not, [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The first <a href="http://www.webglcamp.com/">WebGL Camp</a> is happening at Stanford University, Palo Alto, California this Friday, and I’m pleased to say that I’ll be giving a short talk (via Skype, so people will be spared the sight of my face ;-)  If you’re in the area then it really sounds worth going to; if you’re not, apparently everything will be streamed and also available to watch afterwards (on YouTube, I think).  </p>
<p>Speakers that the organiser, Henrik Bennetsen, has announced so far include <a href="http://blog.vlad1.com/">Vladimir Vukićević</a>, the originator of Canvas3D and thus WebGL, Trevor Smith of <a href="http://spaciblo.org/">Spaciblo</a>, and Google’s Peterson Trethewey (on O3D and WebGL).  The speakers he’s not announced yet are also very promising, so it looks like it’s going to be a great day!</p>
<p>[UPDATE] <a href="http://www.webglcamp.com/wiki/index.php?title=Schedule">The full schedule has now been announced</a> — it’s looking really good.  Many thanks to Henrik for setting this up!  I only wish I could be there in person.</p></div>
    </content>
    <updated>2010-06-21T12:45:20Z</updated>
    <category term="Talks"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1613</id>
    <link href="http://asalga.wordpress.com/2010/06/15/xb-pointstream-release-0-1/" rel="alternate" type="text/html"/>
    <title>XB PointStream Release 0.1</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I’m working with Mickael Medel at Seneca College’s CDOT (Center for Development of Open Technology) on XB PointStream, a JavaScript tool which will render high quality point clouds in the browser. If you have a WebGL-enabled browser, check out our 0.1 release! 0.1 For a 0.1 release, I think we have something fairly decent. I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1613&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’m working with <a href="http://asydik.wordpress.com/">Mickael Medel</a> at <a href="http://www.senecac.on.ca/">Seneca College’s</a> <a href="http://cdot.senecac.on.ca/">CDOT</a> (Center for Development of Open Technology) on <a href="http://zenit.senecac.on.ca/wiki/index.php/XB_PointStream">XB PointStream</a>, a JavaScript tool which will render high quality point clouds in the browser. If you have a <a href="http://www.khronos.org/webgl/">WebGL</a>-enabled browser, check out our <a href="http://matrix.senecac.on.ca/~asalga/XB_PointStream/">0.1 release</a>!</p>
<p><a href="http://matrix.senecac.on.ca/~asalga/XB_PointStream/"><img alt="" class="alignnone size-medium wp-image-1614" height="242" src="http://asalga.files.wordpress.com/2010/06/snapshot-2010-06-12-22-29-51.jpg?w=300&amp;h=242" title="Snapshot 2010-06-12 22-29-51" width="300"/></a></p>
<h2>0.1</h2>
<p>For a 0.1 release, I think we have something fairly decent. I does mostly what it should–it renders a large amount of point cloud data on <a href="http://nightly.mozilla.org/">Minefield</a>, <a href="http://nightly.webkit.org/">Webkit</a> and <a href="http://www.google.com/chrome">Chrome</a> at a fast frame rate. The largest issue we have right now is compressing files, which Mickael is working on.</p>
<p>It took a while to get to 0.1 and I think we’re on the right track. Here’s how we did it:</p>
<h2>Creating the Octree</h2>
<p>The fundamental problem we face is that of rendering millions of points in the browser in real time. I knew one way we could speed up rendering is to spatially partition the point cloud and do frustum culling. I looked into a few different forms of spatial partitioning and found octrees could be an appropriate data structure. After doing a bit of research and reading, I felt I had an understanding of how to implement one and wrote one in a Processing sketch. As test data, I just generated a series of random points along the surface of a sphere and inserted them into the octree:</p>
<p><a href="http://asalga.files.wordpress.com/2010/06/octree.jpg"><img alt="" class="alignnone size-medium wp-image-1615" height="300" src="http://asalga.files.wordpress.com/2010/06/octree.jpg?w=287&amp;h=300" title="p5 octree" width="287"/></a></p>
<p>The theory was if I had it working on Processing, I could take the exact sketch and feed it into <a href="http://www.processingjs.org/">Processing.js</a>. Using a WebGL-capable browser, I should see a similar result. Unfortunately, I did run into a <a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/691-class-members-undefined">bug</a>, which took up an entire evening to track down. I got some help from the <a href="http://processingjs.org/community">Processing.js community</a> and by using a newer parser, I managed to make the octree and points render on Minefield using Processing.js. The main problem was it was very slow.</p>
<h2>Parsing ASC Files</h2>
<p>After I had a (mostly) working octree, I was interested to see it accept some real data. I used <a href="http://www.arius3d.com/">Arius3D</a>‘s <a href="http://www.thinglab.co.uk/scanning_product.php?URL_=product_digiscan_arius3d_pointstream&amp;SubCatID_=33">PointStream ImageSuite</a> to convert a PSI file into something I could easily parse, an ASC file. This format presents the data in an easy human and computer readable format:</p>
<p><code>-8.088 -12.421 -14.033 64 32 16 -0.372 -0.247 -0.894<br/>
-8.088 -12.293 -14.033 64 40 24 -0.380 -0.153 -0.911<br/>
-8.088 -12.165 -14.033 56 40 24 -0.341 -0.012 -0.939<br/>
</code><br/>
It was clear the order was positions, colors then normals. I wrote up a small XHR script to download the data, split on spaces, parsed the strings to numbers and inserted the values into the octree. I managed to make it render, but only at around 1 FPS.</p>
<h2>Performance Explosion</h2>
<p>The problem with Processing.js is there isn’t a way to create a shape once and render it from a cached buffer. Each frame, shapes need to be re-created in case they deform. The renderer then suffers a performance hit, but this has been <a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/732">filed on our lighthouse account</a>. So I had to create a work-around and optimization to get things rendering at a decent frame rate.</p>
<p>A related problem is that Processing.js renders points by translating and drawing the data in a VBO which contains only one primitive. This works if rendering a particle system which only has a few hundred points, but not for dense point clouds. I knew by increasing the VBO to larger size, I could improve performance, but I had no idea how much of an increase I would see. I spent almost two days hacking apart pieces of Processing.js, fixing my octree, stitching pieces of JavaScript within my sketch and debugging until I had the point cloud rendered. I checked the frame rate and I was completely surprised at the performance gain. We were now rendering at ~50 FPS for 150,000 lit points. Depending on the depth of the octree, I see performance between 20 to 50 FPS. The more octants there are, the more culling can be done, but the performance does suffer. This is something we’ll need to work on.</p>
<h2>Next Steps</h2>
<p>I recently added some fixes so XB PointStream renders on Chrome and I’ll be implementing octant/frustum culling this week. I’ll also start to remove the Processing.js crutch so our library can begin to take shape.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/arius3d/">Arius3D</a>, <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/processing/">Processing</a>, <a href="http://asalga.wordpress.com/category/programming/processing-js/">Processing.js</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>, <a href="http://asalga.wordpress.com/category/xb-pointstream/">XB PointStream</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1613/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1613/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1613/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1613/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1613/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1613/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1613/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1613/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1613/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1613/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1613&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-06-16T03:26:33Z</updated>
    <category term="Arius3D"/>
    <category term="Open Source"/>
    <category term="Processing"/>
    <category term="Processing.js"/>
    <category term="WebGL"/>
    <category term="XB PointStream"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2336</id>
    <link href="http://learningwebgl.com/blog/?p=2336" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 14 June 2010</title>
    <summary>Lots of new links since last time!

This is a really cool idea — via the WebGL developer list, here’s a WebGL 3D model editor.  Blender, watch out :-)
Here’s a warning: as Chris Marrin says on the Public WebGL list, pretty much all WebGL content on the net right now (my own tutorials included) is [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Lots of new links since last time!</p>
<ul>
<li>This is a really cool idea — <a href="http://groups.google.com/group/webgl-dev-list/browse_thread/thread/7dfa362a7c10d387">via</a> the WebGL developer list, here’s a <a href="http://3dtin.com/">WebGL 3D model editor</a>.  Blender, watch out :-)</li>
<li>Here’s a warning: as <a href="https://www.khronos.org/webgl/public-mailing-list/archives/1006/msg00106.html">Chris Marrin says on the Public WebGL list</a>, pretty much all WebGL content on the net right now (my own tutorials included) is invalid!  Historically we’ve been able to get away with certain kinds of mistakes because the browsers haven’t been thoroughly validating our shader language; these mistakes could cause all kinds of problems when running on mobile devices in the future.   Quite rightly, the browser developers will be tightening up the shader validation soon; an upcoming release of Minefield will make tight validation optional, which will give us all a chance to fix stuff.  A little while after that, validation will be on by default.</li>
<li><a href="http://cubicvr.org/CubicVR.js/BloomTest1.html">A very nice CubicVR demo, this time demonstrating bloom</a> (where light from bright things “leaks” onto nearby dark areas).</li>
<li>First steps for Andor Salga’s <a href="http://zenit.senecac.on.ca/wiki/index.php/XB_PointStream">XB PointStream</a> project: <a href="http://matrix.senecac.on.ca/~asalga/XB_PointStream/XB%20PointStream/">150,000 surface “splats” with lighting, partitioned in an octree</a>.</li>
<li>From Brandon Jones, <a href="http://www.tojicode.com/2010/06/its-alive-idtech4-models-with-skinning.html">an animated character that you might find familiar</a>…</li>
<li>What looks like <a href="http://pl4n3.blogspot.com/2010/06/webgl-demo-normalmaps-shadows-scripting.html">another cool demo from Pl4n3</a>, this time based on GLGE — unfortunately my display driver crashed before displaying it :-(</li>
<li>Another 3d-test interview, this time <a href="http://www.3d-test.com/interviews/EnergizeGL_1.htm">with Denny Koch</a> of <a href="http://energize.cc/">EnergizeGL</a>.</li>
<li>Using Processing.js, some <a href="http://asydik.wordpress.com/2010/06/07/curved-lines-in-3d-context/">jellyfish created with Bezier curves</a>.</li>
<li>Interesting: <a href="http://brianmckenna.org/blog/nodejs_webgl">the first steps in a WebGL implementation</a> for <a href="http://nodejs.org/">Node.js</a>, a server-side JavaScript framework.  As the author says, “[i]magine easily writing games or multimedia applications that run in the browser and on the desktop without changes.”</li>
</ul></div>
    </content>
    <updated>2010-06-14T17:53:33Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-29T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2340</id>
    <link href="http://learningwebgl.com/blog/?p=2340" rel="alternate" type="text/html"/>
    <title>Video: WebGL on the Nokia N900</title>
    <summary>Last week, a firmware release made WebGL available by default in the built-in browser on the Nokia N900 smartphone.  I’ve put together a video of some of the N900-compatible demos that I listed yesterday.  Apologies for the terrible camerawork!

It’s worth saying again that, as far as I can tell, WebGL being live in [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last week, a firmware release <a href="http://suihkulokki.blogspot.com/2010/06/webgl-on-n900.html">made WebGL available by default</a> in the built-in browser on the Nokia <a href="http://maemo.nokia.com/n900/">N900</a> smartphone.  I’ve put together a video of some of the N900-compatible demos that <a href="http://learningwebgl.com/blog/?p=2303">I listed yesterday</a>.  Apologies for the terrible camerawork!</p>
<p>&lt;object height="505" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KVOTK5f1VYk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="505" src="http://www.youtube.com/v/KVOTK5f1VYk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;</p>
<p>It’s worth saying again that, as far as I can tell, WebGL being live in the N900’s Gecko-based browser is not a statement from the Mozilla team that it’s ready for production applications — rather, it’s a choice on Nokia’s side to make an early-access development release of a technology available to all N900 users.  Perhaps they feel that anyone who buys a Linux-based smartphone will be techie enough to be able to handle a bit of beta HTML5 goodness ;-)</p>
<p>[UPDATE] At <a href="http://mrdoob.com/">Mr. doob</a>’s <a href="http://twitter.com/mrdoob/status/15742570356">suggestion</a>, I tried IQ’s <a href="http://www.iquilezles.org/apps/shadertoy/">Shader Toy</a> WebGL demo.  It worked pretty well, although the Quaternion demo did cause a few responsiveness problems… here’s a video:</p>
<p>&lt;object height="505" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ywZTDtQT9b8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="505" src="http://www.youtube.com/v/ywZTDtQT9b8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;</p></div>
    </content>
    <updated>2010-06-08T23:47:03Z</updated>
    <category term="Browsers"/>
    <category term="Demos"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-28T20:20:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2303</id>
    <link href="http://learningwebgl.com/blog/?p=2303" rel="alternate" type="text/html"/>
    <title>Nokia N900 WebGL support</title>
    <summary>I’ve spent a while playing with WebGL on the Nokia N900 smartphone.  It sounds like its inclusion in the 1.2 release of the phone’s firmware (which happened last week) was a surprise to the Mozilla team, which would explain why we’ve not seem any publicity…  So, given that the developers don’t think it’s [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’ve spent a while playing with WebGL on the <a href="http://maemo.nokia.com/n900/">Nokia N900</a> smartphone.  It sounds like its inclusion in the 1.2 release of the phone’s firmware (which happened last week) was a surprise to the Mozilla team, which would explain why we’ve not seem any publicity…  So, given that the developers don’t think it’s ready for prime time yet, and that the WebGL standard isn’t at 1.0 yet, and no-one’s been testing their demos on anything apart from desktop machines, it’s surprising that it works at all, and astonishing that it works as well as it does :-)  </p>
<p>If you have an N900, here’s a random selection of demos that will work on it; I’ll put a video together for people who don’t but still want to see it… [UPDATE: <a href="http://learningwebgl.com/blog/?p=2340">video here</a>]</p>
<ul>
<li><a href="http://learningwebgl.com/webgl-cube/index-n900-hack.html">A spinning WebGL cube</a>.  (This includes a workaround for an odd bit of shader behaviour — interested parties might want to compare with <a href="http://learningwebgl.com/webgl-cube/index.html">this version without the workaround</a>.)</li>
<li><a href="http://people.mozilla.com/~vladimir/webgl/spore/sporeview.html">Vladimir Vukićević’s Spore creature viewer</a> (took a long time to appear — perhaps 2 minutes — but worked fine when it did).
</li><li><a href="http://www.tojiart.com/WebGL/spore.html">Brandon Jones enhanced Spore viewer</a> (took a while to come up<del datetime="2010-06-10T14:03:05+00:00">, and for some reason it won’t respond to mouse drags</del> [UPDATE with a link directly to the demo, mouse drags now work])
</li><li><a href="http://learningwebgl.com/lessons/example03/particles-03.html">Particle explosions</a>
</li><li><a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/google/shiny-teapot/index.html">Google’s shiny teapot demo</a>
</li><li><a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/google/san-angeles/index.html">Google’s San Angeles demo</a>
</li><li><a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/google/particles/index.html">Google’s particle demo</a>
</li><li><a href="http://learningwebgl.com/lessons/example01/">My first Mandelbrot demo</a>
</li><li><a href="http://learningwebgl.com/lessons/lesson09/">Lesson 9: Merry Christmas</a>
</li><li><a href="http://learningwebgl.com/lessons/lesson10.5/">Lesson 10.5: nano-doom with lighting</a>
</li><li><a href="http://learningwebgl.com/lessons/lesson14/">Lesson 14: per-pixel teapot with specular highlights</a>
</li><li><a href="http://learningwebgl.com/lessons/lesson16/">Lesson 16: render-to-texture</a>
</li><li><a href="http://www.plsw.net/gnomwgl.htm">Pl4n3’s single-file skeletal animation</a>
</li><li><a href="http://cs.helsinki.fi/u/ilmarihe/jscene/demos/bin_loader.html">Ilmari Heikkinen’s whale</a> (a few glitches when drawing this one).
</li><li>Pavlos Toukiloglou’s Copperlicht-based <a href="http://users.chal.sch.gr/pavlos/webgl/Triliza/">Match 3D game</a>.
</li><li>Evgeny Demidov’s <a href="http://www.ibiblio.org/e-notes/webgl/interference_rgb.html">interference</a> <a href="http://www.ibiblio.org/e-notes/webgl/interference3rgb.html">patterns</a>.
</li><li><a href="http://www.ambiera.at/copperlicht/demos/demo_quakelevel_external.html">CopperLicht’s Quake demo</a> (loads, but a bit hard to control because keypresses go to the URL bar…)
</li><li><a href="http://wakaba.c3.cx/w/four_dollar_plastic_laminator">Four dollar Plastic Laminator</a> (albeit at 1fps…)
</li><li>[UPDATE from the comments below, here's <a href="http://playwebgl.com/games/glubble/">Glubble from PlayWebGL</a>.]
</li></ul>
<p>(That list is entirely based on what I happened to click on over the course of this evening.  If you’ve got a WebGL demo that you’d like me to try out, leave a comment below with a direct link to the WebGL page and I’ll let you know if it works, and put it in the list if it does.)</p></div>
    </content>
    <updated>2010-06-07T23:46:51Z</updated>
    <category term="Browsers"/>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-21T14:20:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2295</id>
    <link href="http://learningwebgl.com/blog/?p=2295" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 7 June 2010</title>
    <summary>Big news: apparently, the most recent firmware update for the Nokia N900 mobile phone enables WebGL in its (WebKit Firefox-based) browser.   I have an N900, and hope to have some first-hand news soon. [UPDATE: it works!  More in a separate post later.] [UPDATE: here's my list of demos that work on the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul>
<li>Big news: apparently, the most recent firmware update for the Nokia N900 mobile phone <a href="http://suihkulokki.blogspot.com/2010/06/webgl-on-n900.html">enables WebGL in its (<del datetime="2010-06-07T18:22:46+00:00">WebKit</del> Firefox-based) browser</a>.   I have an N900, and hope to have some first-hand news soon. [UPDATE: it works!  More in a separate post later.] [UPDATE: here's <a href="http://learningwebgl.com/blog/?p=2303">my list of demos that work on the N900</a>]</li>
<li>Ilmari Heikkinen has released <a href="http://fhtr.blogspot.com/2010/06/webgl-stereo-rendering-demo.html">a stereoscopically-rendered whale</a>.</li>
<li>A demo from PlayWebGL: a <a href="http://playwebgl.com/news/new-pgl-game-of-life-demo/">GPU game of life, with attractive colours</a>.</li>
<li><a href="http://twitter.com/henrikbennetsen/statuses/15356220717">Via</a> Henrik Bennetsen, <a href="http://code.google.com/events/io/2010/sessions/gwt-html5.html">a presentation from the Google I/O conference</a> on new HTML5 features, including a look inside the GWT Quake implementation.</li>
</ul></div>
    </content>
    <updated>2010-06-07T12:58:17Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-11T23:20:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2280</id>
    <link href="http://learningwebgl.com/blog/?p=2280" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 3 June 2010</title>
    <summary>Via the forums: from Brandon Jones, a new ultra-optimised matrix JavaScript library, this one apparently the fastest yet!  The benchmarks are certainly impressive.
Registration is now open for the WebGL Camp on 25 June at Stanford University.
A new WebGL library — this one focused less on pure 3D graphics, and more on using WebGL as [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul>
<li><a href="http://www.khronos.org/message_boards/viewtopic.php?f=46&amp;t=2916">Via</a> the forums: from Brandon Jones, a new ultra-optimised matrix JavaScript library, <a href="http://tojicode.blogspot.com/2010/06/stupidly-fast-webgl-matricies.html">this one apparently the fastest yet</a>!  The <a href="http://glmatrix.googlecode.com/hg/benchmark/matrix_benchmark.html">benchmarks</a> are certainly impressive.</li>
<li>Registration is now open for the <a href="http://www.webglcamp.com/wiki/index.php?title=Main_Page">WebGL Camp</a> on 25 June at Stanford University.</li>
<li>A new WebGL library — this one focused less on pure 3D graphics, and more on using WebGL as a rendering engine for <a href="http://blog.graphtech.co.il/gtw-%E2%80%93-rich-user-interface-library-for-web-applications/">a user interface toolkit</a>.</li>
<li>I must have missed this the first time around: here’s <a href="http://asalga.wordpress.com/2010/04/15/webgl-anti-aliasing-in-processingjs/">an interesting post about the situation with anti-aliasing in Minefield and WebKit</a>, from Andor Salga.</li>
<li>Ilmari Heikkinen has put together some <a href="http://fhtr.blogspot.com/2010/06/loading-webgl-models-from-tarballs.html">demos</a> using his JavaScript tarball parser — looks useful.</li>
<li>Some more cool demos from Evgeny Demidov, these ones based on splines.  Here’s the <a href="http://www.ibiblio.org/e-notes/webgl/enterprise.html">Starship Enterprise</a>, <a href="http://www.ibiblio.org/e-notes/webgl/shark.html">a shark</a>, and <a href="http://www.ibiblio.org/e-notes/webgl/bike.html">a motorbike</a>: more on <a href="http://www.ibiblio.org/e-notes/webgl/models.htm">his site</a>.
</li></ul></div>
    </content>
    <updated>2010-06-03T17:54:25Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-07-07T10:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1603</id>
    <link href="http://asalga.wordpress.com/2010/05/29/querying-webgl-commands-and-symbols/" rel="alternate" type="text/html"/>
    <title>Querying WebGL Commands and Symbols</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Khronos specification is detailed, organized and official. The WebGL Cheat Sheet by Nihilogic is a great quick reference tool. But sometimes I just want to query the WebGL context and get all the raw commands and symbols. This can be very useful and it’s easy: var gl = document.createElement('canvas').getContext("experimental-webgl"); var symbols= ""; for(currSymbol in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1603&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The <a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html">Khronos specification</a> is detailed, organized and official. The <a href="http://blog.nihilogic.dk/2009/10/webgl-cheat-sheet.html">WebGL Cheat Sheet</a> by <a href="http://blog.nihilogic.dk/">Nihilogic</a> is a great quick reference tool. But sometimes I just want to query the <a href="http://www.khronos.org/webgl/">WebGL</a> context and get all the raw commands and symbols. This can be very useful and it’s easy:<br/>
<code>var gl = document.createElement('canvas').getContext("experimental-webgl");<br/>
var symbols= "";<br/>
for(currSymbol in gl) {<br/>
  symbols += currSymbol + "\n";<br/>
}</code></p>
<p><b>symbols</b> will then be filled with the commands and symbols available for your browser:<br/>
<code>canvas<br/>
viewport<br/>
clearColor<br/>
clear<br/>
enable<br/>
blendFunc<br/>
...</code><br/>
This of course works for either <a href="http://nightly.mozilla.org/">Minefield</a>, <a href="http://nightly.webkit.org/">Webkit</a>, but also <a href="http://www.google.com/chrome">Chrome</a>. Yeah, <b>CHROME</b>, isn’t that sweetness?</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1603/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1603/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1603/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1603/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1603/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1603/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1603/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1603/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1603/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1603/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1603&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-05-29T17:38:24Z</updated>
    <category term="Open Source"/>
    <category term="WebGL"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2266</id>
    <link href="http://learningwebgl.com/blog/?p=2266" rel="alternate" type="text/html"/>
    <title>Firefox and Mesa</title>
    <summary>Recently, the Firefox team updated their support for software rendering so that they use the standard Mesa library that’s distributed with most Linux variants.
As far as I understand it, Mesa can be compiled to have all of its OpenGL functions start with “gl”, which is the default (and follows the OpenGL specification), or with “mgl”, [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Recently, <a href="http://learningwebgl.com/blog/?p=2224&amp;cpage=1#comment-3407">the Firefox team updated their support for software rendering</a> so that they use the standard Mesa library that’s distributed with most Linux variants.</p>
<p>As far as I understand it, Mesa can be compiled to have all of its OpenGL functions start with “gl”, which is the default (and follows the OpenGL specification), or with “mgl”, which is useful for applications that are linking not just with Mesa but also with another 3D API (<a href="http://www.mesa3d.org/mangling.html">see here</a>).</p>
<p>Historically, Firefox’s software rendering used Mesa in its “mgl” mode. <a href="http://blog.vlad1.com/">Vladimir Vukicevic</a> kindly made <a href="http://people.mozilla.com/~vladimir/webgl/webgl-mesa-751.zip">an mgl compile of osmesa32.dll</a> available on his website for people to download and use when they needed to try software rendering. This was great for Windows users, but made life harder for those on Linux; most Linux distros have easily-available Mesa packages, but these are generally built with “gl” function names.</p>
<p><a href="http://www.khronos.org/webgl/wiki/Implementations/Firefox">The new version of Firefox uses “gl” function names</a>, which makes life a lot easier for Linux users. But it seems to leave Windows users in a bit of a bind.</p>
<p>Unfortunately, there are no official pre-compiled Windows Mesa binaries that I can find. I’d be happy to build and host them myself, but I was wondering — does anyone know of a better way of distributing them? Or, indeed, have I completely misunderstood the problem?</p>
<p>[UPDATE] <a href="http://learningwebgl.com/blog/?p=2266&amp;cpage=1#comment-3657">In the comments</a>, Benoit (who is coding this stuff in Minfield) says that he’s adding code so that it will support both “gl” and “mgl” function names, which will be a great result for everyone.  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=569236">You can track the progress of the work here</a>.</p>
<p>[UPDATED UDPATE] The plan is now to only support “gl” function names, but to make a compiled OSMesa32.dll easily available for Windows users.  This sounds like a good plan too :-)</p></div>
    </content>
    <updated>2010-05-28T19:05:32Z</updated>
    <category term="Browsers"/>
    <category term="Questions"/>
    <category term="Troubleshooting"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-06-29T01:20:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2269</id>
    <link href="http://learningwebgl.com/blog/?p=2269" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 28 May 2010</title>
    <summary>An update to what I think was the first ever WebGL demo; Vladimir Vukićević’s original spore creature viewer had a note saying that it “only uses the diffuse texture map; it should really also render the bump map and specular texture”, so Brandon Jones has done the work and added both!  (It only worked [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul>
<li>An update to what I think was the first ever WebGL demo; Vladimir Vukićević’s <a href="http://people.mozilla.com/~vladimir/webgl/spore/sporeview.html">original</a> spore creature viewer had a note saying that it “only uses the diffuse texture map; it should really also render the bump map and specular texture”, so <a href="http://tojicode.blogspot.com/2010/05/webgl-and-spore-critters.html">Brandon Jones has done the work and added both</a>!  <del datetime="2010-05-31T17:42:34+00:00">(It only worked for me in Chromium when I checked it out just now, though.)</del> [UPDATE It works for me in both Chrome and Minefield, though in the latter it does take a while to display.]</li>
<li><a href="http://www.khronos.org/webgl/public-mailing-list/archives/1005/msg00184.html">Via</a> the Public WebGL mailing list, <a href="http://tulrich.com/webgl/bench/">an impressive benchmarking page from Thatcher Ulrich</a> (currently Chromium or WebKit only).  What’s interesting is that because most of WebGL’s overheads are on the browser side, if you have a large model with loads of triangles already uploaded to the graphics card, you can draw it just as quickly as a much simpler model — that is, there’s a per-frame overhead that dwarves the cost per-triangle.  My (slow) desktop machine can do 59 fps with a 79,000 triangle model, which gives 47,000,000 triangles per second.  But if I decrease the number of triangles to 1,800, the FPS doesn’t move — so it’s just 133,000 triangles/second.  What do you see?</li>
<li>And on that subject…  One of the limits on the number of frames WebGL can draw per second are apparently caused by the way the 3D canvas is composited with the rest of the web page’s normal HTML content.  The browser teams are hard at work on fixing the problem, though, and <a href="https://www.khronos.org/webgl/public-mailing-list/archives/1005/msg00214.html">over on the Public WebGL list</a> there’s been a very interesting technical discussion of what the situation is and what’s being done.</li>
<li>From Pavlos Toukiloglou, a fun game using the Copperlicht engine: <a href="http://users.chal.sch.gr/pavlos/webgl/Triliza/">Match 3D, a kind of 3D noughts-and-crosses/tic-tac-toe</a>.
</li><li><a href="http://vocamus.net/dave/?p=1092">More experiments with audio from Dave Humphrey</a>, including some links to some very cool WebGL/CubicVR visualisations from Charles Cliffe.</li>
<li>On the subject of Charles and CubicVR, he’s <a href="http://www.cubicvr.org/index.php?option=com_content&amp;view=article&amp;id=73&amp;Itemid=88">updated his index page with a number of new demos</a>; I think they’ve mostly been mentioned here before but still well worth a look.</li>
</ul></div>
    </content>
    <updated>2010-05-28T18:21:11Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-06-25T19:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2243</id>
    <link href="http://learningwebgl.com/blog/?p=2243" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 26 May 2010</title>
    <summary>A Chrome special today:

Great news today — Chrome 5.0.375.55 is the new stable version for Linux, the Mac, and Windows, and it supports WebGL!  This means that every Chrome user in the world who has OpenGL 2.1 drivers will soon be able to run WebGL content just by setting the appropriate command-line flags.  [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A Chrome special today:</p>
<ul>
<li>Great news today — <a href="http://googlechromereleases.blogspot.com/2010/05/stable-channel-update.html">Chrome 5.0.375.55 is the new stable version for Linux, the Mac, and Windows</a>, and it supports WebGL!  This means that every Chrome user in the world who has OpenGL 2.1 drivers will soon be able to run WebGL content just by setting the appropriate command-line flags.  My own experiments show that you still get the best results using both <code>--enable-webgl</code> and <code>--no-sandbox</code> — some pages, including my own lesson 16, still show problems if you don’t use the latter, or if you use <code>--in-process-webgl</code> instead. [UPDATE I should say that I'm not saying that you should use this in preference to a Chromium nightly — at least not yet!  It's just cool that the WebGL support is out there on millions of desktops.] [UPDATED AGAIN I've checked with Ken Russell on the Chrome team, and he confirms that Chromium nightly builds are still what we should be using for WebGL development.]</li>
<li>Once you’ve downloaded Chrome stable and configured it as above, here’s a new page to try with it: the English-language version of the <a href="http://twitlife.net/index_en.html">Japanese Twitlife site</a> I mentioned the other day.</li>
<li>Sadly, it’s not all sweetness and light with Chrome.  <a href="http://asalga.wordpress.com/2010/05/21/chromium-fails-when-trying-to-transpose-in-uniformmatrix/">Andor Salga points out</a> that the <code>transpose</code> parameter to  <code>uniformMatrix4fv</code> doesn’t work; when you pass <code>true</code>, you get an <code>INVALID_ENUM</code> error.  This oddity was also <a href="http://www.khronos.org/message_boards/viewtopic.php?f=43&amp;t=2729&amp;p=7239">mentioned on the forums</a> a while back, and we discovered something surprising — the OpenGL ES 2.0 spec, on which WebGL is based, explicitly says that <code>transpose</code> must be false!  So Chrome’s quite right to complain about it, but it does make one wonder why the parameter is there in the first place… perhaps for future use?</li>
<li>On a more cross-browser note, here’s something else from Andor — <a href="http://asalga.wordpress.com/2010/05/24/webgl-browser-stress-tests-using-processing-js/">the results of some stress tests</a> dealing with hundreds of thousands of points using Processing.js, across WebKit and Minefield.
</li><li>Finally, continuing the large scene theme, Charles Cliffe is continuing to test loading meshes into CubicVR, with an impressive <a href="http://cubicvr.org/CubicVR.js/MeshLoaderTest-34kCity.html">a 34k-triangle cityscape</a>.</li>
</ul></div>
    </content>
    <updated>2010-05-26T13:31:03Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-06-25T15:40:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2204</id>
    <link href="http://learningwebgl.com/blog/?p=2204" rel="alternate" type="text/html"/>
    <title>Some minor retrospective changes</title>
    <summary>Just so that you know that I’ve not given up on the lessons… I’m slowly but surely putting together the writeup for lesson 16.  While working through it (and fixing messy code), I found a couple of things that needed to be changed in all of the previous lessons:

As per Marco Di Benedetto’s suggestion, [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just so that you know that I’ve not given up on the lessons… I’m slowly but surely putting together the writeup for <a href="http://learningwebgl.com/lessons/lesson16/">lesson 16</a>.  While working through it (and fixing messy code), I found a couple of things that needed to be changed in all of the previous lessons:</p>
<ul>
<li>As per <a href="http://learningwebgl.com/blog/?p=2008&amp;cpage=1#comment-2052">Marco Di Benedetto’s suggestion</a>, I’ve moved the code that calls <code>gl.viewport</code> from the <code>initGL</code> function to <code>drawScene</code>.  As Marco says, this makes it a bit more explicit; it also had the benefit of making it necessary for me to make the width and the height of the canvas available in <code>drawScene</code>, which meant that I could use them explicitly in the call to the <code>perspective</code> function, so now we use a calculated aspect ration parameter value instead of a hard-wired 1.0.  This means that you can resize the canvas in the HTML, and things won’t get stretched or squashed.  A definite improvement.</li>
<li>Roman <a href="http://learningwebgl.com/blog/?p=28&amp;cpage=2#comment-3055">pointed out</a> in the comments that the glUtils.js file in the lessons has two copies of <code>makeOrtho</code>.  This shouldn’t have been causing problems — the second one should just have overwritten the first — but apparently it was stopping stuff from displaying on his machine.  I’ve removed it.</li>
</ul>
<p>So that’s it for now.</p></div>
    </content>
    <updated>2010-05-25T13:18:51Z</updated>
    <category term="Retrospective changes"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-06-22T23:20:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://learningwebgl.com/blog/?p=2226</id>
    <link href="http://learningwebgl.com/blog/?p=2226" rel="alternate" type="text/html"/>
    <title>WebGL around the net, 24 May 2010</title>
    <summary>Some good news: Minefield can now use OSMesa for software rendering without needing it to be compiled with “mgl_” prefixes for the functions.  Unfortunately that this means most of the instructions out there are wrong, including mine and those from Krzysztof Pasek that I linked to last week… I’ll correct mine shortly.  The [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul>
<li>Some good news: <a href="http://learningwebgl.com/blog/?p=2224&amp;cpage=1#comment-3407">Minefield can now use OSMesa for software rendering without needing it to be compiled with “mgl_” prefixes for the functions</a>.  Unfortunately that this means most of the instructions out there are wrong, including mine and those from Krzysztof Pasek that I linked to last week… I’ll correct mine shortly.  The <a href="http://www.khronos.org/webgl/wiki/Implementations/Firefox">instructions on the Khronos website</a> are, of course, definitive.</li>
<li>This is cool: a <a href="http://blog.intubo.com/?p=99">Sparse Voxel Octree</a> from Veljko Petrovic.</li>
<li>From the Google IO conference, <a href="http://twitter.com/mager/statuses/14316663799">a report that a new Google Street Map API will support WebGL</a>.  Does anyone know any more?</li>
<li>Using Charles Cliffe’s CubicVR, <a href="http://cubicvr.org/CubicVR.js/MeshLoaderTest.html">a nice model of a car</a>, and <a href="http://cubicvr.org/CubicVR.js/bd3/BeatDetektor3HD.html">another cool music visualisation</a>, if you have the <a href="https://wiki.mozilla.org/Audio_Data_API">Audio Data API</a> compiled in — here’s <a href="http://www.youtube.com/watch?v=OxoFcyKYwr0&amp;fmt=22">a YouTube video of it</a> if you don’t.</li>
<li>More nice stuff from Evgeny Demidov: <a href="http://www.ibiblio.org/e-notes/webgl/earth.html">the Earth</a>, <a href="http://www.ibiblio.org/e-notes/webgl/moon.html">the Moon</a>, <a href="http://www.ibiblio.org/e-notes/webgl/jupiter.html">Jupiter</a>, <a href="http://www.ibiblio.org/e-notes/webgl/mars.html">Mars</a>, <a href="http://www.ibiblio.org/e-notes/webgl/lorenz.html">a Lorenz strange attractor</a> [WARNING! <a href="http://learningwebgl.com/blog/?p=2226&amp;cpage=1#comment-3473">apparently this can crash Minefield on Snow Leopard</a>], a <a href="http://www.ibiblio.org/e-notes/webgl/klein.html">Klein Bottle</a>, and some very pretty <a href="http://www.ibiblio.org/e-notes/webgl/interference_rgb.html">interference</a> <a href="http://www.ibiblio.org/e-notes/webgl/interference3rgb.html">patterns</a>.  Check out <a href="http://www.ibiblio.org/e-notes/webgl/webgl.htm">his WebGL page</a>, and in particular <a href="http://www.ibiblio.org/e-notes/webgl/models.htm">the models section</a>, for more.  [<a href="http://learningwebgl.com/blog/?p=2226&amp;cpage=1#comment-3472">Sadly not Chrome-compatible</a>, apart from the Lorenz and interference examples]</li>
<li>Lindsay Kay has <a href="http://docs.google.com/View?id=dhgqr476_43ccpdzdft">another SceneJS release ready: 0.7.5</a>, which brings a few API changes, some bug fixes, and downloadable examples.</li>
<li>Via <a href="http://playwebgl.com/news/twitlife-in-webgl/">PlayWebGL</a>, <a href="http://twitlife.net/index.html">a Japanese virtual world that appears to be based around Twitter</a>: can any Japanese readers out there tell us more about it?</li>
<li>Not strictly WebGL, but this might be useful if you’re trying to download complex models with a bunch of separate files — images, meshes, and so on.  Ilmari Heikkinen has created <a href="http://fhtr.blogspot.com/2010/05/parsing-tarballs-with-javascript.html">a JavaScript library to parse TAR archives</a>.</li>
</ul></div>
    </content>
    <updated>2010-05-24T19:21:01Z</updated>
    <category term="Links"/>
    <author>
      <name>giles</name>
    </author>
    <source>
      <id>http://learningwebgl.com/blog</id>
      <link href="http://learningwebgl.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://learningwebgl.com/blog" rel="alternate" type="text/html"/>
      <subtitle>...lessons 'n' links...</subtitle>
      <title>Learning WebGL</title>
      <updated>2010-06-14T18:00:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1573</id>
    <link href="http://asalga.wordpress.com/2010/05/24/webgl-browser-stress-tests-using-processing-js/" rel="alternate" type="text/html"/>
    <title>WebGL Browser Stress Tests Using Processing.js</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I’m working on XB PointStream, a tool which will emulate Arius3D‘s PointStream. XB PointStream will use WebGL to render thousands of points efficiently in the browsers. I was curious to see how many points Processing.js could churn out using WebGL. If fast enough, it could potentially be used as underlying rendering engine for XB PointStream. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1573&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’m working on <a href="http://zenit.senecac.on.ca/wiki/index.php/XB_PointStream">XB PointStream</a>, a tool which will emulate <a href="http://www.arius3d.com/">Arius3D</a>‘s <a href="http://www.arius3d.com/main.html?contentId=6">PointStream</a>. XB PointStream will use <a href="http://www.khronos.org/webgl/">WebGL</a> to render thousands of points efficiently in the browsers.</p>
<p>I was curious to see how many points <a href="http://www.processingjs.org">Processing.js</a> could churn out using WebGL. If fast enough, it could potentially be used as underlying rendering engine for XB PointStream. So I wrote a <a href="http://www.processing.org">Processing</a> sketch which rendered thousands of points, and I took some measurements. I didn’t have any point clouds at hand, so I just generated a few thousand points myself:<br/>
<a href="http://asalga.files.wordpress.com/2010/05/snapshot-2010-05-24-12-09-441.jpg"><img alt="" class="alignnone size-medium wp-image-1594" height="300" src="http://asalga.files.wordpress.com/2010/05/snapshot-2010-05-24-12-09-441.jpg?w=258&amp;h=300" title="400,000 points" width="258"/></a><br/>
Once I recorded how long it took <a href="http://nightly.mozilla.org/">Minefield</a> and <a href="http://nightly.webkit.org/">Webkit</a>, I started hacking in some optimizations in the Procesing.js library. I knew I could start with reducing the number of calls to uniformMatrix*. For example, in Processing.js, the perspective and view matrices are set every time a point is rendered, which is unnecessary. I moved these function calls out and ran the browsers through the tests again. I was pleased to see rendering time was cut roughly in half.<br/>
<a href="http://asalga.files.wordpress.com/2010/05/snapshot-2010-05-24-12-43-461.jpg"><img alt="" class="alignnone size-medium wp-image-1596" height="222" src="http://asalga.files.wordpress.com/2010/05/snapshot-2010-05-24-12-43-461.jpg?w=300&amp;h=222" title="Snapshot 2010-05-24 12-43-46" width="300"/></a><br/>
I then filed a <a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/672">bug on our lighthouse account</a> to reduce the number of uniformMatrix*. We still have a way to go in performance, especially since these tests are static renders, don’t account for download time and don’t use real-time lighting.</p>
<h2>No Chromium Tests Yet</h2>
<p>It’s unfortunate that I couldn’t benchmark Chromium. I even took extra steps to get the tests to run by placing the Processing sketch within the HTML file so Chromium wouldn’t throw XHR errors. I also merged one of <a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/662">my  Processing.js patches</a> which <a href="http://asalga.wordpress.com/2010/05/21/">does not transpose matrices in calls to uniformMatrix*</a>, which the nightly has issues with. But even after doing this, Chromium surprisingly rendered extremely slowly. This was the exact opposite of what I expected since it always outperforms the other browsers. I <i>could</i> try to find the <a href="http://build.chromium.org/buildbot/snapshots/">nightly</a> which renders properly, but I don’t have time to sift through all those nightlies. If someone knows when WebGL was broken, let me know.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/arius3d/">Arius3D</a>, <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/processing-js/">Processing.js</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>, <a href="http://asalga.wordpress.com/category/xb-pointstream/">XB PointStream</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1573/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1573/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1573/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1573/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1573/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1573/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1573/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1573/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1573/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1573/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1573&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-05-24T17:54:10Z</updated>
    <category term="Arius3D"/>
    <category term="Open Source"/>
    <category term="Processing.js"/>
    <category term="WebGL"/>
    <category term="XB PointStream"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1567</id>
    <link href="http://asalga.wordpress.com/2010/05/21/chromium-fails-when-trying-to-transpose-in-uniformmatrix/" rel="alternate" type="text/html"/>
    <title>Chromium Fails When Trying to Transpose in uniformMatrix</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">A few weeks ago I updated Chromium, but the update broke my 3D Processing.js sketches. I didn’t have the time to look into it, so I continued using Webkit and Minefield to run my tests. This week I had a chance to check out the problem, so I loaded the C3DL splash page to see [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1567&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A few weeks ago I updated <a href="http://build.chromium.org/buildbot/snapshots/">Chromium</a>, but the update broke my 3D <a href="http://www.processingjs.org">Processing.js</a> sketches. I didn’t have the time to look into it, so I continued using <a href="http://nightly.webkit.org/">Webkit</a> and <a href="http://nightly.mozilla.org/">Minefield</a> to run my tests. This week I had a chance to check out the problem, so I loaded the <a href="http://www.c3dl.org">C3DL</a> splash page to see if it would render. Interestingly it worked. I then tried Processing.js, but that was still broken. How was it that Chromium rendered C3DL and not Processing.js? I knew there must be some <a href="http://www.khronos.org/webgl/">WebGL</a> command somewhere in Processing.js which Chromium didn’t like. I poked around our library for a while but still couldn’t get anything to render. The only thing that seemed to work was changing the background color.</p>
<p>I then thought about checking for any errors WebGL was reporting. I stuck a few alerts in the library:<br/>
<code>alert(ctx.getError());</code><br/>
I started seeing non-zero values. WebGL was reporting error <b>1280</b>. I converted this to hex (<b>0×500</b>) and ran a search. It turns out the error was because of an <b>INVALID_ENUM</b>. I kept throwing in alerts until I could isolate which command was causing this error.</p>
<p>I eventually found it to be this line:<br/>
<code>ctx.uniformMatrix4fv(varLocation, transpose, matrix);</code><br/>
I was passing in <b>true</b> as the second argument and figured that must be causing the problem. I changed it to false and WebGL stopped complaining. Great! Of course nothing rendered. So to work around this problem, I just had to transpose the matrices myself before passing them to WebGL. This didn’t change Minefield or Webkit, they still run fine and now so does Chromium.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/processing-js/">Processing.js</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1567/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1567/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1567/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1567/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1567/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1567/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1567/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1567/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1567/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1567/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1567&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-05-22T02:43:42Z</updated>
    <category term="Open Source"/>
    <category term="Processing.js"/>
    <category term="WebGL"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://asalga.wordpress.com/?p=1558</id>
    <link href="http://asalga.wordpress.com/2010/05/20/xb-pointstream/" rel="alternate" type="text/html"/>
    <title>XB PointStream</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">In my last post I wrote about an application by Arius3D called Pointstream, which at its core renders millions of surface splats very efficiently. I’m working with a few other researchers in the Seneca College CDOT lab. We are starting some work on creating a version of their viewer which works on Minefield, Webkit and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1558&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>In my <a href="http://asalga.wordpress.com/2010/05/20/installing-arius3d-pointstream-3dimagesuite-viewer-on-windows-7/">last post</a> I wrote about an application by <a href="http://www.arius3d.com">Arius3D</a> called Pointstream, which at its core renders millions of surface splats very efficiently.</p>
<p>I’m working with a few other researchers in the Seneca College CDOT lab. We are starting some work on creating a version of their viewer which works on Minefield, Webkit and Chromium using <a href="http://www.khronos.org/webgl/">WebGL</a>. I tentatively named the project XB PointStream in hopes that it will one day be totally cross-browser. If IE implements a subset of DirectX, it would fulfill this hope. That way all the major browsers would be able to render Arius3D scans without a plug-in.</p>
<p>We just started the project, so there isn’t much to show unfortunately. But here are some links we’ll be using:<br/>
<a href="http://cdot.lighthouseapp.com/projects/52886-xb-pointstream">Lighthouse account</a><br/>
<a href="http://github.com/asalga/XB-PointStream">Github repository</a><br/>
<a href="http://zenit.senecac.on.ca/wiki/index.php/XB-PointStream">A temporary website</a></p>
<p>If anyone thinks of a better name, let us know soon!</p>
<p>The next thing we’ll need to do is flesh out some specifications.</p>
<ul>
<li>What formats to support (PSI, DAE, ..)</li>
<li>Maximum wait time to render whole object</li>
<li>Shader lighting (I believe Arius3D uses BRDF)</li>
<li>User controls</li>
<li>etc..</li>
</ul>
<p>Some of these we can derive from the viewer, but we shouldn’t emulate it entirely. Arius3D wants us to create something generic so other developers facing the same issue would be able to use this tool as well. We will probably have another meeting to figure out some of these details. From there we can begin filing bugs in lighthouse and start hacking.</p>
<br/>Filed under: <a href="http://asalga.wordpress.com/category/arius3d/">Arius3D</a>, <a href="http://asalga.wordpress.com/category/open-source/">Open Source</a>, <a href="http://asalga.wordpress.com/category/programming/webgl/">WebGL</a>, <a href="http://asalga.wordpress.com/category/xb-pointstream/">XB PointStream</a>  <a href="http://feeds.wordpress.com/1.0/gocomments/asalga.wordpress.com/1558/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asalga.wordpress.com/1558/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/asalga.wordpress.com/1558/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asalga.wordpress.com/1558/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/asalga.wordpress.com/1558/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asalga.wordpress.com/1558/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/asalga.wordpress.com/1558/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asalga.wordpress.com/1558/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/asalga.wordpress.com/1558/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asalga.wordpress.com/1558/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asalga.wordpress.com&amp;blog=9424798&amp;post=1558&amp;subd=asalga&amp;ref=&amp;feed=1"/></div>
    </content>
    <updated>2010-05-21T01:03:54Z</updated>
    <category term="Arius3D"/>
    <category term="Open Source"/>
    <category term="WebGL"/>
    <category term="XB PointStream"/>
    <author>
      <name>Andor Salga</name>
    </author>
    <source>
      <id>http://asalga.wordpress.com</id>
      <logo>http://www.gravatar.com/blavatar/fd8e04d10e2b1b6b2ad228a4695e395b?s=96&amp;d=http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://asalga.wordpress.com/category/programming/webgl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://asalga.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://asalga.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://asalga.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A journey into recursive dreams</subtitle>
      <title>Andor Salga » WebGL</title>
      <updated>2010-07-28T17:40:08Z</updated>
    </source>
  </entry>
</feed>
