3D Content Guidelines for Microsoft

Jeremy Kersey, Fiona Mok

Version 1.3 2019 00 Introduction 03 Content Creation 04 Additional Resources 3D Content Guidelines for Office Creating Custom 3D Assets for Office Tools Guide overview Content creation overview Preview tools Polygon modelling Validation tool Surfacing Appendix 01 3D Engine Overview Animation Useful links Rendering Overview Export Workflows What is rendering? Export overview Offline rendering GLB Real-time rendering FBX OBJ Office 3D Engine PLY Real-time rendering in Office STL Performance targets 3MF Office 3D feature support Conversion Workflows CAD 02 Sourcing Assets Intermediate file formats Optimizing Acquiring 3D Assets for Office File size and memory consumption Acquiring 3D assets overview Performance Online marketplace search terms Selecting content Visual Artifacts Common visual artifacts Vendors Introduction 3D Content Guidelines for Office Introduction

Guide overview

Whether you are a Microsoft Office 365 user looking to acquire 3D assets for your documents or a 3D professional creating content for your clients, this guide is designed to help you be more successful with 3D in Office.

The guide is split into four major parts:

01 3D Engine Overview 02 Sourcing Assets 03 Content Creation 04 Additional Resources

If 3D in Office 365 is new to you, be sure to check out this quick start guide and video. These templates are also a great way to explore using 3D in PowerPoint and Word. Introduction

Guide overview

Each of the four major parts of the guide can be read in sequence or independently in any order you choose.

01 3D Engine Overview 02 Sourcing Assets 03 Content Creation 04 Additional Resources

Learn about the inner workings of the Tips and tricks for finding quality 3D Step through the process of creating Discover tools for viewing, analyzing real-time 3D engine used in Office content in online marketplaces and content for real-time rendering in and validating your 3D content as and how it compares to other working with vendors to build your Office. From modelling, surfacing and well as links to other valuable methods of rendering 3D content. custom assets. animation through to optimizing and resources. exporting your assets.

Recommended reading for: Recommended reading for: Recommended reading for: Recommended reading for: Everyone Office users looking to acquire 3D assets 3D Professionals 3D Professionals Office users reviewing 3D content 3D Engine Overview Rendering Overview 3D Engine Overview

What is rendering?

To create the computer-generated images used in today’s films, video games and applications, 3D models are created with complex materials and textures and then lit and animated in virtual simulations of real-world physical properties.

Rendering is the process of calculating the results of these simulations and turning it into the final image on screen.

Depending on the intended usage of the resulting images, different types of renderers can be used to achieve varying levels of quality and accuracy versus the time it takes to render.

Recursive Ray Tracing of a sphere, which incorporates the effects of diffuse interreflection, limited depth-of-field and area light Learn more about the process of computer graphics rendering on sources. Generated using a custom Java renderer. Wikipedia. Tim Babb, 2018. Wikipedia license. 3D Engine Overview

Offline rendering

Offline rendering makes use of a technique called Ray Tracing to achieve the photorealism and ultra high precision seen in today’s films and product visualizations.

Ray Tracing aims to replicate the way light interacts with objects and reflects to your eyes in the real world. This simulation of physical properties is what creates realistic surfaces, lighting phenomenon, accurate reflections and shadows.

This level of quality comes at a high computational cost and is usually carried out on large server farms and can take several minutes or even hours to produce a single high-resolution image of complex scenes.

Ray Tracing is commonly used in offline rendering, where as most of today’s real-time renderers rely explicitly on Rasterization. For Illustration of the Ray Tracing algorithm for rendering an image. more information on the differences see Nvidia’s article here. Henrik, 2018. Wikipedia license. 3D Engine Overview

Real-time rendering

The power of real-time rendering really shines in interactive experiences where the action on screen in not predetermined.

Rasterization is a real-time rendering technique used in today’s video games and simulators. Rasterization is hardware accelerated by the Graphics Processing Unit or “GPU” in your computer to achieve a constant frame rate with smooth interactions and fluid animations.

