Posts Tagged: Programming

WebGL Statistics and the state of WebGL/HTML5

Apr. 25, 2012
comments

In two previous posts I examined capabilities of WebGL and the challenges for WebGL/HTML5 as a game app platform. It has been 8 months since the last writeup, and a lot has happend. Browsers have introduced new capabilities and I have written a site to collect WebGL statistics. The following post will look at what's changed, and what conclusions we can draw from the statistics.

RequireJS for WebGL and Coffeescript

Feb. 19, 2012
comments

I have been writing a bunch of WebGL code over the last year, and I got a bit into Coffeescript. What has always bothered me is how messy it is to create structured applications. A major part of that is that JS has no module system. The following post presents a way to deal with the issue.

Parsing 3D file formats

Nov. 18, 2011
comments

I am writing a game (no link yet) and I need some assets. So the obvious thing to do is to parse some 3D file format and get the data out of it that I need. I have tried a couple of formats and implemented some, and the following article describes the file formats I've encountered and tried to use.

WebGL GPU Landscaping and Erosion

Nov. 10, 2011
comments

A while ago I finished playing From Dust which I enjoyed a lot. What impressed me about that game was the application of landscape changes by erosion. One drawback of the tool Lithosphere I wrote earlier is that it can't do any form of hydraulic erosion. I decided to write a test in WebGL to see if a few simple algorithms could be used to shape a landscape according to hydraulic erosion.

WebGL Screenspace Ambient Occlusion

Oct. 25, 2011
comments

The grass demo I did earlier used some Screenspace Ambient Occlusion. I thought it was a cool effect, and decided to research the topic futher. Scren-Space Ambient Occlusion is an incorrect aproximation to true ambient occlusion, and it has a couple problems, but it can be a useful technique.

WebGL and HTML5 Challenges For The Future

Sep. 11, 2011
comments

In the book Game Engine Gems 2: Chapter 13 author Rémi Arnaud examines different browser based 3d rendering techniques. According to Rémi, many 3D web rendering technologies failed because they could not get game developers on board. An example is VRML, which was pronounced dead on arrival by John Carmack.

Advanced WebGL - Part 3: Irradiance Environment Map

Apr. 18, 2011
comments

In part 2 of this series I explained about how to get the sky. This entry is about how to compute an irradiance environment map from this cubemap.

Advanced WebGL - Part 2: Sky Rendering

Apr. 13, 2011
comments

In Part 1 of this howto, I introduced my demo. In this part I'm going to talk about how to make the sky. The demo also computes an irradiance map and applies it to the cube. I'm going to talk about this in Part 3.

Advanced WebGL - Part 1

Apr. 11, 2011
comments

WebGL is now enabled by default in both Firefox 4.0 and Chrome 10.0, so I thought I give it a try and see what I can get out of it. The goal was to render some simple terrain, nice looking sky and waving grass. In this part of the description I will give the overview of how that works.

Minecraft Like Rendering Experiments in OpenGL 4

Dec. 09, 2010
comments

Since all the excitement about Minecraft I wondered what nice rendering effects could be done in such a restricted environment. I have decided to pursue that avenue of research and a variety of techniques will be presented in the following article.

Javascript Compression, Madness

Aug. 25, 2010
comments

A couple days ago I wrote a post about how to do the n-body simulation in javascript with canvas. But if I wanted to submit it to js1k, it needed to fit into 1024 bytes. The following post is about my own javascript compressor written in python. I start with 3.1kb then get with minification to 1.4kb and with my own compression algorithm to 0.9kb.

CDLibrary - a driver to Dacal CD Library 2 devices

Aug. 18, 2010
comments

This Linux Driver allows you to access CD Library 2 devices connected on the USB ports either via http or the filesystem. Below is a picture of such a device. Each device can hold 150 CD/DVD/Blue-Ray dimensioned discs.

SpringUV - Minimize distortions from planar UV mapped terrain

Aug. 17, 2010
comments

A common approach to UV mapping terrain is to use planar mapping. This works well except with steep faces where the texture gets stretched. Solutions like tri-planar mapping can remedy this, but introduce other artefacts and are hard to get seamless. The picture below illustrates stretching artefacts with planar UV mapping.

SQLAlchemy Console

Jul. 31, 2009
comments

sqlalchemy console allows you to connect to any of the databases supported by sqlalchemy and run an interactive database command line against it.