---
title: "init(options:mask:intersectionFunctionTableOffset:accelerationStructureIndex:userID:motionTransformsStartIndex:motionTransformsCount:motionStartBorderMode:motionEndBorderMode:motionStartTime:motionEndTime:)"
framework: metal
role: symbol
role_heading: Initializer
path: "metal/mtlaccelerationstructuremotioninstancedescriptor/init(options:mask:intersectionfunctiontableoffset:accelerationstructureindex:userid:motiontransformsstartindex:motiontransformscount:motionstartbordermode:motionendbordermode:motionstarttime:motionendtime:)"
---

# init(options:mask:intersectionFunctionTableOffset:accelerationStructureIndex:userID:motionTransformsStartIndex:motionTransformsCount:motionStartBorderMode:motionEndBorderMode:motionStartTime:motionEndTime:)

Creates an acceleration-structure motion instance with the property values you provide.

## Declaration

```swift
init(options: MTLAccelerationStructureInstanceOptions, mask: UInt32, intersectionFunctionTableOffset: UInt32, accelerationStructureIndex: UInt32, userID: UInt32, motionTransformsStartIndex: UInt32, motionTransformsCount: UInt32, motionStartBorderMode: MTLMotionBorderMode, motionEndBorderMode: MTLMotionBorderMode, motionStartTime: Float, motionEndTime: Float)
```

## Parameters

- `options`: An option set for new acceleration-structure motion instances.
- `mask`: A mask for testing ray-tracing rays in a scene’s geometry for new acceleration-structure motion-instances.
- `intersectionFunctionTableOffset`: An offset into the intersection-function table for ray tracing.
- `accelerationStructureIndex`: The index of an acceleration structure that applies to new acceleration-structure motion-instances.
- `userID`: An unique identifier for an acceleration-structure motion-instance.
- `motionTransformsStartIndex`: An index of the motion data that represents the first key-frame’s motion data.
- `motionTransformsCount`: The number of motion data key-frames that begin at doc://com.apple.metal/documentation/Metal/MTLAccelerationStructureMotionInstanceDescriptor/motionTransformsStartIndex.
- `motionStartBorderMode`: A behavior that configures how an acceleration-structure motion-instance handles timestamps before doc://com.apple.metal/documentation/Metal/MTLAccelerationStructureMotionInstanceDescriptor/motionStartTime.
- `motionEndBorderMode`: A behavior that configures how an acceleration-structure motion-instance handles timestamps after doc://com.apple.metal/documentation/Metal/MTLAccelerationStructureMotionInstanceDescriptor/motionEndTime.
- `motionStartTime`: A starting time for the range of motion that the key-frame data (see doc://com.apple.metal/documentation/Metal/MTLAccelerationStructureMotionInstanceDescriptor/motionTransformsStartIndex and doc://com.apple.metal/documentation/Metal/MTLAccelerationStructureMotionInstanceDescriptor/motionTransformsCount) represent.
- `motionEndTime`: An ending time for the range of motion that the key-frame data (see doc://com.apple.metal/documentation/Metal/MTLAccelerationStructureMotionInstanceDescriptor/motionTransformsStartIndex and doc://com.apple.metal/documentation/Metal/MTLAccelerationStructureMotionInstanceDescriptor/motionTransformsCount) represent.

## Discussion

Discussion The initializer sets the descriptor instance’s properties to the values you pass to the initializer’s parameters. However, you can change the descriptor’s property values at any time, such as between creating separate acceleration-structure motion instances. For example, apps typically assign a unique value to userID before they create each motion instance with the same descriptor.

## See Also

### Creating an instance descriptor

- [init()](metal/mtlaccelerationstructuremotioninstancedescriptor/init().md)
