Используя Sandy 3D AS3, заполните область просмотра (точное соответствие) несколькими трехмерными объектами - PullRequest
0 голосов
/ 19 мая 2010

Я склеиваю изображение, используя несколько экземпляров sandy.primitive.Box. Каждый блок имеет размер 96x91, а область просмотра - 960x273, что должно обеспечить точное совпадение, если я расположу поля в идеальной сетке 10x3. Тем не менее, я не могу получить точное поле камерыOfView. Я попробовал пару формул (одну для настройки «фокусного расстояния» и одну для настройки поля зрения). Обе эти формулы дают слишком узкий угол обзора.

// focal length
(stage.stageHeight/2) / Math.tan(cam.fov / 2 * Math.PI / 180)

// field of view
2 * Math.atan2( (stage.stageHeight/2), -cam.z ) * (180 / Math.PI)

Еще один вопрос о том же проекте: Мне нужно отрегулировать перспективу каждого куба так, чтобы изображение находилось в двухмерном пространстве (плоское) ... Есть идеи по поводу лучшего метода вычисления такой "коррекции"?

1 Ответ

0 голосов
/ 23 мая 2010

Вскоре после постановки этого вопроса я понял, что при определении расстояния я не учитывал глубину куба (фактически половину глубины).

// field of view
2 * Math.atan2( (stage.stageHeight/2), -(cam.z + (cubeDepth/2)) ) * (180 / Math.PI)
...