Lesson 15 working

Work continues. After making some changes to GLSL registers and how that is reported through the stack all the way up to WebGL, I was pleased to discover that lesson 15 is now (mostly) working correctly. My guess is that there must not have been enough registers to run correctly, but I’m not 100% sure on that. There are still some minor graphical artifacts, but it appears to be the same problem as the Earth demo, so if I can figure that one out, then that should fix both of them. Probably an overflow, as it seems to localize around areas of strong lighting influence.
After that, that leaves only demo 16, which will require some additional functionality, and demo 10, which seems to be showing a severe clipping bug.

Posted in Uncategorized | Comments Off on Lesson 15 working

IE Fix

The demos have been updated with the latest version of the cwebgl library. This fixes a bug that caused IE to crap out.

Posted in cWebGL | Tagged , | Comments Off on IE Fix

Project Split

I’m splitting the glsl compiler into a separate project. See https://github.com/cimaron/glsl2js/.

Posted in cWebGL | Tagged , | Comments Off on Project Split

Code Moved

The code repository has now been moved to github: https://github.com/cimaron/cwebgl.

More updates will be forthcoming.

Posted in cWebGL | Tagged | Comments Off on Code Moved


Currently, cWebGL development is on hold while I catch up on other responsibilities. However, I will gladly accept code contributions from anyone who wants to help development continue.

Posted in cWebGL | 3 Comments

cWebGL 0.3.1

cWebGL 0.3.1 has been released here. This release fixes a number of bugs introduced in the previous release.

Posted in cWebGL | Comments Off on cWebGL 0.3.1

cWebGL 0.3.0

cWebGL v0.3.0 has been released on Google Code here.

Highlights include:

– A reworked driver structure allowing the use of alternative rendering methods. A Stage3D flash driver is in development. A native WebGL driver is also in development (for debugging the software WebGL and gl layers).

– Asynchronous software rendering. Overall performance will decrease slightly, but the tradeoff is a massive improvement in browser responsiveness.

– Miscellaneous rendering improvements. Most of the demo artifacts have been eliminated.

– Automatic performance tuning functionality has been removed. Ideally, this should be handled at the application level.


cWebGL v0.2.5 has been changed to v0.3.0.

Posted in cWebGL | Comments Off on cWebGL 0.3.0

Demos 9 – 16

The rest of the set of 16 demos from learningwegl.com have been posted here. Note that some of them work, some only partially work, and others do not work at all.

Posted in cWebGL | Comments Off on Demos 9 – 16

cWebGL v0.2.0 Released

After months of work, I am pleased to announce the release of cWebGL v0.2.0. New in this release is a completely refactored GLSL compiler which will produce valid GPU ARB assembly code, and an ARB to Javascript translator and execution subsystem. This release also offers a slight performance improvement, with the possibility of more improvements in the immediate future. Download it at the google code project page here.

Posted in cWebGL | 1 Comment

GLSL Compiler Rewrite

Things have been slow recently on the main branch due to work on a massive rewrite of the compiler. Currently, the compiler was mostly a proof of concept, doing a direct translation of the parsed syntax tree into a corresponding javascript representation. While this approach produces a pretty good result, there are some things which would not have worked or would have been extremely difficult to implement as such (e.g. LHS swizzles). Furthermore, a full rewrite would have been necessary anyway to output different targets, such as when Flash Stage3D/AGAL support is built in. This rewrite should be complete in the next week or two.

When done, the new compiler will function as a GLSL->ARB compiler, meaning that it could in theory be used to produce real ARB assembly code, though most likely the output will be very unoptimized.
On the back-end will be a set of translators from ARB to other output formats. At first, it will be limited to an ARB->Javascript translator, but an AGAL translator should be extremely easy to implement afterwards. This leads to all sorts of interesting usage possibilities, such as the ability to debug production shaders in javascript using a virtual GPU/debugger, even if the required level of performance is too great to use the library for software emulation. Also of interest will be the eventual integration of Flash, and for pure-flash developers/applications, the ability to compile GLSL down to AGAL without having to pay for or install external software might be very appealing.

Does anyone have any other ideas?

Posted in cWebGL | 3 Comments