The book of inspiration

July 21, 2010

Shader Smoke

Filed under: tech — Tags: , — zproxy @ 10:59 am

How can I do that in WebGL?

And how do I visualize functions in WebGL?

Update: There is a library for that – WebGLOT by Dan!

March 9, 2010

WebGL on Old Hardware with MESA

Filed under: tech — Tags: , , — zproxy @ 8:03 am


WebGL now seems to be  mature enough to add support in jsc.   This would mean you could develop your WebGL applications in C#, Visual Basic or F#. The trick is to get it working on my machine. It seems my graphics card does not support OpenGL ES 2.

TypeError: Object #<a WebGLRenderingContext> has no method 'getShaderi'

Running dxdiag tells me that my Video card Chip Type is ATI Radeon Xpress 1200 Series.

The last time I updated Video card drivers on my machine there were some serious issues due to the fact the application had some issues with the .net framework. As a developer I have all versions of it and it caused problems.

While searching around I found GPU Caps Viewer.

As I can see I have GLSL Version 1.2 – not good.

[…] many common Intel graphics cards doesn’t have OpenGL drivers

[khronos] I’ve found that Firefox needs at least OpenGL 2.0 support on the graphics card’s driver, otherwise it will fail over to using MESA if it knows where to find the library. I used to find out what version of OpenGL the driver supported, though there may well be better ways.

Maybe I should try the MESA software rendering with Minefield?

To launch a new proccess:

firefox.exe -no-remote
you need to tell Firefox where to find: 
open up about:config, and set the preference 
webgl.osmesalib to the path of OSMESA32.DLL

Are we done? No.

Error: gl.getShaderi is not a function
Line: 31

Error: gl.getShaderi is not a functionSource File: 31

Are we done? Yes.

Software rendering seems to be very slow. The Minfield (almost) locks up.

So what else works?

  1. Animated Cube
  2. Lesson 1
  3. Lesson 2
  4. Lesson 3 – rotating, cool 😀
  5. Lesson 4 – rotating mesh, a little slower
  6. Lesson 5 – rotating textured cube, quite slow
  7. Lesson 6 – user rotated textured cube, rather slow
  8. Lesson 7 – with light
  9. Lesson 8 – transparent cube, very slow
  10. Lesson 9 – moving objects
  11. Lesson 10 – nano doom, too slow
  12. Lesson 11 – sphere, too slow
  13. Lesson 12 – rotating sphere with light – a little slow
  14. Lesson 13 – too slow
  15. Lesson 14teapot model, nice 🙂
  16. Lesson 15 – rotating earth, too slow

Should jsc also support converting (C#, F#) IL to HLSLx-shader/x-fragment“?

Would be cool to write a shader effect, debug it in Windows Presentation Foundation and run it in browser on javascript within WebGL.


OpenGL ES 2.0 is not supported on lots of common hardware. That means
there are a lot of machines that will not be able to run WebGL.

WebGL, being 100% dependent on JavaScript to do an application’s scene
graph, is going to have serious problems drawing more than a few pieces of
geometry at 60hz except in very special cases or on very fast machines

Create a free website or blog at