ModelIO Namespace

Classes for manipulating 3D assets.

Classes

MDLAnimatedMatrix4x4
MDLAnimatedQuaternionArray
MDLAnimatedScalar
MDLAnimatedScalarArray
MDLAnimatedValue
MDLAnimatedVector2
MDLAnimatedVector3
MDLAnimatedVector3Array
MDLAnimatedVector4
MDLAnimationBindComponent
MDLAreaLight

A basic high-performance light for illuminating scenes from a lit shape.

MDLAsset

A container that stores 3D assets as an indexed collection of MDLObject trees.

MDLBundleAssetResolver
MDLCamera

A point of view that looks into a 3D scence, and that can simulate certain aspects of a physical camera.

MDLCheckerboardTexture

Procedurally generates a checkerboard texture on demand, and caches the result.

MDLColorSwatchTexture

Texture that contains a gradient between two colors.

MDLLight

Base class for light sources.

MDLLightProbe

A light source that defines the color and intensity of its light in all directions.

MDLLightProbeIrradianceDataSource
MDLLightProbeIrradianceDataSource_Extensions

Extension methods to the IMDLLightProbeIrradianceDataSource interface to support all the methods from the MDLLightProbeIrradianceDataSource protocol.

MDLMaterial

Defines how a surface should appear when rendered.

MDLMaterialProperty

Defines a specific parameter that controls the rendering of a material surface.

MDLMaterialPropertyConnection
MDLMaterialPropertyGraph
MDLMaterialPropertyNode
MDLMatrix4x4Array
MDLMesh

A collection of MDLSubmesh objects that, together, define the geometric and material properties for rendering a 3D object.

MDLMeshBuffer_Extensions

Extension methods to the IMDLMeshBuffer interface to support all the methods from the IMDLMeshBuffer protocol.

MDLMeshBufferData

Provides storage for vertex and index data for a MDLMesh object.

MDLMeshBufferDataAllocator

An implementation of IMDLMeshBufferAllocator that allocates mesh buffer data space within main memory, not GPU memory.

MDLMeshBufferMap

Class that provides temporary access to mesh data in shared memory.

MDLMeshBufferZone_Extensions

Extension methods to the IMDLMeshBufferZone interface to support all the methods from the IMDLMeshBufferZone protocol.

MDLMeshBufferZoneDefault

A default implementation of a IMDLMeshBufferZone.

MDLNoiseTexture

Class that generates a texture that consists of random color or direction noise.

MDLNormalMapTexture

Class that generates a texture that contains surface normal data.

MDLObject

Base class for objects in a MDLAsset.

MDLObjectContainer

A default implementation of the abstract IMDLObjectContainerComponent class.

MDLObjectContainerComponent_Extensions

Extension methods to the IMDLObjectContainerComponent interface to support all the methods from the IMDLObjectContainerComponent protocol.

MDLPackedJointAnimation
MDLPathAssetResolver
MDLPhotometricLight

Represents a light that is derived from photometric data.

MDLPhysicallyPlausibleLight

Represents a light that plausibly attenutates and can represent black-body incandescence.

MDLPhysicallyPlausibleScatteringFunction

Represents a bidirectional reflectance distribution function to use when rendering a MDLMaterialTextureWrapMode.

MDLRelativeAssetResolver
MDLScatteringFunction

Represents a Bidirectional Reflectance Distribution Funcion (BRDF) that defines a material's response to lighting conditions.

MDLSkeleton
MDLSkyCubeTexture

A texture that represents a realistic sunlit sky.

MDLStereoscopicCamera

A camera that can be used to render stereoscopic views of a scene.

MDLSubmesh

Indexes and identifies a portion of an MDLMesh, and contains material information about the indexed portion.

MDLSubmeshTopology

Describes the topology of the vertices that are indexed by a submesh's index buffers.

MDLTexture

Represents texel data for surface rendering.

MDLTextureFilter

