Inverse of CameraProject

Blitz3D Forums/Blitz3D Programming/Inverse of CameraProject

how can i know a 3d position giving x and y viewport coordinates and a distance?

Thanks in Advance!

If you put a flat mesh at the correct distance in front of the camera, make it pickable and do a camerapick() you will get what you need from PickedX/Y/Z(). The mesh can have an alpha of 0.0 of course.

Well, thanks, but there could be some object in front...

after about 50 post edits heh everything you need can be found in this example:

http://www.blitzbasic.com/codearcs/codearcs.php?code=379

below is a version I used in a specific situation with the Z distance specified.

Function PositionEntityFrom2D (usecam, entity, x2d#, y2d#, z3d#, positionGlobal = 0, camZoom# = 1.0)
gw = camWidth
gh = camHeight
dx# = -((gw / 2) - x2d)
dy# = (gh / 2) - y2d
parent = GetParent (entity)
EntityParent entity, usecam
;z3d# = Abs (EntityZ (entity))
div# = (gw / (2 / camzoom)) / z3d
PositionEntity entity, dx / div, dy / div, z3d, positionGlobal
EntityParent entity, parent
End Function

mmm, Thanks!. I have been playing with TFormPoint.
It seems that TFormPoint function makes something similar:

TFormPoint Mousex()-CamWidth/2.0,CamHeight/2.0-MouseY(),Z#,Camera,0

is it ok?

P.D: Anyway, that code works perfect, thanks!