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 postrotation translation 
ty
is the y component of the postrotation translation 
tz
is the z component of the postrotation 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:
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:
The effective derived transform is then given by

T
×R
×S
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.