Cocky Rooster Games Logo

Technical Art

Projects Shown:
Hologram Projector - SparkXR NDA Project
Terrain Generation - Houdini- SparkXR NDA Project
VR Speed VFX - SparkXR NDA Project
3D Camera Projection - SparkXR Prototypes
Inuit Whale Model - Joshua Watts

VR Speed VFX - NDA Project - SparkXR

For this project we had a section where the player rushed through an area at extreme speed. To sell this moment I set out to create some high speed VFX that would work in VR.

I started by researching how speed is shown in other games/film and made a number of prototypes but soon ran into the issue of all of these effects only being shown on a 2d screen. None of them held up in VR. Eventually I stumbled upon the idea of blurring your peripheral view. I gave this a test and it looked great!

To pull this off I modeled a speed tunnel around the player and made a shader that would show a distorted and offset view of your surroundings projected onto that model. I then added some normal map scrolling, ramp in/out animation, and support particle vfx. With that, the effect was complete. This effect managed to cover up the environment enough to let us optimize it and it completely sold the feeling of soaring through the sky at breakneck speeds in VR!

Handheld Camera System - Rapid Prototypes - SparkXR

Before the start of the second SparkXR project, we did a rapid prototype session to help with the planning phase. Part of that was to test out a handheld camera system in VR. These demos included a real time camera view display, zoom buttons, time manipulation for easier shots, taking shots of the player’s view, recording videos, displaying 360 images and videos, using the camera to find invisible objects, and a handheld 3D screen.

To accomplish most of this I created a second camera and rendered it to a screen that floated above the player’s hand. I used a combo of controller input and floating, physical buttons for the camera inputs. The camera had landscape and portrait modes and would swap to use the player’s viewpoint if you held it up to your head.

On the code side I adjusted the camera to render at the wanted screenshot size, then rendered that image to a texture. For videos, these textures were put into a temporary que until the game was ready for saving. Once the texture(s) were ready, they would be given a unique file name and encoded to PNG or MP4 and then saved asynchronously to a specified folder outside of the project files.

For the 360 images/video playback I reversed the normals of a sphere and rendered the files to the sphere’s texture. This took some effort working with the sphere’s UVs as they had to match the video’s 2D layout for the effect to look right.

The coolest tech art part of this was the 3D screen effect. Essentially I took two viewpoints displaying to each eye separately to make it feel like you were viewing a small 3D screen in VR... double 3D! The setup felt like looking at a 3DS without the dropped view angles. Sadly this never made it into the final project but the effect was really neat.

Hologram Button Generator - NDA Project - SparkXR

As a brief release from coding I was given the chance to create a hoverboard launch button for the game’s opening scene. I wanted the generator to be projecting a button that would make sense for you not to feel anything physical when touching it. The solution was to have it project a hologram.

I handled the majority of the work around this section including the artwork design, modeling, animation, event coding, shaders, and audio hookups(not the audio files themselves though).

The projector models were created in Modo, textured with Surforge, and animated inside of Unity. While the hologram button was created using a custom shader and some light animation and VFX. When the player touched the button it animated in and distorted then broke apart to show your hand disturbed the hologram rather than just passing through it.

Terrain Generator - NDA Project - SparkXR

As part of the second SparkXR project we needed to create a massive plot of land that could be seen both at ground level and from high above. The entire area needed was roughly 36 square miles so we opted for a procedural terrain generator rather than crafting everything by hand. As the newly crowned studio tech artist, I was given the task of figuring out how to make that happen.

This trial by fire entry into procedural art started with an in depth investigation of every piece of terrain generation software I could get my hands on. By the end of it Houdini stood out as the most powerful by far. I started the process by pulling satellite data to recreate the area we needed. Then I imported that into Houdini as a starting point for a height map. Trying to do everything in one giant system turned out to be a bad idea so I split the process into several separate systems, each focused on a specific terrain type(mountains, sand dunes, scatter, erosion, etc.)

I used a combination of noise generation, hand painted masks, rule based masks, etc. to generate the terrain needed for each climate. Rather than generating everything in Houdini and importing to Unity, I used Houdini Engine to streamline the process and generate terrain tiles inside of the game engine.

This was done through creating separate PDG systems for each type of terrain. The separation allowed me to generate each climate type one at a time and add changes in between steps without redoing the whole process. It also helped minimize the amount of time lost every whenever Unity crashed in the middle of generating... which was way too often.

The final terrain system consisted of a mega low res distant terrain, a mid res semi-processed terrain ,and a high res close up terrain. Houdini was used for the initial asset scattering and texture placement. We then touched up the scatter, heightmap, and the textures on the high res terrain chunks by hand to end up with something game ready.