by MPC R&D

6 June 2019

Meet Rebecca, MPC R&D Intern

Rebecca Cedermalm studying Master of Science in Media Technology and Enginerring, from Linkoping University, has spent the last 4 months on internship for her Masters’ Thesis at MPC R&D in London, here she talks about the time spend with us and what she has learned.

 

It was a rainy day in November in Sweden last year when I found out that I would be conducting my master thesis project with MPC Film in London. The fact that it was raining did not bother me at all because I was walking on clouds. Getting the opportunity to do my final project at university with a leading global VFX company was a dream come true. Even now after being here for almost four months I still can’t believe it.  

During my time here at MPC I have been a part of the virtual production team working on making it possible to have furry creatures in real-time. It’s not been an easy task, especially because of the quality expected of characters in films.

Most real-time “fur” tends to be textured polygon strips representing a patch of hair. For VFX individual strands are modeled as curves. Considering real-time fur is a very broad topic and the short time frame of internship, we decided to focus on short fur deforming and responding to the underlying subdivided body surface.

The project was divided into three smaller goals. First I needed a creature and get the hair data from Furtility, MPC’s in-house software for hair, fur and grooming, and display it.

Next goal was to have it deform with a subdivided surface beneath it, otherwise the creature would just leave its fur behind when walking which I would say isn’t ideal. The last step was to add dynamics and handle hair-to-hair interactions to reduce the artifacts of hair colliding into each other when for example bending an arm or leg.  

I have learned a lot the last couple of months.

Methods such as extended position based dynamics, voxel fields and creating triangles in vertex shaders, are just some of the things that I had never tried or even heard about before coming to MPC. Working with the GPU in the way I have been has also been a new, but challenging and exciting experience. It needs a whole different mindset in dividing the problems in smaller chunks that can be solved in parallel on the GPU.

Before MPC I had only created a very simple compute shader, now almost all the code I have written has been compute shaders. Otherwise it would not have been possible to have millions of hairs running in real-time.

Another thing that I needed to consider, was taking a different mindset to what I had been used to and that was thinking of your implementation as a part of a whole system and keeping it as generic as possible to include more cases.

As a student, I think we all can admit that some hard coding is done for projects at university in order to get the code to work and to finish on time. Here I really needed to think about compatibility with other components and making sure to expose the relevant parameters to the user so they would be able to change the appearance of the fur or the way it should move. Hard coding any values is not really an option when it comes to fur, since you can’t really expect all creatures to have fur that looks and reacts the same way, just compare different breeds of dogs.  

One thing I have found to be really amazing at MPC is that all the people I have been in contact with have, always been happy to help out and lend their knowledge at any time. Even though my questions may have been stupid, I have never been made to feel stupid for asking them. This has really made me grow and learn even more.

Working with fur has really been a lot of fun. You might not have thought about it before, I certainly had not, but hair is pretty amazing. The way the light travels through it and how it reacts to forces around it. It is a lot stiffer than what you may think. My colleagues have probably thought I was crazy when I kept on staring at my own hair and pushing it around to see how it would react. It is soon time for me to leave MPC and go back to university to finish up the last things before I graduate.

I have had an awesome time here at MPC and would really encourage everyone who thinks the VFX business sounds interesting to give it a go.