• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

Координаты пересечения Ray

Автор Radiant, 10 мая 2009, 13:17:30

« назад - далее »

Radiant

Народ! Помогите пожалуйста.
Не подскажите, реально получить координаты точки пересечения Collision Ray Check с поверхностью другого объекта. Если да, то как это сделать?

Strelets

#1
При помощи Ray Check можно получить координату точки пересечения взгляда камеры с объектом. Если вы это имеете ввиду.

Radiant

Но ведь получаешь 0 или 1 (попал или не попал луч в объект). Но каким образом можно получить координаты точки пересечения (типа Value Vector)?

cashis

Плиз скажите как получить эту еденицу, не могу нигде на форуме найти подобного!!!

Strelets

Ray Check выдает номер объекта с которым происходит пересечение, также к нему можно подключить Value Vector который и будет показывать координату этого пересечения.

cashis

Откуда брать эти две ветки, те что слева ? Можешь описать поподробнее

Denil-Tornado

всвитке Channels что слева. если не знаешь что брать то наведи на ноду CollisionRayCheck на чёрный квадратик, там высветица что этот раздел означает и что подключать.

cashis

#7
Я не тупой, я и так знаю что там высвечивается, но что туда присоединять не понимаю !!!
Я присоединяю вектор позиции и вектор движения камеры к collision ray check и collision object с объектом, и при наведении на объект ничего не меняется, как был ноль так и остался !!!
максимум что я смог получить, что когда я захожу во внутрь объекта ( из-за отсутствии колизии ) я получаю 1 !Как я это получил ХЗ =))))

Strelets

2 cashis на картинку посмотри, там названия всех каналов написаны, собери такие же ветки и будет тебе счастье.
P.S. Исходник не выкладываю т.к. у меня версия 4.2.3 открыть смогут лишь единицы.

cashis

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

cashis

так как сделать так чтобы выдавало 1 только при прямом попадании, а не проходя через любые объекты ?

Strelets

#11
2 cashis Представляю тебе новую более простую схемку. Там в зависимости от количества подключеных коллижинов будет показываться номер пересекаемого. Луч каамеры сожет упираться во все подключеные к Ray Check'у коллижины.
P.S. Надеюсь смог тебе помочь.

cashis

Спасибо я понял, но вроде ещё обязательно надо убирать галочку в CollisionRayCheck !!!

Strelets

Цитата: cashis от 18 мая 2009, 17:28:44
Спасибо я понял, но вроде ещё обязательно надо убирать галочку в CollisionRayCheck !!!
Ну да без галочки побыстрей работает, я ее не убираю.

Radiant

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