Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: Radiant от 10 Мая 2009, 12:17:30



Название: Координаты пересечения Ray
Отправлено: Radiant от 10 Мая 2009, 12:17:30
Народ! Помогите пожалуйста.
Не подскажите, реально получить координаты точки пересечения Collision Ray Check с поверхностью другого объекта. Если да, то как это сделать?


Название: Re: Координаты пересечения Ray
Отправлено: Strelets от 12 Мая 2009, 09:30:17
При помощи Ray Check можно получить координату точки пересечения взгляда камеры с объектом. Если вы это имеете ввиду.


Название: Re: Координаты пересечения Ray
Отправлено: Radiant от 12 Мая 2009, 22:09:19
Но ведь получаешь 0 или 1 (попал или не попал луч в объект). Но каким образом можно получить координаты точки пересечения (типа Value Vector)?


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 12 Мая 2009, 22:36:31
Плиз скажите как получить эту еденицу, не могу нигде на форуме найти подобного!!!


Название: Re: Координаты пересечения Ray
Отправлено: Strelets от 13 Мая 2009, 08:07:09
Ray Check выдает номер объекта с которым происходит пересечение, также к нему можно подключить Value Vector который и будет показывать координату этого пересечения.


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 13 Мая 2009, 13:42:38
Откуда брать эти две ветки, те что слева ? Можешь описать поподробнее


Название: Re: Координаты пересечения Ray
Отправлено: Denil-Tornado от 13 Мая 2009, 14:30:13
всвитке Channels что слева. если не знаешь что брать то наведи на ноду CollisionRayCheck на чёрный квадратик, там высветица что этот раздел означает и что подключать.


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 13 Мая 2009, 14:37:24
Я не тупой, я и так знаю что там высвечивается, но что туда присоединять не понимаю !!!
Я присоединяю вектор позиции и вектор движения камеры к collision ray check и collision object с объектом, и при наведении на объект ничего не меняется, как был ноль так и остался !!!
максимум что я смог получить, что когда я захожу во внутрь объекта ( из-за отсутствии колизии ) я получаю 1 !Как я это получил ХЗ =))))


Название: Re: Координаты пересечения Ray
Отправлено: Strelets от 13 Мая 2009, 14:54:55
2 cashis на картинку посмотри, там названия всех каналов написаны, собери такие же ветки и будет тебе счастье.
P.S. Исходник не выкладываю т.к. у меня версия 4.2.3 открыть смогут лишь единицы.


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 13 Мая 2009, 15:21:42
Я смог сделать определение попадания мышки на объект, я использовал Raycollision as mousecollision detection на страничке: http://support.quest3d.com/index.php?title=CollisionRayCheck  ,но он как и Detect mouse collision бьёт насквозь других объектов, как от этого избавиться ???
я понимаю что можно определить точку пересечения с нужным объектом и мешающим объектом, и если мешающий ближе,то и выдавать будет 0(Хотя и это тоже не вариант, т.к. после получения точки пересечения она остаётся такой пока не получиш новую),но это как-то замудренно, может есть более лёгкий способ ???


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 15 Мая 2009, 14:57:19
так как сделать так чтобы выдавало 1 только при прямом попадании, а не проходя через любые объекты ?


Название: Re: Координаты пересечения Ray
Отправлено: Strelets от 18 Мая 2009, 08:53:54
2 cashis Представляю тебе новую более простую схемку. Там в зависимости от количества подключеных коллижинов будет показываться номер пересекаемого. Луч каамеры сожет упираться во все подключеные к Ray Check'у коллижины.
P.S. Надеюсь смог тебе помочь.


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 18 Мая 2009, 16:28:44
Спасибо я понял, но вроде ещё обязательно надо убирать галочку в CollisionRayCheck !!!


Название: Re: Координаты пересечения Ray
Отправлено: Strelets от 18 Мая 2009, 17:07:00
Спасибо я понял, но вроде ещё обязательно надо убирать галочку в CollisionRayCheck !!!
Ну да без галочки побыстрей работает, я ее не убираю.


Название: Re: Координаты пересечения Ray
Отправлено: Radiant от 21 Мая 2009, 13:31:37
Спасибо большое за помощь, но у меня возник еще один вопрос. Мне бы хотелось сделать луч пересечения с объектами, который выходит из Object Inspection Camera, а направлялся в 3D координаты мыши по XZ. Проблема у меня такая: как создать Movement Vector?
И встречный вопрос - что это за Movement Vector?


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 21 Мая 2009, 13:53:16
Movement vector это нода которая содержит в себе три координаты(XYZ) положения объекта в пространстве. К ноде вектора присоединяются три ноды Value которые и хранят эти три значения !!! У всех объектов в квесте есть movement vector !


Название: Re: Координаты пересечения Ray
Отправлено: Radiant от 21 Мая 2009, 15:55:27
Я вообще то не это имел в виду, а то за что же отвечает дочерний канал Ray Collision Check - Movement Vector (а не обычный Value Vector). И как его реализовать в случае с Object Inspection Camera в направлении 3D координат мыши по XZ? ???


Название: Re: Координаты пересечения Ray
Отправлено: cashis от 21 Мая 2009, 18:24:34
Я отвечал на последний вопрос, в котором ты просил сказать что такое movement vector !


Название: Re: Координаты пересечения Ray
Отправлено: Radiant от 21 Мая 2009, 22:40:32
Да ты не правильно понял - я имел в виду дочерний канал Ray Collision Check.


Название: Re: Координаты пересечения Ray
Отправлено: Strelets от 22 Мая 2009, 09:00:31
2 Radiant
мувемент вектор в рэй чеке есть выходной параметр который показывает координату пересечения чего либо с объектом подключенным к рэю. Схема сборки для вашего случая описана в четвертом посте.


Название: Re: Координаты пересечения Ray
Отправлено: Radiant от 22 Мая 2009, 18:33:46
Спасибо большое! :) Только вот я ничего не пойму как проворачивать операции с матрицами :-[, хотелось бы разобраться. Можно ли это все понять из офф. хелпа или откуда-то еще?


Название: Re: Координаты пересечения Ray
Отправлено: Strelets от 25 Мая 2009, 10:00:55
Я откапал эту схему на офф сайте и немного доработал, с матричными операторами не стал замарачиваться и просто сделал как сказали на офф сайте. Если интересно как они работают читай высшую математику ;) , лично мне лень.
P.S. Совсем забыл сказать, в этой схемке цыфаря 15 это максимальное расстояние от камеры до объекта скоторым мы хотим взаимодействовать в метрах, выставляйте нужное вам значение.