I recently tried to compute world space coordinates from mouse coordinates. I looked at the related logic node code (MouseCoordsNode.hx, ScreenToWorldSpaceNode.hx), but they seem to be off and it seems to me they’re missing a prescaling of the mouse coords. It took me quite some time to come up with a working solution, so I post it here in case someone else needs this.
EDIT New and cleaner approach:
var camera = cast(object, CameraObject);
var mouse = Input.getMouse();
var v = RayCaster.getRay(mouse.x, mouse.y, camera).at(0);
var camera = cast(object, CameraObject); // assumes you're calling this from a Trait on your camera var v = new Vec4(); var m = Mat4.identity(); var w = System.windowWidth(); var h = System.windowHeight(); var mouse = Input.getMouse(); var mx = 2 * ((mouse.x / w) - 0.5); var my = -2 * ((mouse.y / h) - 0.5); v.set(mx, my, 0, 1); m.getInverse(camera.VP); v.applyproj(m); // world space coordinates are now in v