![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
|
Есть две точки, мне нужно пустить луч и узнать что находиться на его пути.
Есть http://vorodis2.com/test/raytest/ Исходник http://vorodis2.com/test/raytest/RayAway.rar Проблема в //Что за параметры. строка 227 var v0:Vector3D = new Vector3D(-500,0,-500); var v1:Vector3D = new Vector3D(+500,0,-500); var v2:Vector3D = new Vector3D( +500, 0, +500); var ins:Vector3D = ray.getRayToTriangleIntersection(_p0, _p1, v0, v1, v2); // ins Всегда null даже когда визуально он перекисает Mesh |
|
|||||
|
Должно быть
_p0 - начало луча _p1 - конец луча v0, v1, v2 - это вершины треугольника и если луч пересечет треугольнак, то появится точка пересечения vorodis2, исодник смотрел можно так private function testRayDinam():void { var ray:Ray = new Ray(); //Что за параметры. var v0:Vector3D = new Vector3D(-500,0,-500); var v1:Vector3D = new Vector3D(+500,0,-500); var v2:Vector3D = new Vector3D( +500, 0, +500); var ins:Vector3D = ray.getRayToSphereIntersection(_p0, _p1, _cube.position,50) //getRayToTriangleIntersection(_p0, _p1, v0, v1, v2); if (ins) { oc.getChildAt(0).x = ins.x; oc.getChildAt(0).y = ins.y; oc.getChildAt(0).z = ins.z; oc.getChildAt(0).visible = true; }else { oc.getChildAt(0).visible = false; } } Очевидно, что-бы получить таким образом пересечение луча и модели нужно проверять все полигоны в модели на предмет пересечения с лучем.
__________________
Гоночка |
|
|||||
|
Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
|
Я и сам начел догадываться что это за v0, v1, v2 но до Вашего поста отказывался в это верить))). Получается мне для обнаружения точки пересечения нужно перебрать весь массив треугольников. Может есть уже реализованный данный метод, так как есть же луч от курсора, может где то его можно найти, что бы свои грабли не городить??????
На счет getRayToSphereIntersection спасибо, но мне увы он не нужен, у меня сложные модели, это я так для тестирования. |
|
|||||
|
Цитата:
Если это персонаж, я бы сделал куб для туловища и куб для головы, пользователь ведь не изверг зачем ему калечить модели. А даже если он каким-то чудом отстрелит модели ногу к примеру, то что потом делать с моделью - она должна будет ползти что-ли?
__________________
Гоночка |
|
|||||
|
Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
|
Не у меня другая ситуация. У меня есть N (около 200) моделей 10-500 тысяч пол., и есть задача разработать метод наполнения любой из них мелкими примитивами, то есть если примитив находиться в нутри модели он существует, ну и у меня на вскидку их там 100-200 и это по всем треугольникам из модели))), временем расчета можно, относительно пренебречь, но что то мне подсказывает что если это будет сек 5, это будет чудо)))))
Может подскажете где можно нарыть обкатанный класс, для перебора Ray по вершинам? |
|
|||||
|
Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
|
Сделал.
http://vorodis2.com/test/rayAway/ Вдруг кому пригодиться. Там есть еще генерация меша из кусков другова меша. http://vorodis2.com/test/rayAway/RayAway.rar |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|