SurfaceAppearance objects let you override the appearance of a
MeshPart with advanced graphics options. Most notably,
SurfaceAppearance can apply a set of PBR textures to a mesh (PBR is short for Physically-Based Rendering and refers to a common texture format for defining extra physical details).
Enabling Surface Appearance
To enable a surface appearance for a
MeshPart, select it and insert a
Surface Appearance Properties
SurfaceAppearance/ColorMap|ColorMap property determines the color and opacity of the surface (this texture is often called the albedo texture). Its alpha channel controls opacity as outlined in the
SurfaceAppearance/AlphaMode|AlphaMode determines how the alpha channel of the
SurfaceAppearance/ColorMap|ColorMap is used. This lets you apply textures of varying transparency/opacity onto meshes to create partially “see-through” objects.
- Overlay — Overlays the
SurfaceAppearance/ColorMap|ColorMap(based on its alpha channel) over the underlying part
- Transparency — Renders only the
SurfaceAppearance/ColorMap|ColorMapusing its alpha channel for transparency. Surface areas where the map’s alpha is 0 (fully transparent) appear completely see-through while areas where the map’s alpha is 1 (fully opaque) will be completely opaque.
SurfaceAppearance/NormalMap|NormalMap modifies the lighting of the surface by adding bumps, dents, cracks, and curves without adding more polygons. The R, G, and B channels of the image correspond respectively to the X, Y, and Z components of the local surface vector. A uniform image of color [127, 127, 255] translates to a completely flat normal map.
SurfaceAppearance/MetalnessMap|MetalnessMap determines which parts of the surface are metal versus non-metal. This map should be a grayscale image where black pixels correspond to non-metals and white pixels correspond to metals. Gray values can be used for blending or to simulate dirt/grunge on top of an underlying metal (white) area.
Lighting/EnvironmentSpecularScaleis 0. For the most realistic reflections, set both
Lighting/EnvironmentDiffuseScaleto 1 and both
Lighting/OutdoorAmbientto [0, 0, 0].
SurfaceAppearance/RoughnessMap|RoughnessMap specifies the apparent roughness across the surface. It should be a grayscale image where black pixels correspond to a maximally smooth surface (reflective) and white pixels correspond to a maximally rough surface (matte).