Rendering complex scenes at this pace on today’s hardware requires some tradeoffs in physical accuracy compared to an offline renderer where speed is less of a constraint.

Visit Scratchapixel for an in-depth breakdown of a Rasterization Principle of the geometrical perspective projection. implementation. Joachim Baecker, 2005. Wikipedia license Office 3D Engine 3D Engine Overview

Real-time rendering in Office Supported 3D File Formats File Extension Meshes Materials UVs Textures Vertex Colors Animation

Office is using a real-time Rasterization renderer to create the GLB Yes Yes Yes Yes Yes Yes resulting images you see when you insert a 3D model. FBX Yes Yes Yes Yes Yes Yes glTF or “GL Transmission Format” is the open source 3D file OBJ Yes Yes Yes Yes No No format used by Office to store and render all 3D models. PLY Yes No No No Yes No Many different 3D file formats can be imported and are automatically converted to glTF before rendering in Office, STL Yes No No No No No because of this it is important to understand the feature set of 3MF Yes Yes Yes Yes Yes No the glTF specification. Each supported 3D file format has its own limitations that need to be considered when authoring content. Click the links in the table above to jump to the export guide for each format in the Content Creation section.

GLB is the binary version of glTF which allows you to store complex 3D assets in a single file for maximum portability.

GLB is recommend when exporting to the glTF format for Office. 3D Engine Overview

Performance targets

The hardware and the resolution of the screen used to view or present your 3D documents will have a direct impact on what fidelity of models you will be able to display while remaining performant.

This table defines some conservative targets to aim for when acquiring or authoring 3D content for a range of hardware. When in doubt, target models to the Mid-Range profile for a balance of fidelity and performance.

Low End Mid-Range High End Processor and Graphics i3 i5, Integrated Graphics i7/i9, Discrete GPU Triangle Count Maximum 25k 40k 60k Texture Count Maximum 5 9 12 Texture Resolution Maximum 512x512 2048x2048 4096x4096 Texture Resolution Average 256x256 1024x1024 2048x2048 3D file sizes should be kept below 50mb whenever possible. Draw Calls Maximum 4 6 8

Large 3D file sizes will directly affect the size of your documents Joint Count Maximum 40 100 180 and make them less portable. Share large documents easily using a Joint Count Mapped to Vertices Maximum 20 50 100 cloud service such as OneDrive or SharePoint. Multiple Texture Passes per Material Not Recommended Yes Yes 3D Engine Overview

Office 3D feature support 3D Feature Office on *Windows PC Office on **Mac 3D Model Support Mesh Primitives with Physically Based Rendering (PBR) Office 2019 Office 2019 Depending on the version of Office you are working Metallic Roughness material workflow Office 365 Subscription Office 365 Subscription with, there will be differences in the available 3D Points and Lines Primitives - - features. Animated 3D Model Support Skinned skeletal animation Office 365 Subscription - Office 365 receives regular updates and will provide Node transform animation - - access to the latest features as they become available. Morph Target animation - - glTF Extension Support 3D features are supported on: Office 2019 Office 2019 KHR_materials_pbrSpecularGlossiness • Office for Mac Office 365 Subscription Office 365 Subscription • Office for Windows Office 2019 Office 2019 KHR_materials_unlit • Office Mobile for Windows 10 Office 365 Subscription Office 365 Subscription *Supported Windows PC Versions: Win7 (with latest updates), Win8 and Win10 **Mac 2012 or greater with OS X Sierra or greater

Documents authored with 3D content will still be viewable by users on the web clients or previous versions of Office. However, 3D models will be displayed as images with no embedded animation or interaction capabilities. Sourcing Assets Acquiring 3D Assets for Office Sourcing Assets

Acquiring 3D assets overview

There are a couple of options to consider when acquiring 3D content, each has its own advantages depending on your needs.

Online marketplace Vendors

Advantages Advantages • Plenty of pre-made content in many different art styles • Completely custom assets built to your specifications • Assets ready for immediate download • glTF compliant and performant • Attractive pricing • Assets can be owned outright when the proper agreement is in place