Describes filtering modes for rendering by sampling a texture.

MDLTextureSampler

Represents a texture and sampling parameters to use when rendering the texture.

MDLTransform

Represents static and animated coordinate transformations.

MDLTransformComponent_Extensions

Extension methods to the IMDLTransformComponent interface to support all the methods from the IMDLTransformComponent protocol.

MDLTransformMatrixOp
MDLTransformRotateOp
MDLTransformRotateXOp
MDLTransformRotateYOp
MDLTransformRotateZOp
MDLTransformScaleOp
MDLTransformStack
MDLTransformTranslateOp
MDLUrlTexture

Encapsulates on-demand loading of a texture at a URL.

MDLVertexAttribute

Describes the physical layout and semantic content of vertex data in an index buffer.

MDLVertexAttributeData

Provides convenient access to vertex data for a specific MDLMesh object.

MDLVertexAttributes

Contains valid vertex attribute names.

MDLVertexBufferLayout

Describes the layout of vertices in a mesh buffer object.

MDLVertexDescriptor

Describes the format of vertices in a mesh buffer.

MDLVertexFormatExtensions

Extension methods for MDLVertexFormat.

MDLVoxelArray

Models a 3D object as a collection of volumetric elements, called voxels.

Structs

MDLAxisAlignedBoundingBox

A bounding box whose axes are aligned with its coordinate system.

MDLVoxelIndexExtent

Provides the extent of voxel data.

MDLVoxelIndexExtent2

Interfaces

IMDLAssetResolver
IMDLComponent

Interface representing the required methods (if any) of the protocol IMDLComponent.

IMDLJointAnimation
IMDLLightProbeIrradianceDataSource

Interface representing the required methods (if any) of the protocol MDLLightProbeIrradianceDataSource.

IMDLMeshBuffer

Interface representing the required methods (if any) of the protocol IMDLMeshBuffer.

IMDLMeshBufferAllocator

Interface representing the required methods (if any) of the protocol MDLMeshBufferDataAllocator.

IMDLMeshBufferZone

Interface representing the required methods (if any) of the protocol IMDLMeshBufferZone.

IMDLNamed

Interface whose implementers define a Name property.

IMDLObjectContainerComponent

Interface representing the required methods (if any) of the protocol IMDLObjectContainerComponent.

IMDLTransformComponent

Interface representing the required methods (if any) of the protocol IMDLTransformComponent.

IMDLTransformOp

Enums

MDLAnimatedValueInterpolation
MDLCameraProjection

Enumerates camera projections.

MDLDataPrecision
MDLGeometryType

Enumerates the geometric primitives to use for rendering.

MDLIndexBitDepth

Enumerates bit depths for MDLSubmesh index buffers.

MDLLightType

Enumerates the types of MDLLight.

MDLMaterialFace
MDLMaterialMipMapFilterMode

Enumerates values that control texture sampling between mipmap levels.

MDLMaterialPropertyType

Enumerates material property types.

MDLMaterialSemantic

Enumerates the semantics of an MDLMaterialProperty.

MDLMaterialTextureFilterMode

Enumerates values that control how to sample between texels.

MDLMaterialTextureWrapMode

Enumerates procedures for handling texture coordinates outside of the range [0.0,1.0].

MDLMesh.MDLMeshVectorType
MDLMeshBufferType

Enumerates mesh buffer data types.

MDLNoiseTextureType
MDLProbePlacement
MDLTextureChannelEncoding

Enumerates values that specify data types and sizes for texel channels.

MDLTransformOpRotationOrder
MDLVertexFormat

Enumerates vertex data descriptions.

Delegates

MDLObjectHandler

Remarks

The Model I/O framework allows the developer to load and use 3D assets in the following formats:

Format
Alembic
Wavefront
Polygons (.ply)
Triangles (.stl)

Additionally, developers can export to triangle (.stl) and wavefront formats.