0
0

Hello FMOD team,
There is a question puzzle me about the FMOD_INIT_3D_RIGHTHAND and system::set3DListenerAttributes.
as the doc says, the righthand Coordinates is treat +X=right, +Y=up, +Z= backwards or towards you.
However, in system::set3DListenerAttributes, it says : By default, FMOD uses a left-handed co-ordinate system. This means +X is right, +Y is up, and +Z is forwards. To change this to a right-handed coordinate system, use FMOD_INIT_3D_RIGHTHANDED. This means +X is left, +Y is up, and +Z is forwards.

`````` i am wonder that why this two coordinate are different, please help me , hunger for your answer, thanks advance.
``````
• You must to post comments
0
0

In the Doc’s 3D sound tutorials says:
Orientation and left-handed vs right-handed coordinate systems.

Getting the correct orientation set up is essential if you want the source to move around you in 3d space.
FMOD Uses a left handed coordinate system by default, (+X = right, +Y = up, +Z = forwards), which is the same as DirectSound3D and A3D.

If you use a different coordinate system, then you will need to flip certain axis or even swap them around inside the call to System::set3DListenerAttributes and Channel::set3DAttributes.
Take the right handed coordinate system, where [u:296gdr23]+X = right, +Y = up, +Z = backwards or towards you[/u:296gdr23]. To convert this to FMOD coordinate system simply negate all instances of the Z coordinate for listener and sound position and velocity, as well as listener up and forward vector Z components.

To make things easier for people using the right handed coordinate system, you can initialize FMOD Ex using FMOD_INIT_3D_RIGHTHANDED in System::init and not do any conversion. FMOD will automatically convert its internal 3D calculations to be right handed instead of left handed.

• You must to post comments
0
0

In the Doc System::set3DListenerAttributes:
Remarks

By default, FMOD uses a left-handed co-ordinate system. This means +X is right, +Y is up, and +Z is forwards.
To change this to a right-handed coordinate system, use FMOD_INIT_3D_RIGHTHANDED. This means [u:33mvdbey]+X is left, +Y is up, and +Z is forwards.[/u:33mvdbey]

Is the "+X=left, +Y=up, +Z=forward" in last sentence should be change "+X=right, +Y=up, +Z=backward" would be correct?

• You must to post comments
0
0

Yes, you are right. I have fixed it for future releases.

• You must to post comments
0
0

Thanks, this little wrong drive me crazy yesterday, now i feel good!

• You must to post comments
0
0

I hope to satisfy your appetite.

[quote:1l7bpk7u]…use FMOD_INIT_3D_RIGHTHANDED. This means +X is left, +Y is up, and +Z is forwards. [/quote:1l7bpk7u]
That appears to be a mistake, it should say "+Z is backward".

The right handed coordinate option is there to help people using right handed coordinate systems. It saves them the trouble of manually converting all their coordinates to left handed before passing them into FMOD.