Disadvantages Disadvantages • You may not be able to find a suitable asset • Lead time • Assets may require modifications to be glTF compliant and performant • Requires more time investment up front and during development • Licensing terms may prevent the intended usage • High quality vendors can come at a high cost Sourcing Assets

Online marketplace search terms

There are many online marketplaces offering a huge selection of content which means that finding the right 3D asset can be challenging.

Here are some things to keep in mind while searching marketplace content to help narrow down the selection quickly.

Filters Visual Style Animated Content Technical Specifications

• Setup a filter for the supported • Use keywords that describe the • Animated content should be in • Technical keywords can help file types such as .GLB and .FBX art style .GLB or .FBX focus on options that will work • Filter by license type to avoid • Examples: realistic dog, hand • Animation style terms: squash out of the box with Office unusable content painted fire hydrant, cartoon and stretch, exaggerated, realistic, • Examples: glTF compliant, Real- sports car, photorealistic human motion capture, mo-cap time, no plug-ins, polygons, • Content categories. Examples: triangles, clean topology, UVs, animals, dogs, animated • Technical terms: rigged, skinned, takes, clips, looping, walk cycles texture, PBR, Metallic Roughness Sourcing Assets Quality Listings

• Always look for highly rated assets with artists who are active and Selecting content responsive to feedback on their listings. • Many marketplaces display certification badges or tags for assets that After narrowing down the options using filters and search terms have been verified for quality. there are still a few things to consider before making a purchase. • Most marketplaces sell content provided by many different vendors, so don’t be afraid to ask questions or request fixes if the asset received is Licensing not as advertised.

Technical Notes • Pay close attention to the details of the licensing agreement before making a purchase and when using the content. • Each piece of content is subject to its own license terms which may • 3D content creation applications provide many workflows that are not impose limitations on its usage such as redistribution restrictions. supported by glTF and the Office 365 renderer. • Some content may have 3rd party branding. In this case usage • Be aware that these types of assets may have to be heavily modified clearances need to be requested directly from the original rights holder. before they are ready to use in Office. • Examples of unsupported features to avoid: NURBS, subdivision surfaces, parametric solids, procedural materials, subsurface scattering, curvature maps, cavity maps, height maps, displacement, hair and fur Refer to Performance targets in the 3D Engine Overview section to simulations, cloth and muscle simulations ensure that asset fidelity is aligned with hardware requirements. Sourcing Assets

Vendors

There are plenty of readily available vendors that could help build custom 3D assets for your project.

Here are some suggestions to keep in mind when choosing and working with a vendor.

Choosing a vendor Provide to a vendor

• Demonstrates clear communication skills and responsiveness to clients • Detailed delivery schedule for major milestones • Proven track record of successful job completion • Work in progress review terms • Portfolio containing examples of the required art style or asset type • Asset delivery terms: method of delivery, final file format, source files • Experience producing assets for real-time rendering • Reference package: Art targets, color palettes, animation style examples, object • Local time zone of the vendor may impact the scheduling and communication reference images or drawings, dimensions • Technical specifications: Draw call limits, texture resolutions, texture counts, triangle count, joint count, file size targets • Quick turnaround on feedback and answering questions Content Creation Creating Custom 3D Assets for Office Content Creation

Content creation overview

Following the overview of feature support, the Content Creation guidance is split into four major sections.

The guidance may be read in sequence or you can jump to the section that is most relevant to your workflow.

Export Workflows Conversion Workflows Optimizing Visual Artifacts

Example export workflows for each of General guidance on converting Guidance for reducing file size and Tips for identifying and resolving the supported 3D file formats and parametric CAD models and working memory consumption as well as tips common visual rendering artifacts. tips for avoiding common issues. with intermediate 3D file types. for resolving common performance bottlenecks. Autodesk Maya Content Creation

Polygon modelling

Create meshes with real-time rendering in mind and use the performance targets to inform your modelling budgets.

Combine sub-meshes whenever possible to reduce draw calls. Be aware that glTF will split meshes with multiple materials into a sub-mesh per material.

Supported Mesh Features

• Triangles or quads • Vertex normals for hard or soft edges • 2 UV sets • UV tiling • 1 vertex color set

All meshes will be triangulated when exporting to .GLB or during Textured Mesh Vertex colors Blended Result the conversion process that occurs while importing any of the other supported 3D file formats into Office. Content Creation

Surfacing glTF and the Office renderer makes use of Physically Based Rendering or “PBR” with a Metallic Roughness workflow.

A detailed breakdown of the PBR texture and material creation process is covered for a variety of applications in the Khronos Group’s Art Pipeline for glTF.

Supported Textures

• Base Color • Normal • Metallic • Roughness • Ambient Occlusion • Emission

Metallic Roughness is the standard PBR workflow for glTF. Specular Glossiness is also supported via a glTF extension. For an example of Specular Glossiness usage see FBX export workflow. Autodesk Maya Content Creation

Animation

Animations can be embedded in .GLB and .FBX files and show up as “Scenes” in Office. These Scenes can be triggered just like any other animation type found in Office.

See the Export Workflows section for more details on exporting multiple animations to .GLB or .FBX.

Supported Animation Features

• Skinned skeletal joint hierarchies • 4 influences per vertex maximum • Normalized weighting • 30 frames per second with keys on frame recommended • glTF animation interpolation: linear, cubic spline • FBX animation interpolation: linear • Up to 18 animations within one .GLB or .FBX file

Support for node transform animation and morph target animation is coming soon. Check the Office 3D feature support table for updates. Export Workflows Content Creation

Export overview glTF Exporters Content Creation Package Compliance Description

Now that your 3D content is complete, you will need .org Blender glTF 2.0 Native import / export Blender 2.8 or later to export it in a supported 3D file format which can handle all the features the asset requires. glTF 2.0 Babylon.JS plug-in for Max 2015 or later Autodesk Maya glTF 2.0 Babylon.JS plug-in for Maya 2018 or later glTF is the open source 3D file format recommended for Office. If your content creation package doesn’t Trimble SketchUp glTF 2.0 Separate extensions for export and import have a glTF exporter yet, we recommend exporting to Allegorithmic Substance Painter glTF 2.0 Native exporter .FBX for animated and textured assets. SideFX Houdini glTF 2.0 Native import / export

Foundry Modo glTF 2.0 Native exporter

Visit Khronos Group on GitHub for a full list of glTF Import, Export and Conversion tools.

No glTF exporter? Consider requesting one from your software vendor or the glTF community on the Khronos Group’s GitHub. Content Creation

GLB

glTF workflow documentation Exporting directly to GLB from your content creation tools is the best option for more direct control over • The Art Pipeline for glTF from Khronos Group provides an excellent breakdown of the whole glTF how your assets will look in Office. workflow in a variety of applications. • Autodesk Maya | Babylon.JS: • Metallic roughness workflow with Stingray PBS or the Arnold Standard Surface material The Babylon.JS plug-ins for Autodesk Maya and 3DS • Autodesk Maya | Babylon.JS: Max allow you to work directly with the glTF metallic • Multiple animations in a single GLB file roughness workflow; further reducing the conversion • Autodesk 3DS Max | Babylon.JS: that needs to happen during the export process. • Metallic roughness workflow with PBR materials or the Arnold Standard Surface material • Autodesk 3DS Max | Babylon.JS: Create multiple animations on the timeline and use • Multiple animations in a single GLB file the Babylon.JS Animation Groups panel to define frame ranges and export multiple animation clips in a Tools single file. Content Creation Package Compliance Description

Autodesk Maya glTF 2.0 Babylon.JS plug-in for Maya 2018 or later

Read more about the glTF file format here on Wikipedia. Autodesk 3DS Max glTF 2.0 Babylon.JS plug-in for Max 2015 or later

Visit Khronos Group on GitHub for a full list of glTF Import, Export and Conversion tools. Content Creation

