Hello will,
Given a chunk with a given camera with a point with (x,y) pixel coordinates then you can use the surface that was the base for DEM generation
surface = chunk.model or surface = chunk.dense_cloud
so projected point p on surface woud be
p = surface.pickPoint(center,p2) # projected point p on surface in internal coordinate system
where center = camera.unproject(ps.Vector((x,y,0))) # camera perspective center coordinates in internal CS and
p2 = camera.unproject(ps.Vector((x,y,1))) # coordinates of point in direction from (x,y) to camera center in internal CS
P = ortho.crs.project(T.mulp(p)) # coordinates of projected point in ortho projection
X, Y = (P.x, P.y) # point P X,Y coordimates in ortho CS
where ortho = chunk.orthomosaic and T = chunk.transform.matrix
This should get you going,
PS this supposes projected point on surface exists ie. is inside same