Recently I have been learning basic realtime 3D graphics using OpenGL ES 2.0, GLSL and C++. This is my first time coding anything more serious in 3D and also OpenGL! In theory this could run on any platform that supports OpenGL ES 2.0; ranging from PCs to Smart Phones. All of the content was used purely for learning purposes.
Cross-Platform window management using PowerVR VRShell.
Initialization of projection and view matrices with the help of GLM (OpengGL Mathematics).
Rendering 3x colored cubes using a single Vertex Buffer Object. Simple interpolating-color fragment shader.
Loading of image data using FreeImage. Rendering of three rotating and textured cubes.
Fract allows you to edit shader (.fx) files written using HLSL and
immediately see the changes within Fract. It is primarily meant to create and
explore Fractals. See the “Readme Please.txt” file for further information.
The Game of Life is another Cellular Automata. This automata consists of a two-dimensional grid of cells. By following simple rules interesting behaviour can emerge.
The default rules are as followed:
Any live (black) cell with fewer than two live neighbours dies, as if by needs caused by underpopulation.
Any live (black) cell with more than three live neighbours dies, as if by overcrowding.
Any dead (white) cell with exactly three live neighbours becomes an live cell.
My implementation of Conway’s Game of Life allows you to add well known starting conditions which emerge into self-repeating (oscillating), chaotic and/or self-destructive patterns. You can also toggle the state of any cell by simply clicking it.
A cellular automata consists of a grid of cells, with each cell having a number of states. The cells of the simple automata, that I’ve implemented in Silverlight, can have one of two states: On (Black) or Off (White).
Each row in the grid represents one generation (in this automata).
The state of a row depends on the state of the previous row, and so on.
A simple rule is used to generate the state of each cell of a row:
For each entry in the row we take the (N – 1th, Nth, N + 1th) cell triple
in the previous row.
Now we take this triple and use a lookup table to get the state of the entry.
Here are the lookup tables for two of the most famous patterns: