Я почти уверен, что Away3D реализовал это в некоторых приятных функциях, но вот как я это сделаю.Я предполагаю, что вы имеете в виду ортографическую проекцию из «пленки» камеры в мировое пространство (не знаю, как это реализовано).
Вы проецируете луч из плоскости обзора камеры, поэтомув основном ищет, чтобы найти пересечение луча и плоскости.Луч начинается с «глаза» камеры и проходит через плоскость обзора камеры.
Таким образом, точка пересечения 3D между ними будет:
Point getIntersection(Ray ray) {
float k, t;
Point point;
Vector toPoint;
k = ray.direction.dot(this.normal);
if (k != 0.0) {
t = (this.position - ray.origin).dot(this.normal) / k;
} else {
return false;
}
if (t < 0.0000001) {
return false;
}
return ray.origin + ray.direction * t;
}
Я использовал аналогичныекод в моем raytracer, поэтому он должен работать.