---
title: "Materials, textures, and shaders"
framework: realitykit
role: collectionGroup
role_heading: API Collection
path: realitykit/scene-content-materials-and-shaders
---

# Materials, textures, and shaders

Apply textures to the surface of your scene’s 3D objects to give each object a unique appearance.

## Overview

Overview Materials define the appearance of 3D models in RealityKit, by defining how their surfaces interact with light. Materials can also occlude objects behind them, hold shaders, or act as portals to view other worlds with PortalMaterial. RealityKit includes a few material types to help you get started, including SimpleMaterial for basic color and textures, and PhysicallyBasedMaterial for realistic lighting effects such as reflections, roughness, and emission.

## Topics

### Simple materials

- [Creating 3D entities with RealityKit](visionos/creating-3d-entities-with-realitykit.md)
- [SimpleMaterial](realitykit/simplematerial.md)
- [SimpleMaterial.BaseColor](realitykit/simplematerial/basecolor-swift.typealias.md)
- [SimpleMaterial.Texture](realitykit/simplematerial/texture.md)
- [SimpleMaterial.FaceCulling](realitykit/simplematerial/faceculling-swift.typealias.md)
- [SimpleMaterial.TriangleFillMode](realitykit/simplematerial/trianglefillmode-swift.typealias.md)

### Unlit materials

- [UnlitMaterial](realitykit/unlitmaterial.md)
- [UnlitMaterial.BaseColor](realitykit/unlitmaterial/basecolor-swift.typealias.md)
- [UnlitMaterial.Blending](realitykit/unlitmaterial/blending-swift.typealias.md)
- [UnlitMaterial.Texture](realitykit/unlitmaterial/texture.md)
- [UnlitMaterial.FaceCulling](realitykit/unlitmaterial/faceculling-swift.typealias.md)
- [UnlitMaterial.TextureCoordinateTransform](realitykit/unlitmaterial/texturecoordinatetransform-swift.typealias.md)
- [UnlitMaterial.TriangleFillMode](realitykit/unlitmaterial/trianglefillmode-swift.typealias.md)

### Realistic materials

- [Applying realistic material and lighting effects to entities](realitykit/applying-realistic-material-and-lighting-effects-to-entities.md)
- [Generating procedural textures](visionos/generating-procedural-textures-in-visionos.md)
- [PhysicallyBasedMaterial](realitykit/physicallybasedmaterial.md)
- [PhysicallyBasedMaterial.BaseColor](realitykit/physicallybasedmaterial/basecolor-swift.struct.md)
- [PhysicallyBasedMaterial.Roughness](realitykit/physicallybasedmaterial/roughness-swift.struct.md)
- [PhysicallyBasedMaterial.Metallic](realitykit/physicallybasedmaterial/metallic-swift.struct.md)
- [PhysicallyBasedMaterial.Normal](realitykit/physicallybasedmaterial/normal-swift.struct.md)
- [PhysicallyBasedMaterial.Blending](realitykit/physicallybasedmaterial/blending-swift.enum.md)
- [PhysicallyBasedMaterial.AmbientOcclusion](realitykit/physicallybasedmaterial/ambientocclusion-swift.struct.md)
- [PhysicallyBasedMaterial.Specular](realitykit/physicallybasedmaterial/specular-swift.struct.md)
- [PhysicallyBasedMaterial.SheenColor](realitykit/physicallybasedmaterial/sheencolor.md)
- [PhysicallyBasedMaterial.Clearcoat](realitykit/physicallybasedmaterial/clearcoat-swift.struct.md)
- [PhysicallyBasedMaterial.ClearcoatRoughness](realitykit/physicallybasedmaterial/clearcoatroughness-swift.struct.md)
- [PhysicallyBasedMaterial.AnisotropyLevel](realitykit/physicallybasedmaterial/anisotropylevel-swift.struct.md)
- [PhysicallyBasedMaterial.AnisotropyAngle](realitykit/physicallybasedmaterial/anisotropyangle-swift.struct.md)
- [PhysicallyBasedMaterial.EmissiveColor](realitykit/physicallybasedmaterial/emissivecolor-swift.struct.md)
- [PhysicallyBasedMaterial.TextureCoordinateTransform](realitykit/physicallybasedmaterial/texturecoordinatetransform-swift.typealias.md)
- [PhysicallyBasedMaterial.FaceCulling](realitykit/physicallybasedmaterial/faceculling-swift.typealias.md)
- [PhysicallyBasedMaterial.Texture](realitykit/physicallybasedmaterial/texture.md)