FBX

Wide availability and feature support make FBX the next best choice after GLB when exporting content for Embed Media option in the Maya FBX exporter dialogue. Office. Autodesk Maya: Phong Specular Gloss workflow mappings for glTF When authoring FBX files you must use the Specular glTF attribute Phong attribute Texture type Glossiness workflow. This can be achieved in Autodesk Base Color Color RGB + A for optional transparency Maya with a standard Phong material. Specular Specular Color RGB + A for Glossiness Use the Embed Media export option to package textures inside the exported FBX file. If your exporter Glossiness Specular Color A channel of Specular texture does not have an embed option, textures must be in Normal Bump / Normal RGB the same directory as the FBX file on a local drive. Textures must be referenced with relative paths. Emission Incandescence RGB

Ambient Occlusion Ambient Color RGB Importing FBX files into Office will result in a GLB that uses the glTF only supports .PNG and .JPG textures, all other image formats will be converted during the import process. Specular Glossiness glTF extension. FBX files that reference loose textures must be imported from a local drive. Color factors can be used in place of textures for Base Color, Transparency, Specular, Emission and Ambient Occlusion. Content Creation

FBX

Multiple animations can be authored on a single timeline or by arranging clips with the Time Editor in Autodesk Maya.

Frame ranges of multiple animations can be defined in the Animation Clips tab of the Game Exporter.

The Time Editor tab in the Game Exporter is used to select which animations clips will be exported and their desired frame ranges.

Read more about the FBX file format here on Wikipedia. Three animations defined for export in the Animation Clips tab of Maya’s Game Exporter panel. Content Creation

OBJ

When authoring OBJ files you must use the Specular Glossiness workflow. This can be achieved in Autodesk Maya with a standard Phong material. Autodesk Maya: Phong Specular Gloss workflow mappings for glTF Exporting an OBJ will also create an MTL file. The MTL glTF attribute Phong attribute Texture type file can be opened in a text editor to see material Base Color Color RGB + A for optional transparency settings and references to texture files. Specular Specular Color RGB + A for Glossiness The OBJ, MTL and loose texture files must all exist in the same directory on a local drive when importing Glossiness Specular Color A channel of Specular texture OBJ files in Office. Normal Bump / Normal RGB

Emission Incandescence RGB

Ambient Occlusion Ambient Color RGB

glTF only supports .PNG and .JPG textures, all other image formats will be converted during the import process. Read more about the OBJ file format here on Wikipedia. Many OBJ exporters will interpret normal maps as bump maps on export. Content Creation

SideFX Houdini

PLY

PLY files were primarily designed to store mesh data from 3D scanners. Vertex normals can be used to create hard and soft edges. A single vertex color set with alpha is also supported.

Both binary and ASCII versions of PLY are available.

Read more about the PLY file format here on Wikipedia. Content Creation

STL

STL files are commonly used in 3D printing workflows and only describe surface geometry with hard edged faces.

All color, texture and UV information will be stripped on export. STL files contain no scale information and the units are arbitrary.

Most STL exporters provide an option to output files in either binary or ASCII.

Read more about the STL file format here on Wikipedia. Content Creation

3D Builder

3MF

The 3D Manufacturing Format or 3MF, is a 3D printing format designed for interoperability of full fidelity models across platforms, applications and services.

3MF files can be imported into Office with vertex colors, UVs and embedded textures for base color.

Read more about 3MF and the consortium here. Conversion Workflows Content Creation

CAD SideFX Houdini

Modelling tools in most CAD applications use sets of adjustable mathematical parameters to define parametric solids.

Parametric solids are highly accurate volumes that can be used to carry out engineering simulations and manufacturing processes. glTF and the Office renderer require models to be represented as a triangulated polygon surface.

Additional Notes

• Many CAD applications can perform the required tessellation step when exporting to another file format. • CAD assemblies often contain large amounts of individual parts each with their own material assignments. • Refer to the Content Creation guidance on Draw Calls and Hierarchy Complexity to improve the performance of exported CAD files. If your application does not support tessellation on export, there are several 3rd party solutions on the market for converting CAD models to polygon surfaces. Content Creation

