MICROSOFT HOLOGRAMS

  • Contract Duration: August 2017 - February 2019

  • Tools: Proprietary systems, Autodesk Maya, Adobe Photoshop, Unity3D

  • Languages: C#

  • Desc.: At Microsoft's Mixed Reality Capture Studios, I was a contract Processing Technician and 3D Generalist on holograms (moving photogrammetry) for internal and external clients.


I performed the following:

  • Generated point clouds, UV maps, and textures from RGB and infrared photos using proprietary systems

  • Detailed and adjusted meshes using scripts and/or hand-fixes on subdivided meshes

  • Enhanced textures via feedback from our in-house art director using automated Photoshop actions

  • Tested mesh quality using lighting tests

Demo Reel


Please Note:

I can only show published footage in this reel due to Microsoft's policy. Any wireframes, in-progress shots, etc. displayed have been shown publicly by Microsoft and/or their clients.

Hologram Creation Process


Please Note: This was written with my NDA in mind.

  • I cannot talk about the algorithms or anything else related to the design of the systems discussed here

  • I cannot show in-progress shots of any of my demo reel content that have not already been published publicly

  • I did not work as an engineer on this team; I worked as a 3D generalist

All work showcased in my demo reel was produced through a combination of Microsoft's proprietary photo-to-model generation software and post-processing edits through Autodesk Maya and Adobe Photoshop.

I split my time per project into thirds:

  • Test Renders: working live on set to produce test renders and assist in advising the client

  • Mesh Generation: generating meshes from photos taken on the greenscreen stage and testing mesh quality against lighting standards

  • Test Renders: additional editing work based on feedback from my art director and the client

Test renders were offered to clients to ensure a mixed reality capture was suitable for their project. A representative would visit us at our green screen stage with examples of their subject matter. My art director, the stage crew, and I would process small groups of frames as proof of concept for the client.

My role during this phase was providing solutions and advice on the spot. Because I had accumulated experience across different projects, I was able to quickly determine key pain points in capturing different subject matter. This allowed my art director and our clients to save time through accurate project decisions.

Mesh Generation

Mesh generation was produced through Microsoft's proprietary greenscreen stage software utilizing photos taken from 106 RGB and infrared cameras each. I would receive these photos from our stage team and process them through another proprietary application. This allowed me to break up mesh generation into different stages:

  • Point clouds: representations of a 3D objects plotted in the XYZ coordinate system

  • Retropology: reconstruction of high-poly meshes into simplified versions that retain their original shape

  • UV mapping & texturing: placing 2D texture images on the 3D model at specific coordinates

I manually controlled each individual stage through an interface, allowing me to continuously test iterative edits on small groups of frames. This was especially useful in discovering solutions for edge cases, such as thin objects like high-heeled shoes and complicated patterns on a dancer's clothing.

Test Renders

Post Processing

Once the general output was approved, I worked on polishing the look of the capture. This was comprised of two main actions:

  • Cleaning up meshes: Using a combination of PyMel and hand-fixes, I adjusted vertices and faces that disrupted the subject matter's silhouette at specific frames.

  • Improving textures: My art director would color balance a sample texture from the capture using Photoshop and pass me the values he wanted. I took his settings and applied them across thousands of frames using Adobe’s automation features. I also learned how to create my own Powershell scripts to batch rename these frames as necessary.

At this point, I would continue to iterate, or the project was considered completed upon approval from the client.

Previous
Previous

Hablo Gato

Next
Next

Guiding Light