# VkSRTDataNV(3) Manual Page

## Name

VkSRTDataNV - Structure specifying a transform in SRT decomposition

Loading… please wait.

## C Specification

An acceleration structure SRT transform is defined by the structure:

    // Provided by VK_NV_ray_tracing_motion_blur
    typedef struct VkSRTDataNV {
        float    sx;
        float    a;
        float    b;
        float    pvx;
        float    sy;
        float    c;
        float    pvy;
        float    sz;
        float    pvz;
        float    qx;
        float    qy;
        float    qz;
        float    qw;
        float    tx;
        float    ty;
        float    tz;
    } VkSRTDataNV;

## Members

- `sx` is the x component of the scale of the transform

- `a` is one component of the shear for the transform

- `b` is one component of the shear for the transform

- `pvx` is the x component of the pivot point of the transform

- `sy` is the y component of the scale of the transform

- `c` is one component of the shear for the transform

- `pvy` is the y component of the pivot point of the transform

- `sz` is the z component of the scale of the transform

- `pvz` is the z component of the pivot point of the transform

- `qx` is the x component of the rotation quaternion

- `qy` is the y component of the rotation quaternion

- `qz` is the z component of the rotation quaternion

- `qw` is the w component of the rotation quaternion

- `tx` is the x component of the post-rotation translation

- `ty` is the y component of the post-rotation translation

- `tz` is the z component of the post-rotation translation

## Description

This transform decomposition consists of three elements. The first is a matrix S, consisting of a scale, shear, and translation, usually used to define the pivot point of the following rotation. This matrix is constructed from the parameters above by:

S=
​s x 0 0​a sy 0​b c sz​p vx p v y p v z​
​

The rotation quaternion is defined as:

  `R` = [ `qx`, `qy`, `qz`, `qw` ]

This is a rotation around a conceptual normalized axis [ ax, ay, az ] of amount `theta` such that:

  [ `qx`, `qy`, `qz` ] = sin(`theta`/2) × [ `ax`, `ay`, `az` ]

and

  `qw` = cos(`theta`/2)

Finally, the transform has a translation T constructed from the parameters above by:

T=
​1 0 0​0 1 0​0 0 1​t x t y t z​
​

The effective derived transform is then given by

  `T` × `R` × `S`

## See Also

VK_NV_ray_tracing_motion_blur, VkAccelerationStructureSRTMotionInstanceNV

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0