Lighting for VR
Image has always influenced the way I create. I see the world in colour, but constantly enclosed within well-defined perceptive and technical parameters. These parameters range...
Image has always influenced the way I create. I see the world in colour, but constantly enclosed within well-defined perceptive and technical parameters. These parameters range...
I would like to start this article by sharing with you a particularly illustrative video. The scene is taken from the film ‘The Artist’, directed by Michel...
Matte painting (literally: ‘background painting’) is a technique widely used in the world of cinema, which makes it possible to create, probably without great...
Once I received the 3D assets created by Yuri and the concepts carried out by Thomas, I set to work on the interior texturing. Although I had a fairly precise idea of how to...
We can consider the character rig as the link that connects the modeling phase with the animation phase. The rig, in fact, is the construction of a specific “skeleton”...
When modeling the internal environment of Vajont, I had to keep in mind three fundamental requests: The size of the room and the resulting arrangement of the interactive objects:...
As we have already seen here, texturing allows us to tell part of the story without disturbing the screenwriters. By using small visual clues, it is possible to communicate...
Most of the production phases in a 3D project involve a moment of research and reference studying. Character artists look for images that they will use to identify the proportions...
How much history can a detail reveal? I think my work as a texture artist can be summed up in this one question. Texturing is not just the application of color to a 3-D model, it...
How important are hairstyles in defining the ages of characters, their ages and their cultures? There is only one answer to this question: a lot. Probably, if we had not decided...
Image has always influenced the way I create. I see the world in colour, but constantly enclosed within well-defined perceptive and technical parameters. These parameters range from the most generic and evocative words, such as sensations and moods, to the most specialized ones, such as hue, colour temperature and lighting scheme. It is a sort of professional deformation. As a visual artist, I have always drawn heavily from photographic technique, and I have also studied as a director of photography.
I have spent years researching, drawing up and introjecting a personal, rigid visual code made of well-defined images, and persisting on a tireless search for the right light.
So, since the early stages of writing the screenplay of Vajont, I have felt an urgent need to give this project – so distant from my previous works – something that was really mine: attention to the visual mood and a lighting of the rooms that was consistent with the story. In simple words: a good direction of photography.
So I decided to take care of the lighting myself, having clear in mind the final result I would like to achieve. Definitely a great challenge for me, who had never found myself working on real-time project lighting before.
As some of you know, it’s not always easy to get a realistic result when it comes to lighting for VR. The technical limits imposed by this technology are many when it comes to photorealism. Dynamic lights – which we will talk about shortly – absorb a lot of computing power, risking to affect the performance. Not a good premise, when you need to maintain a high number of frames-per-second to avoid sickness phenomena. For those who want to deepen this topic, you can find some information in the articles dedicated to rigging for VR and hair creation for VR, always on this blog.
So, in finding the right way to illuminate this project, I chose to take a step back. I think the fundamental shift took place when I asked myself the question: what makes lighting realistic?
The most instinctive answer – at least for a cinematographer – certainly concerns the number of light bounces, the quality and definition of shadows and reflections. All these parameters can certainly be implemented and modified in rendering engines, both in terms of physical light settings (although obtaining realistic shadows in Unity is really a challenge…), and in terms of materials assigned to objects – in technical jargon, “shaders“.
Did the answer satisfy me? I would say no. I felt something was missing. Slowly, a new idea emerged: much more banal in its principles, and at the same time very complex to realize in VR.
What is more real, I asked myself, than a setting sun on the horizon and the consequent need to turn on the light?
The idea of integrating a change of lighting – from natural to artificial light – has definitely contributed to broaden my initial concept of realism.
I decided to implement in the experience three different moods – and, consequently, three different lighting set – so that they would support the different moments of the narrative.
Being inside a VR environment – especially for newbies – can be a very disorienting experience. So I used a warm, welcoming and natural light to accompany the participant to a “safe place,” and to support these positive feelings until a complete settlement.
I managed the transition from the welcome to a serious atmosphere – the one of the experience – by bringing in the darkness, and thus inviting the participant to turn on the light.
I asked Thomas – the concept artist – to make some color proofs, to help me better visualize the different moods: orange-tone natural light, darkness and artificial light.
I think it is fundamental to underline the fact that there are great affinities between the lighting of long-take shots in cinema and the lighting for videogame/VR. Since Virtual Reality experiences don’t have any editing cuts, it is necessary to think about the lighting in order to keep a clear reading both in highlights and in shadows.
Not only that: a good lighting is able to guide the participant within the usability flow of the experience, highlighting particular areas of interest and showing particular actions.
Before we go into the details of how I did the lighting in Vajont, I’d like to note down some technical concepts. These will facilitate the reading and understanding of the article even for those of us with a less specialized background.
Paraphrasing Wikipedia, a render-pipeline is a model that describes the steps to be performed to render an image in two dimensions (i.e., on a screen), starting from three-dimensional objects present on the scene. Each render-pipeline has its own algorithms for light management and different shaders.
Vajont has been developed using Unity’s Universal Render Pipeline, for its versatility in adapting to as many devices as possible, as well as a respectable graphic rendering.
As many of you know, lights in a real-time render engine are divided into two main categories: baked lights (static lights) and dynamic lights. Actually, there would be mixed lights, too, but for their characteristics I refer you to the dedicated Unity page.
Baked lights are pre-rendered lights, and act on the static elements of the room – such as the walls of the room, interactive objects, etc. – without affecting the performance. The lights are generated and “fixed” – through a bake – on special maps, called “lightmaps.” When you play the experience, the lightmaps are superimposed on the textures, with a blending mode that allows them to simulate a real lighting.
A type of lights rendered in real time, acting on moving or interactive elements. Since the light will always bounce off them in different ways, it is necessary that their effect is recalculated in real time. For this reason, dynamic lights have a lot of weight in memory, so you have to limit their use (especially in real time).
These are effects that are applied to the virtual camera buffer – which, in the case of the VR, coincides with the position of the participant’s eyes – before the image appears on the screen. Inspired by the post-production processes coming from the world of cinema, they allow to easily manage color grading and color correction. Each render pipeline has its own post-process.
I started my workflow from general ambient lighting – i.e., bake lights. I made many attempts with the integrated lighting system in Unity, but none of them left me fully satisfied: light-leaking (i.e., light infiltration through closed corners), unrealistic shadows, little definition…
Until I discovered Bakery.
As you can guess from the name, Bakery is a plug-in specially designed for light baking. Its ease of use, combined with the quality of its bake, makes it a really indispensable tool for me. It has different types of lights – similar to other related software – each with its own characteristics and peculiarities.
As far as the daylighting is concerned, I have only used area lights.
Coming from the world of cinema, I found there to be a great affinity between the area lights and the Kino Flo – fluorescent lamps that cast soft and realistic shadows. This has a very natural effect, which I was interested in recreating.
Below, a detail of the room, as realized with Bakery.
I added some dynamic lights, so as to interact with non-static elements (like, for example, the characters).
For the night lighting, I was instead looking for a more serious mood. I wanted the perception of instability and danger to be something whispered within a more or less ordinary environment. So I decided to recreate a low power bulb, not enough to give full visibility to the room.
I recreated the effect using a point light – a sort of “point” that radiates light in all directions – to which I applied an IES light. This is a special mask able to shape light intensity, tracing physical data actually collected from light sources.
The sunset-night transition was managed through the animation of a post-process.
As for the transition between natural light and artificial light – which also needed a replacement between the two different lightmaps – Marco, our Unity Developer and Technical Designer, has created a special script in Unity, so as to allow the change in a click.