camera-unproject

unproject 2D point to 3D coordinate

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
camera-unproject
1.0.19 years ago9 years agoMinified + gzip package size for camera-unproject in KB

Readme

camera-unproject
stable
Unprojects a 2D screen space point into 3D space using the inverse of your camera's combined matrix.
var mat4 = require('gl-mat4')
var unproject = require('camera-unproject')

//projection * view matrix
var combinedProjView = mat4.multiply([], projection, view)

//now invert it
var invProjView = mat4.invert([], combinedProjView)

//viewport bounds
var viewport = [x, y, width, height]

//2D point in screen space
//z=0 means "near plane"
var point = [123, 52, 0]

//vec3 output
var output = []

unproject(output, point, viewport, invProjView)

Usage

NPM

vec3 = unproject(out, point, viewport, invCombined)

Unprojects the 2D point into 3D space using the viewport bounds (screen x, y, width, height) and invCombined matrix.
Where point x, y, z uses window coordinates for XY and a range between 0.0 (near plane) and 1.0 (far plane) for Z. invCombined is typically the invert of the combined projection * view matrix for your camera.
The [x, y, z] result is stored in out and returned.

See Also

License

MIT, see LICENSE.md for details.