Выбор луча - получить направление от тангажа и рыскания - PullRequest
0 голосов
/ 21 ноября 2011

Я пытаюсь навести луч из центра экрана и проверить наличие столкновений с объектами.

При рендеринге я использую следующие вызовы для настройки камеры:

GL11.glRotated(mPitch, 1, 0, 0);
GL11.glRotated(mYaw, 0, 1, 0);
GL11.glTranslated(mPositionX, mPositionY, mPositionZ);

Однако у меня проблемы с созданием луча. Вот код, который у меня есть:

ray.origin = new Vector(mPositionX, mPositionY, mPositionZ);
ray.direction = new Vector(?, ?, ?);

Мой вопрос: что я должен поставить в местах с вопросительным знаком? То есть Как я могу создать направление луча от подачи и ролла?

1 Ответ

0 голосов
/ 21 ноября 2011

Я ответил на вопрос, совсем не похожий на ваш, совсем недавно.Поэтому я предлагаю вам прочитать это: 3D-координата от точки и углов

Это относится и к вашему вопросу, только то, что вам нужна не просто точка, а луч.Хорошо, помните, что в качестве точки можно принять вектор смещения от начала координат и что луч определяется как

 r(t) = v*t + s

В вашем случае s - это позиция камеры, а v будетточка относительно положения камеры.Вы понимаете, остальное (или спрашиваете, если все еще неясно).

...