VR is officially here with the release of the HTC Vive & Oculus Rift - & if you’ve tried it, then you know just how fun, immersive & innovative it can be. VR is the first technology that allows the player to experience the medium from the "inside-out" as well as allowing the player to interact with the world in such a direct and physical way.
For a smooth/pleasant VR experience, that hardware needs to keep the software running at a solid 90 fps - whilst displaying on two 1080x1200 screens (one for each eye) on a min-spec GPU (GTX 970). And although we might have a powerful GPU at our disposal - the graphical limitations and processing demand brought on by the VR hardware makes for a new & unique challenge when creating a visually appealing world for your players to be immersed in. All the more so made by the fact that your players are literally standing within the world you create with VR-- a brand new perspective with brand new problems!
Cosmic Trip has been praised by gamers as one of the more visually appealing VR titles to hit the market thus far - so here’s a few tips, tricks & techniques on how we were able to achieve our art style, without compromising performance.
The sky’s the limit
For Cosmic Trip our goal is to create environments that genuinely feel atmospheric & beautiful. We want players to stand inside our game & completely forget that they’re actually just in their living room and are instead magically whisked away into an alien planet.
Our plan to best portray this in a visually striking way, is to keep the majority of our environments out & open on the planet’s surface & not confined to interior rooms or chambers.
All that terrain & draw distance however means that we needed to go with an art style that wouldn’t be too heavy on poly-count. Taking inspiration from the likes of Journey, The Witness & Firewatch - we opted for more of a low poly touch, instead of an all out low-poly assault, where every single triangle on a model seems to have a hard edge!
So whilst some of our environment props are low poly in style, they’re done so in a way that is designed to complement the terrain, structures, enemies & lighting, that are kept free from the hard edge look.
When going for that hard edge style on the likes of the rocks for example, I wanted to try & keep the topology looking irregular. Though the model might be built this way, it doesn’t portray a clean rock face when every edge on that model is hard. So I instead limit hard edges to just the boundary of the various geometric shapes I’m using to make up the different sides of each rock. This way I create a look of irregularity, but with surface shape uniformity. There’s not so many clear squares or triangles, but more a series of connected pentagons, hexagons, heptagons etc.
Up-close & personal
The tools, weapons & structures we use in the game have been heavily influenced by 60's product design, and were concepted by our artist Taz Dodge. It really fits the theme we're trying to hit with the aesthetic as a whole, but means lots of very soft & rounded edges! This wouldn't be too much of a problem, however one thing you'll notice in VR - is that players can view certain things much closer than you might have intended them to! Being able to pick up an item and hold it right up to your face meant we wanted these things to feel smooth & (to some extent) fairly detailed at various distances.
So poly-count here is naturally a little higher, but still not in the range of anything above roughly 5-6k tris (& lower if possible). Our only expection here was to the motion control tools themseleves. We decided they needed a little extra to feel & represent just like how it looks in real life.
For these up close items, we've made full use of the Unity 5 PBR standard shader, by using albedo, metallic, ambient occlusion, normals & often emission channels to get the most out of the surface detail. This means being very conservative with the UV map on models, mirroring as much as possible where you can, & optimizing textures that may not require being such a large size. Our metallic/roughness textures for example will most of the time just be assigning various elements of a model with different shades of grey. So that texture can be brought down in size over something like the normal map, which needs a higher resolution.
On top of the texture optimization, we also make as much use of our LOD system as possible. When you have a lot of units on screen at one time (even more so when you teleport to an area further away & can get even more things in view!) - having lower poly versions of enemies, structures & cosmobots is essential for good performance! This allowed us to reduce the general vertex count of the scene. And for VR, which objects are rendered multiple times (once per eye, and another for shadow map), a lot of care must be made to ensure low vert count without sacrificing visual fidelity!
The main thing that ties all the art together for Cosmic Trip is our use of colour. We want the environment, player items & enemies to all have their own distinguishable look - but gel together under a distinct colour palette.
The general rule of thumb we’re using is two distinct but visually pleasing colour palettes to distinguish between friendly and non-friendly entities in the world. i.e off-white & orange for player items, purple & green for enemies etc.
Uniting all the colour groups together is the Skybox, which is used as a reflection map for many of the items & objects in the game. The textures for skyboxes in VR pose their own problems. Full stereoscopic 3D allows players to peer through the illusion that the sky goes as far as the eye can see, but rather is just a texture in the distance - mapped to the inside of a sphere. Experimentation with layers, clouds & other subtle parallaxing objects may help to bring the illusion back however. This is still a work in progress for us as we continue to make new skybox textures & environments.
As for the final rendering pass - we've used the Amplify Color plugin available on the Unity Asset Store, which allowed all the colors to tie together into a more cohesive aesthetic. Thankfully we haven't noticed any severe perfomance hits using this particular image effect, which is great becuase it allows you to take a final screenshot & bring it to just the right tone, contrast & hue for everything in the scene all at once.
In terms of lighting, we’re being very conservative with how many lights we use - & how many of those can cast shadows. Similar to mobile development, we’re trying to keep a single directional light as our only shadow caster, but with the amount of draw distance we have, this means having to put a tight limit on our shadow distance to keep render passes as low as we can.
Cosmic Trip is an early access title, & our goal was for early adopters to get a feel for how the game is going to look & play when it’s finished. This meant focusing our efforts on a small portion of the game, but applying as much visual polish to it as you’d expect to find in a finished product. So whilst there is always room for improvements, those finishing touches can make all the difference. For environments that might mean atmospheric particles - wind wisps, blowing sand, shimmering stars etc. For interactive items that means lots of bounce, flair & some specially made custom shaders in our case.
Anything you can add to make the environment & interactable items feel more alive will make for a more compelling and atmospheric experience in the long run.
VR is an exciting new medium for the games industry & one I truely believe will continue long into the future. Keeping your art style in line with the hardware limitations in it's current '1st generation' state doesn’t mean your aesthetic needs to fall into the flat/cartoon look that many other early access titles are unfortunately opting for. A mixer of good art-direction, technical artistry, and clever optimizations will allow your game to really stand out while being performant. And if you’re vigilant and are thoughtful of when and where to apply detail to your visuals - you can have the freedom to create & play with which ever art style you so wish to pursue.
But maybe try to stay away from photorealism until the next generation of VR hits the shelves! :)
Cosmic Trip is available in early access on STEAM.
Follow the rest of our development @funktroniclabs / blog.funktroniclabs
Any further questions about the art? Hit me up @pezmn on Twitter!