NVIDIA OptiX 7.7 nvidia_logo_transpbg.gif Up
OptixSRTData Struct Reference

#include <optix_types.h>

Public Attributes

Parameters describing the SRT transformation
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
 

Detailed Description

Represents an SRT transformation.

An SRT transformation can represent a smooth rotation with fewer motion keys than a matrix transformation. Each motion key is constructed from elements taken from a matrix S, a quaternion R, and a translation T.

The scaling matrix \(S = \begin{bmatrix} sx & a & b & pvx \\ 0 & sy & c & pvy \\ 0 & 0 & sz & pvz \end{bmatrix}\) defines an affine transformation that can include scale, shear, and a translation. The translation allows to define the pivot point for the subsequent rotation.

The quaternion R = [ qx, qy, qz, qw ] describes a rotation with angular component qw = cos(theta/2) and other components [ qx, qy, qz ] = sin(theta/2) * [ ax, ay, az ] where the axis [ ax, ay, az ] is normalized.

The translation matrix \(T = \begin{bmatrix} 1 & 0 & 0 & tx \\ 0 & 1 & 0 & ty \\ 0 & 0 & 1 & tz \end{bmatrix}\) defines another translation that is applied after the rotation. Typically, this translation includes the inverse translation from the matrix S to reverse the translation for the pivot point for R.

To obtain the effective transformation at time t, the elements of the components of S, R, and T will be interpolated linearly. The components are then multiplied to obtain the combined transformation C = T * R * S. The transformation C is the effective object-to-world transformations at time t, and C^(-1) is the effective world-to-object transformation at time t.

See also
OptixSRTMotionTransform::srtData, optixConvertPointerToTraversableHandle()

Member Data Documentation

 a

float OptixSRTData::a

 b

float OptixSRTData::b

 c

float OptixSRTData::c

 pvx

float OptixSRTData::pvx

 pvy

float OptixSRTData::pvy

 pvz

float OptixSRTData::pvz

 qw

float OptixSRTData::qw

 qx

float OptixSRTData::qx

 qy

float OptixSRTData::qy

 qz

float OptixSRTData::qz

 sx

float OptixSRTData::sx

 sy

float OptixSRTData::sy

 sz

float OptixSRTData::sz

 tx

float OptixSRTData::tx

 ty

float OptixSRTData::ty

 tz

float OptixSRTData::tz