
Games for Love
Games for Love, an awesome charity has me on board their talented team of artists, programmers and designers making video games for children! I was given the opportunity to create low polygon Virtual Reality assets for a small beachfront town. (Officer model is from the Unity Asset Store)
The game is called Channel Surfing+. In this world, you use a remote to change channels and play different mini-games and worlds to explore.
The game is meant for VR headsets, and uses the Unity engine for rendering.

VR Assets are very restricted
Rendering a scene in VR glasses is more complicated than traditional rendering, even though it uses traditional rendering roots.
The basic idea of VR rendering is rendering two different views of the same perspective and position, at slightly different offsets to mimic two eyes and trigger the depth perception of the human brain. Once the brain accepts the depth perception effect within the goggles, the scene successfully tricks the brain into thinking the brain is in there.

VR assets have to be optimized
In traditional video game rendering, an image is created by finding the virtual camera’s position and angle, processing “triangles” which create polygons, which create surfaces, which create objects. Then textures are rendered. Then you see the final image on your monitor.
Because a VR game has to have 2 different views to account for the left and right eye, everything normally has to be rendered twice. So every polygon, every surface, every texture has to be processed twice. This can be intensive for the CPU and graphics card, which is why VR games usually have lesser performance and graphical fidelity than non-VR games.

So what does VR rendering mean for the assets?
It means that we have to be stingy with our polygon counts! Of course there are rendering tricks and algorithms to try and speed up the rendering process, but the best optimization comes from the actual asset!
The less polygonal detail there is, the better. And if there has to be less polygons and less detail, the clean and flat aesthetic for the assets lends well!
Solid colors and simpler faceted objects look better instead of low polygon count realistic objects.


For this bus, I had to stay under a 3k polygon count. I was able to fully model and texture this guy in one texture. The doors can open, the wheels can rotate, and the driver’s wheel can turn, all rigged with bones.



Everything has to match
All assets were given this “low-poly” look so that they’re all cohesive in game.


