Формат Cam
#10
Ладно, просто скажу, что хотел вообще придумать алгоритм, который, имея расположение камеры (x,y,z) и точку, куда она должна смотреть, соответственно её повернёт. :unsure:

---------------------

Вот, есть две ссылки неплохие по поводу кватернионов:
http://algolist.manual.ru/graphics/3dfaq...les/77.php
http://itsoyuz.h10.ru/articles/d3d/quat.html
Так вот, там всё довольно подробно объяснено.
Нет не у кого желания попробовать реализовать задумку с камерой (по двум точкам)?

Я вот уже научился немного делать эти кватернионы. Теперь у меня другая проблема, попробую объяснить её суть:

Итак, мы имеет две 3D-точки (x,y,z). Нам нужно сделать так, чтобы камера оказалась в первой точке и смотрела во вторую. Первое, что мне пришло на ум, что нужно задать ось вращения от первой точке ко второй. Эта ось задаётся вектором:
VectorAxis ( x2-x1, y2-y1, z2-z1 )
, где x1,y1,z1 - Первая точка; x2,y2,z2 - Вторая.

Чтобы переделать ось (Axis) + угол (Angle) вращения в кватернион, нужно провести, как мне кажется, известные рассчёты.
Предварительно нужно вектор, который описывает ось сделать единичным - разделить все его компоненты на его же длину. А затем вот:
Код:
w = cos(Angle/2)
x = AxisX * sin(Angle/2)
y = AxisY * sin(Angle/2)
z = AxisZ * sin(Angle/2)
Как я понял, в ПЗ кватернион записан так: Quaternion {x, y, z, w}
Просто, на сайтах, которые я показал, написано наоборот.

Проблема заключается в том, что если ось вращения будет пересекать обе 3D-точки (наши), то камера никогда не будет смотреть во вторую точку. Решение этой проблемы я нашёл в том, чтобы развернуть ось на 90% и тогда при определённом углу вращения камера должна будет смотреть во вторую точку. Вот только как повернуть ось на 90%????

Может я вообще не в ту степь лезу? Sad Просто очень хочется с делом этим разобраться. Sad
Ответ


Сообщения в этой теме
Формат Cam - от ELF - 25.06.2004, 17:02
Формат Cam - от Guest - 06.07.2004, 12:48
Формат Cam - от ELF - 06.07.2004, 15:30
Формат Cam - от ALtair - 06.07.2004, 16:40
Формат Cam - от ELF - 06.07.2004, 22:55
Формат Cam - от ALtair - 06.07.2004, 23:50
Формат Cam - от ELF - 07.07.2004, 18:25
Формат Cam - от ALtair - 07.07.2004, 18:55
Формат Cam - от Jet - 07.07.2004, 20:08
Формат Cam - от Guest - 12.07.2004, 20:27
Формат Cam - от ELF - 12.07.2004, 23:54
Формат Cam - от ALtair - 13.07.2004, 00:36
Формат Cam - от Guest - 28.02.2006, 18:52
Формат Cam - от SnAIper - 01.03.2006, 15:06
Формат Cam - от ConanFedr - 01.03.2006, 18:07
Формат Cam - от ConanFedr - 01.03.2006, 20:26
Формат Cam - от SnAIper - 02.03.2006, 00:53
Формат Cam - от Jack - 02.03.2006, 01:40
Формат Cam - от SnAIper - 02.03.2006, 14:44
Формат Cam - от ConanFedr - 02.03.2006, 15:47
Формат Cam - от ConanFedr - 02.03.2006, 17:31
Формат Cam - от SnAIper - 03.03.2006, 00:48

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)