Difference between revisions of "Axis translation parameters"

From GIMX
Jump to: navigation, search
(Before trying smoothing)
(Note)
Line 41: Line 41:
 
==Note==
 
==Note==
  
Before trying smoothing, you should have properly set the other parameters. The [[Mouse Calibration ]] page explains how to do this.
+
Before adding smoothing, you should have properly set the other parameters. The [[Mouse Calibration ]] page explains how to do this.
  
 
==Buffer size==
 
==Buffer size==

Revision as of 15:15, 22 October 2012

Work in progress...
Give simple use cases such as: how to bind a joystick axis to an axis
A few things could be taken in this old forum tutorial: http://forum.gimx.fr/viewtopic.php?f=4&t=39#6

This page explains the purpose of each translation parameter.

Dead zone

The dead zone parameter allows to shift the stick positions away from the stick center.
This allows to skip all the stick positions around the stick center that do not generate in-game movement (these positions are called the dead zone of the stick).
If lowest input motion do not generate enough movement, increase the dead zone parameter.

Dead zone shape

The dead zone shape can be set to either rectangle or circle.
Other shapes will be added in a future version.

Sensitivity

The sensitivity parameter is nothing more than a multiplier: input motion is multiplied so as to scale to the output motion range.
Increase it if the movement is too slow and decrease it if the movement is too fast.
It can be a negative value, so as to reverse the motion direction.
Remember that the output motion range is limited (the stick has a max position).

To map a joystick axis to a stick axis, use a value of 128/32768 (about 0.004).
To map a joystick axis to a button axis, use a value of 256/32768 (about 0.008).

Acceleration

The acceleration parameter allows to change the in-game acceleration.
Values higher than 1 increase the effective acceleration, whereas values lower that 1 decrease it.
In-game acceleration is generally positive, which means there is a value in the 0..1 range that will cancel it (at least for games that use simple look mechanics).

Smoothing

The mouse motion can be smoothed using previous mouse motion reports.
This is useful for lowering jerkiness, especially with a low DPI mouse (below 2000 DPI).
It is configurable with two parameters: a buffer size and a filter.
A deeper description of the smoothing technique used by GIMX is available there.

Note

Before adding smoothing, you should have properly set the other parameters. The Mouse Calibration page explains how to do this.

Buffer size

The buffer size (in the 0..30 range) is the number of mouse motion reports that are used to smooth the mouse motion.
The smoothing window is the buffer size multiplied by the GIMX update period (inverse of the frequency).
Examples:

GIMX frequency = 250Hz, buffer size = 10
1000/250 * 10 = 40ms
GIMX frequency = 100Hz, buffer size = 10
1000/100 * 10 = 100ms

Keep in mind that increasing the buffer size makes motion smoother but increases the latency.

Filter

The filter (in the 0..1 range) defines how much the previous motion reports will count in the final motion.
Value 1 means that the final motion is an average of the buffered motion reports.
Value 0.5 means that the current motion report counts for 1, the previous one for 0.5, the next oldest one for 0.25 (=0.5x0.5), and so on.
Value 0 means that only the current motion report counts (resulting in an unfiltered motion).
So as to preserve a low latency, high filters (1) should only be used with low buffer sizes (2), and high buffer sizes (>10) should only be used with low filters (<0.5).