Intermediate file formats

Even if your content creation package cannot export Example .DAE to .GLB conversion workflow to any of the supported 3D file formats, you may be • Install the OpenCollada plug-in for Autodesk Maya or 3DS Max able to export your assets to an intermediate file • Install the Babylon.JS exporter for Autodesk Maya or 3DS Max • Launch Autodesk Maya or 3DS Max and enable the OpenCollada and Babylon.JS plug-ins format which can be converted with another tool. • Import the .DAE file • Use the Babylon.JS exporter to generate a .GLB The widely supported COLLADA exchange file format • Alternatively, export as .FBX with embedded media is the precursor to glTF from Khronos Group.

COLLADA’s .DAE files can be imported and exported with a variety of applications. Tools Content Creation Package Compliance Description

Autodesk Maya | 3DS Max glTF 2.0 OpenCollada plug-in

Autodesk Maya glTF 2.0 Babylon.JS plug-in for Maya 2018 or later

.ZAE is the archive version of .DAE. Changing the extension from Autodesk 3DS Max glTF 2.0 Babylon.JS plug-in for Max 2015 or later .ZAE to .ZIP will allow you to unpack the contents. Visit Khronos Group on GitHub for a full list of glTF Import, Export and Conversion tools. Optimizing Content Creation Use 3D Viewer to compare stats and visualize optimization results.

File size and memory consumption

Autodesk Maya Textures Unused Data Triangle Reduction

• Reducing the resolution and the amount of textures will have the • Be sure to remove any data that is not required by your Office • It takes a massive reduction in triangle count to make a meaningful largest impact on memory consumption and file size on disk. document. Extra nodes, meshes, materials and textures can add up change to file size. Use this method when it is the only remaining quickly. option. • Reduce textures based on their visual impact. For example metallic roughness maps can often be half the resolution of base color and • Animations can consume a lot of disk space, especially in assets • If the model usage is known ahead of time, use that to inform normal maps with no discernable reduction of quality. with large skeletal hierarchies. Remove all key frames on channels triangle reduction choices. Focus on less important areas with high that are not changing for the duration of the animation. mesh density while being mindful of the silhouette impact. • JPG compression and PNG quantization will further reduce file size on disk, however it will have no impact on the memory required at • Remove any extraneous animations and trim the range of the • Fine geometric surface details can often be replaced by baking runtime when the asset is loaded. required animations to only the frames you need. them into normal and occlusion maps for large triangle savings. Content Creation Use 3D Viewer to compare stats and visualize optimization results.

Performance

Autodesk Maya

Draw Calls Transparency Textures

• The most common runtime performance bottleneck can usually be • Transparency has significantly more cost to render compared to a • Large textures require a lot of system resources and can be attributed to large amounts of draw calls. fully opaque material. especially taxing on devices without a discrete GPU.

• While there are many reasons an asset may incur more draw calls • Split texture sets into opaque and transparent materials to • Reduce textures based on their visual impact. For example metallic the most likely cause is simply many materials assigned to the minimize the amount of geometry rendered with alpha. roughness maps can often be half the resolution of base color and meshes in the scene. normal maps with no discernable reduction of quality. • If the model only has one texture set, duplicate the material,

• Create texture atlases out of multiple materials and merge the remove the transparency and assign the newly created material to • Consider completely removing textures based on their visual meshes together to consolidate draw calls. all the opaque triangles of the mesh. impact, especially if you are targeting a lower end hardware specification. Content Creation Use 3D Viewer to compare stats and visualize optimization results.

Performance

Autodesk Maya Allegorithmic Substance Painter Autodesk Maya

Hierarchy Complexity Triangle Reduction Joint and Skin Count

