We’ve talked to Janos Wokrina about his fantastic VR environment that mixes archviz and dream elements.
My name is Janos Wokrina and I live in Krefeld, Germany. I am a Co-Founder of Weltenweber (an agency for VR- and 3D content, founded in May 2017), where I work as an 3D- and technical artist. The field I am specialised in is working with UE4, mainly materials, blueprints and lighting, but I do a bit of modeling as well. Before that I studied game design and I worked in a company on a gaming app.
About the project
The WeltenLoft was planned as a showcase as well as a “playground” in which we could test and develop workflows for VR environments. It was an experiment for us to see what mechanics and workflows would work for us. Previously we produced a showcase for a customer in which we developed an architectural scene with customizable floors, walls, different light set ups for the matching time of the day, etc. Due to the fact that we were not allowed to show this custom scene publicly, we decided to create a showcase with its functionality but in a more exciting setting and with additional features, so that we had something to show potential customers and to present our skills. When designing scenes for VR it is important that the focus is always on the performance, because the slightest lagging can cause nausea and makes it really uncomfortable for the user.
Pay attention to draw calls, texture size and number as well as to the whole layout of the scene. We created the loft very open, with a lot of different objects. This almost became a problem because in some view angles too many objects have to be rendered at the same time. When designing customizable parts it is important to keep in mind that most of the time you will have baked lighting which works only with static objects. If you want to move large objects in the scene in real-time this can look weird, because the lighting and shadows do not adapt accordingly. If you plan such a scene, a moveable light is preferable but with the cost that the light is not as defined as baked light. In our scene we limited the customizability to moving some small objects and changing materials, which has no big effect on the lighting.
Adapting modeling workflow for VR environments
We began planning the loft and which objects we wanted to show in it, but we were not very strict in this process. We decided we wanted a kitchen and one person of our team started modeling some kitchen assets, another created stuff for the bathroom, and so on. Because we have a similar style and had the same vision it came together very naturally. For the modeling itself we use Blender which is a great tool for efficient and fast modeling (also it’s free). We did most of the models from scratch, but also used free models and adjusted them for our purpose. As game designers, we all have learned to model with performance in mind, which is very important for VR. Nevertheless you have to notice that normalmaps can look flat in VR due to the stereoscopic view. So it`s better to model structures that normally would have been done by a normalmap. Very extensive models will produce large lightmaps inside the engine which should be avoided, because they use a lot of memory. A separation into some smaller parts can be more beneficial. We also used level of detail. Unreal has a great auto-LOD function which works really good for most models. It`s a super fast and easy workflow.
Working with materials and Substance Source textures
We used a lot of Substance Source materials. As a small team we have not the time to create all materials on our own and with Substance source we have a great library. Many of the materials are tweakable and customizable in their appearance. The disadvantage is that Substance outputs a lot of textures for each material. To improve the performance we created a simple blueprint to bake most of the maps into one RGBA texture, which saves three textures per material. It`s an efficient way because you can adjust the Substance material as you wish and then do the channel-packing all inside the engine which saves a lot of time.
We use the “draw material to render target” function to easy channel pack the texture maps inside of Unreal.
Integrating surreal elements
The WeltenLoft contains the possibility to switch between several light settings as well as two more fantastic, “out of this world”-scenarios (under water and in space). We wanted to hide little easter eggs in the scene which are not visible at first glance.
To enter the space scene for example you have to click the jupiter on the solar system lamp which hangs in the living room. Our goal was to add a few “game-y” elements with these hidden scenarios. We started to achieve a way to change lighting scenarios with baked light, which can’t be tweaked on the fly. So we decided to create a separate map for each light set and use them as streaming levels. We have a master level, which contains the UIs, the movable objects and an invisible geometry for the navigation mesh, which is needed for the teleportation feature in the Unreal VR-template. The light sets and additional scenarios are arranged as sublevels and are streamed in when needed.
We stream the different lighting scenes into a masterlevel containing the functionality
Unreal has a super easy way to integrate 3D UIs into the scene and to interact with them. It’s simply add a “widget Interaction Component” to the motion controller blueprint and create a blueprint with a “widget component” and you have a 3D UI. The design is based on the hexagon of our logo.
Lighting the scene
For VR in most cases static lighting is the way of choice. Unreal creates lightmaps on the fly while importing static meshes but you have to check and eventually adjust the lightmap resolution for good results. There is nothing wrong with faking indirect lighting with additional lights which we used a lot in this project. We made use of several forms of contrasts (temperature, color) to support the readability and structure of the environment. The lighting should support the feelings we want to transport and set the focus to important parts of the scene. For example in the ”jupiter scene” we used an unnatural sunlight coming from below throwing shadows to the ceiling to support this “out of this world”-feeling. Even if it’s not physically correct it has a strong impact on how the scene affects the viewer.
Use the lightmap density viewmode to adjust the lightmap resolution
How VR technology can help to present environments in better, unusual way?
The best thing about VR is that it feels so real. This enables us to transport the user to the most fantastic places and to tell stories that are emotionally moving because when you put on the VR headset you are IN this world, you are a part of it. When you present spaces in VR to people they can easily understand their position in this space, the dimensions, the lighting and mood. This conveys much more information than a 3D rendering for example. This helps to make the user “believe” whatever scenario you created. A house under water with a whale swimming by? No one we showed this scene to said “oh, that’s not realistic”, instead they were like “That whale is impressive when it swims over my head!”. The technology of VR and letting the user be part of the virtual world gives us a lot of room to play with creative scenarios in which the user feels like they belong there.