My game used a global coordinate-system North(x), East(y), Down(z), so righthanded. But for FMOD it is stated that:
By default FMOD uses a left-handed coordinate system. If you are using a right-handed coordinate system then FMOD must be initialized by passing FMOD_INIT_3D_RIGHTHANDED to System::init. In either case FMOD requires that the positive Y axis is up and the positive X axis is right, if your coordinate system uses a different convention then you must rotate your vectors into FMOD’s space before passing them to FMOD.
FMOD - White Papers | 3D Sounds (orientation and left handed vs right handed coordinate systems)
Is it correct to assume that the FMOD “positive Y axis is up and the positive X axis is right” are local coordinates and only needed for orientation?
Eg assume an event_instance_
at position (1, 2, 3)
, speed (4, 5, 6)
with forward orientation (1, 0, 0)
and up (0, 0, -1)
all in global NED game-coordinates, would this then be for FMOD:
const FMOD_3D_ATTRIBUTES attributes {
.position {1, 2, 3},
.velocity {4, 5, 6},
.forward {0, 0, -1},
.up {0, 1, 0}
};
event_instance_->set3DAttributes(&attributes)
Or do I need to transform the position and velocity as well?