Starting the testbed

When executed, the testbed will look for a test application to load, which should be compiled either as a windows DLL (on Windows), or shared library (on Linux).

By default, the testbed will look for a dll (or so) with name 'TestApplication' using the default OS search path.
(So, first of all in the testbed's working directory, and then in an OS specific set of other search locations.)

Usually, however, the application to be loaded will be specified as a command line argument (see below).

Control of execution is passed over to this test application after the testbed has initialised.

The test application controls what is drawn every frame and may also include arbitrary control logic.
The testbed handles default control and positioning of the camera and details of rendering the scene.

Command line arguments

Argument

Explanation

windowsize=width,height

Sets the testbed window size to the specified width and height.

app=dllname

Tells the testbed to use dllname instead of 'testapplication.dll'.
This name can include a relative or absolute path to the dll.
(The string is simply passed into LoadLibrary().)
This argument should be supplied last.

nosound

Start without initialising sound libraries (where supported).

checknooutstandingrefs

Emits a warning if there are outstanding API object references after the testbed application exits.

So, for example running the testbed with the command line
"testbed windowsize=1270,720 app=SemiDynamicObstacles"
will open a window with width 1270 pixels and height 720 pixels, and then load and run 'SemiDynamicObstacles.dll' as a testbed application.

The SDK archive includes batch files to run some of the example applications (e.g. see 'SDKRoot/bin/run SemiDynamicObstacles.bat').
This enables command line
arguments to be set for each time a certain testbed application is run, without requiring any kind of install or setup set dependant on the chosen install directory.

Controlling the camera

To rotate, pan or zoom the camera
hold one of the following keys while moving the mouse:

Hold down

Effect of mouse movement

'1'

Rotate

'2'

Pan

'3'

Zoom

Left shift + '3'

Dolly (not usually required now that the testbed performs automatic camera target adjustment, see below)

An alternative (maya style) set of controls is also provided:

Hold down

Effect of mouse movement

Left control + Left mouse button

Rotate

Left control + Middle mouse button

Pan

Left control + Left and middle mouse buttons

Zoom

Left shift + Left control + Left and middle mouse buttons

Dolly (not usually required now that the testbed performs automatic camera target adjustment, see below)

Advanced camera controls

In some situations, being able to rotate a 3D camera intuitively depends on having the camera target set correctly
(since this is effectively used as a centre position for camera rotation).

To help with this, a white cross is displayed at the camera target when any of the
camera controls are active.

If necessary, it is possible to force the camera to 'dolly' instead of 'zoom', by holding the left shift key.
This essentially means that both camera position and camera target are moved backward or forward instead of just the camera position.

The testbed also performs a kind of automatic camera adjustment, which means that manual dolly is not necessary in most situations.
Basically, if the mouse is over a mesh when you start panning
then distance to camera target will be set according to the distance to that mesh position.
Any subsequence rotations will then be based on this distance, and generally feel more intuitive.

Full screen mode

The testbed can be toggled between windowed and full screen modes by holding the left shift key and pressing the right mouse button.