While working in VR and in greybox levels I found that it was difficult to show the player how fast they were moving with flat textures on all the surfaces. I am keeping all features as intuitive as possible - you wouldn't have on-screen elements like a speedometer when you're playing sports in real life. Working out how fast you are going just from the world around you should be another skill to master in Man Grenade.
From my time at Sony working on Rigs: MCL I remembered that repeating high-contrast vertical stripes on walls were a large nausea trigger. I wanted to sell the movement everywhere, so I developed a technique that could be applied to every surface to orient the player while remaining low contrast enough to reduce any nausea issues.
I avoided manual UV mapping as this would add more work when iterating on levels. I chose instead to use 3D textures. I needed this method to work on the whole level, and it would make my life easier if I had to do less customisation for each material. I also needed the surface to have crisp lines to fit in with the low-poly, discrete art style I have in mind for the game.
I chose to use a noise texture and a Voronoi function to procedurally generate patches in 3D space, and when I rendered a surface I "swam" the surface through the patches to alter the colour slightly. The procedural nature allows me to get infinite precision, no matter how close you look at it, and I can push objects around and they'll always "connect" with anything else they're touching. In the video below you can pause at any point and you'll see that the patches on the surface always look correct.
The Voronoi function I used produces a cell index number, which is unique to each patch. I used the number to change the saturation and the hue slightly, which gives the eye enough to catch on to and infer speed from. I also changed the surface's smoothness a little, which acts as a grunge texture and makes the world feel a little more lived in and less perfect. I really like this subtle effect on the concrete in particular: