Experimenting With WebGL
It appears that your web browser does not support WebGL.
Unfortunately, this means that the demo will not work. However, screenshots will be displayed instead!
This demo should be able to run on the latest versions of Google Chrome and Mozilla Firefox.
Click on an image to enlarge.
|To get started, I searched online for tutorials, and found learningwebgl.com. This website features a very easy-to-follow and detailed guide on getting started with the basics of WebGL. It helped me learn how to implement the code, and from there I was able to customize it and make it into my own demo. Although this demo uses some of the code that I discovered from the tutorials, I modified it and split it up into multiple classes, and added some of my own features. My goal is to make a system on which I can later build to work on a WebGL project.|
|Why not use THREE.js or another library? A library such as THREE.js would make creating a WebGL demo much easier, but it would also greatly diminish my ability to learn how it all works. The point of doing this was not to get quick results, but to understand how to work with WebGL, and starting from scratch was the best way to learn.|
Plans for the Future
In order to unlock the possibilities of using this code as a foundation for future projects, I intend to add a few more features to the demo. My goal is to familiarize myself with GLSL and improve the shaders to work with object transparency, shadows, and overall more advanced lighting. I would also like to experiment with 3D particle systems. At some point, I hope to bring the entire program over to C++ and try to re-implement it as a normal application so that I can get more experience with classic OpenGL, and/or perhaps even Direct3D.
The more I work with WebGL, the more enjoyable I find it to be. Despite the relatively steep learning curve, I find it very rewarding to see working code running in real-time on the screen. Ultimately, I hope to turn this into a full project, perhaps in the form of a simulation or small game. I believe that WebGL is a great medium for technology and creativity to meet, and I'm looking forward to keep on working with it.