### Portals

- [PortalMaterial](realitykit/portalmaterial.md)
- [PortalMaterial.FaceCulling](realitykit/portalmaterial/faceculling-swift.typealias.md)
- [PortalMaterial.TriangleFillMode](realitykit/portalmaterial/trianglefillmode-swift.typealias.md)
- [PortalComponent](realitykit/portalcomponent.md)
- [WorldComponent](realitykit/worldcomponent.md)
- [PortalCrossingComponent](realitykit/portalcrossingcomponent.md)

### Texture resources

- [Generating procedural textures](visionos/generating-procedural-textures-in-visionos.md)
- [Displaying a stereoscopic image](visionos/displaying-a-stereoscopic-image-in-visionos.md)
- [TextureResource](realitykit/textureresource.md)
- [TextureResource.CreateOptions](realitykit/textureresource/createoptions.md)
- [TextureResource.SamplingQuality](realitykit/textureresource/samplingquality.md)
- [TextureResource.MipmapsMode](realitykit/textureresource/mipmapsmode.md)
- [TextureResource.Semantic](realitykit/textureresource/semantic-swift.enum.md)

### Texture drawing

- [Rendering a windowed game in stereo](realitykit/rendering-a-windowed-game-in-stereo.md)
- [Creating a dynamic height and normal map with low-level texture](realitykit/creating-a-dynamic-height-map-with-low-level-texture.md)
- [LowLevelTexture](realitykit/lowleveltexture.md)
- [LowLevelTexture.Descriptor](realitykit/lowleveltexture/descriptor-swift.struct.md)
- [TextureResource.Drawable](realitykit/textureresource/drawable.md)
- [TextureResource.DrawableQueue](realitykit/textureresource/drawablequeue-swift.class.md)
- [TextureResource.DrawableQueue.Descriptor](realitykit/textureresource/drawablequeue-swift.class/descriptor.md)

### Shaders

- [Implementing adjustable material](visionos/implementing-adjustable-material-in-visionos.md)
- [Displaying a stereoscopic image](visionos/displaying-a-stereoscopic-image-in-visionos.md)
- [ShaderGraphMaterial](realitykit/shadergraphmaterial.md)
- [ShaderGraphMaterial.FaceCulling](realitykit/shadergraphmaterial/faceculling-swift.typealias.md)
- [ShaderGraphMaterial.TriangleFillMode](realitykit/shadergraphmaterial/trianglefillmode-swift.typealias.md)
- [Modifying RealityKit rendering using custom materials](realitykit/modifying-realitykit-rendering-using-custom-materials.md)
- [CustomMaterial](realitykit/custommaterial.md)
- [CustomMaterial.SurfaceShader](realitykit/custommaterial/surfaceshader.md)
- [CustomMaterial.GeometryModifier](realitykit/custommaterial/geometrymodifier.md)
- [MaterialFunction](realitykit/materialfunction.md)
- [CustomMaterial.Program](realitykit/custommaterial/program-swift.class.md)
- [CustomMaterial.Program.Descriptor](realitykit/custommaterial/program-swift.class/descriptor-swift.struct.md)
- [CustomShaderStage](realitykit/customshaderstage.md)

### Object occlusion

- [Obscuring virtual items in a scene behind real-world items](visionos/obscuring-virtual-items-in-a-scene-behind-real-world-items.md)
- [OcclusionMaterial](realitykit/occlusionmaterial.md)
- [OcclusionMaterial.FaceCulling](realitykit/occlusionmaterial/faceculling-swift.typealias.md)

### Video materials

- [VideoMaterial](realitykit/videomaterial.md)
- [VideoMaterial.FaceCulling](realitykit/videomaterial/faceculling-swift.typealias.md)
- [VideoMaterial.TriangleFillMode](realitykit/videomaterial/trianglefillmode-swift.typealias.md)

### Custom material types

