Assembling IKEA Furniture - An Interactive VR Experience for Oculus Quest 2
In my pursuit of developing cutting-edge Interactive VR Experiences for Oculus Quest 2 headset, I asked myself the question; how hard would it be to simulate the experience of assembling a piece of simple IKEA furniture in VR?
And so the concept for BROR Experience was born.....
This interactive VR experience I am currently developing, is intended as a prototype project to explore what kind of challenges I might encounter while building a fairly simple piece of DIY self-assembly furniture. I am predominantly interested in the mechanics of the scripting code and the interactive framework, with the aim to produce an easy to follow, step-by-step virtual reality assembly guide.
I very purposely choose a simple piece of furniture (the BROR trolley) to model, as I wanted to focus my efforts on the interactive elements and VR mechanics. It is safe to say, that even a simple assembly like the BROR trolley, has presented many technical challenges to overcome which has helped me to understand the scripting process and the exciting possibilities of using VR for this type of application.
My application of choice for the real-time 3D rendering is Unreal Engine 4, and I am developing this application to run smoothly on the Oculus Quest 2.
Where to start?
Making 3D models for real-time use is quite a different challenge and discipline compared to producing highly detailed models for high-resolution 'offline' rendering, using plugins such as V-Ray. The number of polygons which can be used is the first major difference. Real-time models require a much lower number of polygons, whereas with 'offline' rendering the sky is nearly the limit. The other key difference is the approach to recreating realistic looking materials. With real-time media, much of the 3D model's details need to be incorporated into the texture, using specialised normal maps and texture baking, whereas in high-res visualisation work, there is much more individual control over a material's texture and appearance, such as reflectance, glossiness, refraction, to name but a few.
So I started by producing a 3D model of the BROR trolley using the dimensions and reference photos from the IKEA website. I modelled every component of the trolley, including nuts, washers and bolts, and in doing so kept a keen eye on the number of polygons being used.
Elements such as the screw threads on the bolts, were first 3D modelled in high polygon detail and then texture baked (see below) and normal mapped onto a low poly simplified bolt mesh.
The next step was to import all the models into UE4 (Unreal Editor) and figure out how to make them fit together in a sequence. That's when things start to get tricky!