The week started with the arrival of our latest team member Kyung-Min Chung, a 3D generalist with a talent for photorealist sculpting and modelling. Given the amount of work we are undertaking and the new projects on the horizon he’s a welcome addition. Here’s a look at our busy week.
Toby – I’m in Charge Here
Another week travelling the length and breadth of our railways. Leeds, in particular, was fun. We’re user-testing a workplace Health, Safety and Wellbeing Proof of Concept.
It is difficult to articulate the experience of immersive technology to someone that has not used it or, perhaps has only experienced it on a smartphone. And to look at a VR experience on a laptop screen or monitor simply can’t do it justice.
Immersive Technology is more than the sum of the individual parts, more than just the visuals; as soon as you wear the headset, experience the sound as well as the immersive graphics, you understand the power of the technology.
This was the case for our new users in Leeds and we’ll be incorporating their feedback into the final iterations of the solution accordingly.
We’re also gearing up for various proposals and preparing for the opening of our new Innovation Centre, but more on that soon.
Josh – Programme Manager
I spent time this week writing several hundred lines of dialogue for use in our dialogue trees, which were then sent to one of our voiceover artists. They’re a pain to create, but the process is a nice mix of creativity and logic. Importantly, the client likes the end result.
This week also witnessed the completion of our Eye-tracking analysis. Stefano’s design of the health and safety information, delivered a 178% improvement (Mean Fixation Duration, Sec) on the ‘tried and tested’ aeroplane cards that are synonymous with (obvs) airlines, government institutions including Hospitals etc., and conventional office buildings.
These cards are everywhere and they’re not great. Our design isn’t radical, just a common sense approach with just the right amount of tech.
We took delivery of our Xsens Motion Capture Suit and I left it on Stefano’s desk as a present – he was very excited by its arrival, recognising this will take our animations to a completely different level.
Cat – Lead Programmer
This week I finished the proof of concept for our ‘Eyes and Ears’ motorway hazard-spotting simulation. Along the way I’ve learned a lot more about writing shaders in Unity, and in particular the benefits of splitting up a task between the CPU (central processor) and GPU (graphics card).
There are lots of technical aspects to this strategy, but the main facet to keep in mind is that programmes running on the CPU can retain information for the duration of a programme’s runtime.
However, the GPU programmes we’re using to perform rendering tasks (shaders) must execute completely from start to finish within a single frame, which on a standard 90Hz VR headset is about 11ms!
In our particular case, the data in CPU (long-lived) memory is information about the positioning and curvature of the road. The segment positions are calculated in sequence, meaning that each segment is placed dependent on the one before it.
Because of the nature of this data, it makes sense to generate it once at the start of the programme and then keep it around, as it won’t change while the simulation is running. If it did, the road would change shape.
Every frame, the road moves backwards slightly (to give the illusion of the user moving forwards) and the CPU re-calculates the position of every section of road, based on the stored curve data and passes them to the GPU to start rendering the road.
GPU memory is a trickier beast because in most cases, ours included, it’s not possible to get anything out of the GPU back into CPU memory. Here resides the ephemeral data required to accurately position every vertex of every segment of the road.
Some of this data is shared by all road segments, but other parts are ‘instanced’ – different values are given to the shader for each segment.
If this wasn’t possible we wouldn’t be able to vary the curvature for segments, and we couldn’t arbitrarily stack segments together in-sequence. By running the shader programme with different values for curve direction and starting position, every road segment can be generated.
It’s been an adventure learning about how to leverage GPU-instancing as well as shaders in general in Unity, and I’m looking forward to utilising them more to develop more interesting features and solutions while simultaneously relieving projects of complexity in other areas.
Sergio – Programmer
This week, I have been repurposing our User Interface (UI) to display the results of our future user’s decisions in the training solution – the final stage in working with UI for this Highways England Traffic Officer training solution.
The connection between the backend (main logic of the solution) and front end (User Interface and User Experience), typically designated in software development was implemented. We learned a lot from our research and prototyping, and we can use this knowledge for further development and future solutions.
My next steps will be developing a custom road traffic system that will suite one of our current on-going projects and implementing character animations created by our talented 3D artists — more on that in the next blog.
Slava – Lead 3D Artist
My week mostly consisted of working on the environment for the main scene in the current project, which included the creation of new skybox, new lighting and tweaking of different materials.
I made the custom skybox by combining realistic cloudy sky with new horizon, which is more suitable for our environment and when finished, I changed the ambient lighting accordingly.
It included adjustment of brightness, colour and direction of the sun, which resulted in a soft atmospheric lighting without extreme contrast.
My week ended with the creation of some highway hazards, which included blocked drainage, poor demarcation and obscured signs.
Stefano – 3D Artist
This week I modelled many of the elements required to complete the interior of the Traffic Officer’s vehicle, working to extreme levels of detail to increase realism.
Electronic components such as the radio module and its microphone, along with panels full of buttons and some other hardware components such as the additional rear view mirror for the passenger and the two emergency hammers, all add to the sense of realism.
Then I added some stickers and made some small changes to the existing interior, slightly changing the mesh where the shading seemed too unnatural. As always, I worked with particular attention to materials, trying to vary the different surfaces as much as possible, giving a better sense of realism.
Kyung-Min – 3D generalist
This was my first week at MXTreality and although I’m very experienced in the world of immersive technology, I spent a lot of my time familiarising myself with the current projects and seeing where my particular skills would add most value.
I also found the kettle and settled into my new surroundings in what is a surprisingly small, but intensely busy studio in leafy Chiswick. More of my work next week.