» Coordinate Systems
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Coordinate Systems

Japanese

Left-handed system

vvvv is using a left-handed coordinate system with:

  • positive X going right
  • positive Y going up
  • positive Z going forward (ie. into the screen).

This corresponds to the DirectX default.

Rotation

In vvvv rotations are specified in fractions of full counter-clockwise cycles (turns).

 0° = 0 cycles
 90° = 0.25 cycles
 180° = 0.5 cycles
 270° = 0.75 cycles
 360° = 1 cycle
 720° = 2 cycles
 ...

Search the NodeBrowser for Cycles, Degrees or Radians to find nodes that convert between the different scales.

For more about angles and cyclic animations check:

Renderer's space

The window area has a default range of -1 to +1 in both dimensions. The origin with coordinate 0 is in the middle of the window.

A standard quad has width and height of 1 with its center at (0, 0). Therefore the quad extends from -0.5 to +0.5 in both dimensions.

Resizing the window stretches the coordinate system in the same way as the window.

See Aspect Ratio on how to avoid stretching.

Object Space

The coordinate space in which the vertices of a mesh are specified is called the object space. When preparing meshes for use in vvvv it makes sense to think about the object-spaces dimensions. If you need realistic scaling from between different meshes you'd best think of one unit in object space being equal to 1 meter in real life.

Otherwise if you're just dealing with a bunch of objects that need no special size it's often useful to keep their vertices within a 1 unit cube.

World Space

The coordinate system of the 3d scene is called World space (aka Model space).

When placing a Mesh into World space it first sits with its own center at the worlds center. To position a Mesh in the scene its vertex positions are multiplied with a so called WorldMatrix. The WorldMatrix is the Transform of any Effect node.

View Space

View space (aka camera space) is the coordinate system relative to the camera. To place a Mesh into View space its vertex positions (in World space) are multiplied by the ViewMatrix. The ViewMatrix is specified via the View on the Renderer (EX9). It defines position and rotation of the camera.

Projection Space

And this is what the camera sees:

Projection space (aka Screen space, Clip space, Image space) finally is the 2d space of the screen. To project a Mesh onto the screen its vertex positions (in View space) are multiplied by the ProjectionMatrix. The ProjectionMatrix is specified via the Projection Transform on the Renderer (EX9).

Texture Space

MSDN on Texture Coordinates

Texture space is the 2d coordinate system of a texture, ranging from 0/0 (topleft) to 1/1 (bottomright). It is used by the sampler to lookup for pixels at a particular position in a texture.

See also:

anonymous user login

Shoutbox

~3d ago

joreg: Introducing: Support for latest Ultraleap hand-tracking devices: https://visualprogramming.net/blog/2024/introducing-support-for-new-ultraleap-devices/

~6d ago

joreg: 2 day vvvv/fuse workshop in Vienna as part of NOISE festival on Sept. 13 and 14: https://www.noise.ist/vienna

~17d ago

joreg: New beginner video tutorial: World Cities https://youtu.be/ymzrK7tZLBI

~17d ago

catweasel: https://colour-burst.com/2023/01/26/macroscopic/ yeah, ' is there anyone who cares about slides anymore...' Well me for a start! :D

~26d ago

ventolinmono: The ELMO TRV-35 slides into your video feed > https://youtu.be/pcIM9mh1c9k?si=iB4FOfI2D6y0iETy

~1mth ago

joreg: The summer season of vvvv workshops is now complete, but you can still get access to all the recordings: https://thenodeinstitute.org/ss24-vvvv-intermediates/

~2mth ago

~2mth ago

joreg: Workshop on 01 08: Augmented Reality using OpenCV, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-augmented-reality-using-opencv-in-vvvv/

~2mth ago

joreg: Workshop on 18 07: Fluid simulations in FUSE, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-fluid-simulations-in-fuse/

~2mth ago

joreg: Workshop on 17 07: Working with particles in FUSE, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-working-with-particles-in-fuse/