• Grouping, parenting and large amounts of nodes such as nulls, • High triangle or vertex counts can hinder performance especially • Skeletal hierarchies with large amounts of joints skinned to vertices locators, meshes and joints can contribute to poor runtime on devices without a discrete GPU. can be costly at runtime especially if there are multiple skin performance. clusters. • If the model usage is known ahead of time, use that to inform • Simplify your hierarchy, remove unnecessary nodes and combine triangle reduction choices. Focus on less important areas with high • While it may increase the complexity of the skin weighting process, meshes where possible. mesh density while being mindful of the silhouette impact. reducing skin clusters by combining meshes is one of the best options for improving skin and skeletal performance. • glTF will create a mesh per material, atlas materials together to • Fine geometric surface details can often be replaced by baking reduce node count and draw calls. them into normal and occlusion maps for large triangle savings. • Remove joints that won’t be used in the required animations. Consider reducing joint count in dense parts of the hierarchy, often • For animated models consider how the model needs move and a similar deformation can be achieved with skin weighting consolidate the hierarchy into as few nodes as possible. adjustments. Visual Artifacts Content Creation Use 3D Viewer to identify visual artifacts and test your revisions.

Common visual artifacts

Autodesk Maya

Coplanar Geometry Inverted Face Normals

• Flickering can occur when geometry faces are coplanar or nearly • Inverted face normals can cause the model to be shaded coplanar. This is especially prevalent when the model is animating. incorrectly.

• Increasing the distance between geometry faces by a small amount • Flip the normals of the incorrectly shaded faces to resolve the will resolve the flickering issues in most cases. rendering issues. Content Creation Use 3D Viewer to identify visual artifacts and test your revisions.

Common visual artifacts

A single mesh with both opaque and transparent faces that overlap can cause sort order artifacts.

Tangent Basis Alpha Sorting

• A conflicting tangent basis can cause your normal maps to appear • A mesh with a single material for both opaque and transparent inverted. faces can introduce sort order artifacts depending on the position of the model. • If you don’t export tangents with your model, glTF and the Office renderer will assume right-handedness. • Texture sets should always be split into opaque and transparent materials to improve render sorting. • Export your model with tangents if you are baking tangent space normal maps in a left-handed setup. Alternatively you could invert • If the model only has one texture set, duplicate the material, the green channel (Y axis) of your normal map. remove the transparency and assign the newly created material to all the opaque triangles of the mesh. Additional Resources Tools Additional Resources

Preview tools

3D Viewer is a Microsoft Store application built on the same 3D rendering engine used in Office 365. This is the fastest way to preview how your assets will look in the renderer.

Asset stats and the detailed visualizations found in 3D Viewer can help identify performance bottlenecks.

Import supported 3D file types and save them as .GLB.

3D Viewer can be found in the Windows 10 Start menu

3D files on your local hard drive can also be previewed in Windows File Explorer by enabling the Preview pane under the View menu. Additional Resources

Preview tools

Babylon.JS Sandbox is a drag and drop web tool built on the fully glTF compliant Babylon.JS renderer.

Preview .glTF, .GLB, .OBJ and .Babylon files in your web browser.

Files that are performant and render well in Babylon.JS Sandbox will most likely render as expected in the Office renderer. Additional Resources

Validation tool

The Khronos glTF Validator is a drag and drop web tool that verifies the output from your glTF exporter or converter against the glTF specification.

When loading a glTF file, the tool will generate a pass or fail state as well as a detailed report that outlines any errors that have been encountered.

The errors can be used by developers to determine if there are any issues with the tools used to generate the glTF file.

Your software vendor or developer may be able to use this data to improve the compliance of their glTF tools. Appendix Additional Resources

Useful links glTF Specification The official glTF specification from Khronos Group

Babylon.JS Open source 3D engine based on WebGL and JavaScript

Windows Mixed Reality Development guidelines for Windows Mixed Reality headset experiences

HoloLens Development guidelines and resources for HoloLens experiences

Allegorithmic PBR Guide Part 1 Excellent guide on the theory behind Physically Based Rendering

Allegorithmic PBR Guide Part 2 A guide to authoring PBR textures and materials focused on the Substance toolset