- [CustomMaterial.Custom](realitykit/custommaterial/custom-swift.struct.md)
- [CustomMaterial.CustomMaterialTexture](realitykit/custommaterial/custommaterialtexture.md)
- [CustomMaterial.LightingModel](realitykit/custommaterial/lightingmodel-swift.enum.md)
- [CustomMaterial.BaseColor](realitykit/custommaterial/basecolor-swift.struct.md)
- [CustomMaterial.Roughness](realitykit/custommaterial/roughness-swift.struct.md)
- [CustomMaterial.Metallic](realitykit/custommaterial/metallic-swift.struct.md)
- [CustomMaterial.Normal](realitykit/custommaterial/normal-swift.struct.md)
- [CustomMaterial.EmissiveColor](realitykit/custommaterial/emissivecolor-swift.struct.md)
- [CustomMaterial.Blending](realitykit/custommaterial/blending-swift.enum.md)
- [CustomMaterial.Opacity](realitykit/custommaterial/opacity.md)
- [CustomMaterial.AmbientOcclusion](realitykit/custommaterial/ambientocclusion-swift.struct.md)
- [CustomMaterial.Specular](realitykit/custommaterial/specular-swift.struct.md)
- [CustomMaterial.Clearcoat](realitykit/custommaterial/clearcoat-swift.struct.md)
- [CustomMaterial.ClearcoatNormal](realitykit/custommaterial/clearcoatnormal-swift.struct.md)
- [CustomMaterial.ResourceStorage](realitykit/custommaterial/resourcestorage.md)
- [CustomMaterial.TextureCoordinateTransform](realitykit/custommaterial/texturecoordinatetransform-swift.typealias.md)
- [CustomMaterial.FaceCulling](realitykit/custommaterial/faceculling-swift.typealias.md)
- [CustomMaterial.Texture](realitykit/custommaterial/texture.md)

### Error types

- [CustomMaterialError](realitykit/custommaterialerror.md)

### Material types

- [Material](realitykit/material.md)
- [Material.Color](realitykit/material/color.md)
- [Material.Parameters](realitykit/material/parameters.md)
- [MaterialParameterTypes](realitykit/materialparametertypes.md)
- [MaterialParameters](realitykit/materialparameters.md)
- [MaterialColorParameter](realitykit/materialcolorparameter.md)
- [MaterialScalarParameter](realitykit/materialscalarparameter.md)

### Portals, clipping, and occlusion

- [RenderLayerComponent](realitykit/renderlayercomponent.md)
- [RenderLayer](realitykit/renderlayer.md)
- [PortalFactory](realitykit/portalfactory.md)
- [ClippingComponent](realitykit/clippingcomponent.md)
- [ClippingPrimitiveComponent](realitykit/clippingprimitivecomponent.md)
- [OcclusionCullingComponent](realitykit/occlusioncullingcomponent.md)

### Decals

- [PhysicallyBasedDecalComponent](realitykit/physicallybaseddecalcomponent.md)

## See Also

### Scene content

- [Hello World](visionos/world.md)
- [Enabling video reflections in an immersive environment](visionos/enabling-video-reflections-in-an-immersive-environment.md)
- [Creating a spatial drawing app with RealityKit](realitykit/creating-a-spatial-drawing-app-with-realitykit.md)
- [Generating interactive geometry with RealityKit](realitykit/generating-interactive-geometry-with-realitykit.md)
- [Combining 2D and 3D views in an immersive app](realitykit/combining-2d-and-3d-views-in-an-immersive-app.md)
- [Transforming RealityKit entities using gestures](realitykit/transforming-realitykit-entities-with-gestures.md)
- [Responding to gestures on an entity](realitykit/responding-to-gestures-on-an-entity.md)
- [Models and meshes](realitykit/scene-content-models-and-meshes.md)
- [Anchors](realitykit/scene-content-anchors.md)
- [Lights and cameras](realitykit/scene-content-lights-and-cameras.md)
- [Content synchronization](realitykit/scene-content-content-synchronization.md)
- [Audio](realitykit/scene-content-audio.md)
- [Videos](realitykit/scene-content-videos.md)
- [Images](realitykit/scene-content-images.md)
- [Mesh deformation](realitykit/scene-content-mesh-deformation.md)
