Project Chameleon
Adaptive Camouflage Generation
Raytraced Hexagonal Surface
In the spring of 2019, a classmate and I implemented a raytracing 3D renderer from the ground up. The semester-long project was for a graduate class in computer graphics.
I wrote code to translate my randomly-generated hexagonal patterns into triangles in 3D space, which could be assigned a color and rendered by our raytracer.
​
The first step was a simple digital pattern, generated in Python like the rest of Project Chameleon.
The simple raster pattern is transformed into hexagon space. The image below is the hexagonal form of the area marked in red above.
The hexagon pattern is triangulated, as shown below.
(X,Y) hexagon vertices are assigned Z values to form a textured surface, and output with layer information.
​
C++ code opens the vertices into triangle objects for the raytracing renderer. This is one of the resulting renders, upsized with a median filter applied.
There are many problems with this output, such as the stark lighting difference caused by the singular simulated light source, and the lack of walls beneath the upper surface.
​
The project was a foray into 3D-rendered camouflage. Even if the homebrew raytracer's results with the hexagons were disappointing, the hexagon-outputting strategy holds potential.
​