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

Newton Physics: различные проблемы и их решения

Автор barmadjar, 23 июля 2009, 13:25:13

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

barmadjar

Всем привет!
Предлагаю такую общую тему, поскольку бывают всякие вопросы, заводить отдельные темы на которые не имеет смысла.

barmadjar

#1
И сразу же 2 вопроса:

1. Столкнуся с такой проблемой: когда задаешь ньютоновскому телу смещение больше 100 по X и Y, перестают действовать команды физики, такие, как Play, Reset и т.п. Почему? И как быть?

2. Почему ньютоновское тело падает только до какой-то определенной координаты по Y (у меня она =-50) и зависает там? Причем когда после этого делаешь Reset, команда Play после этого не срабатывает и приходится перезагружать рабочий файл.

PS: все это наблюдается имено  рабочем файле, в экзешнике не проверял, хотя педполагаю, что там будет такая же история.

Ruslan

Ответ на два вопроса:
Newton Command -> Set World Size(vector min, vector max)
Changes the size of the world. Bodies that move outside of the specified bounding box will be disabled. The world size effects performance so it should not be set any bigger than required.

Children

Bounding Box Minimum Point - Value Vector (-100,-100,-100)
The minimum point of the world bounding box.
Bounding Box Maximum Point - Value Vector (100,100,100)
The maximum point of the world bounding box.

barmadjar

#3
Ruslan
Огромное тебе СПАСИБО!!! ;)
Заработало!!! :D

IDEV

Люди помогите. Можно-ли в Newton заставить отталкиваться тела от поверхности типа Terrain (ландшавта сделанного в максе или другой программе) ??? . Если это возможно, то как?

DimiS

да, можно, для ландшавта используй Newton Collision Tree

barmadjar

Еще одна проблема нарисовалась.
Итак, имеется:
- модель трассы (45км)с развязками;
- упрощенная поверхность с боковыми стенками (что-то вроде желоба), повторяющая все дорожное полотно, полученная путем отдетачивания полигонов дорожного полотна и предназначенная для движения по ней автомобиля. (см. скриншот 1)
Проблема: при движении по этому «желобу» автомобиль ведет себя неадекватно - как будто двигается по искаженной поверхности, то вдруг отрываясь «от земли», то накрениваясь, то залипая в некоторых местах. Долго недоумевал по этому поводу, пока в окошке свойств Newton Body не включил Collision Geometry... Тут мне все стало ясно, но от этого не стало легче. Как видно из скриншота (скриншот 2), Quest создает несколько искаженную (хе, довольно сильно искаженную!) коллизию, чем и объясняется странное поведение автомобиля.
Но как же быть ??? Может кто сталкивался с подобной проблемой? 

IDEV

Я точно не знаю, но на своём опыте видел, что чем больше в полигональном отношении объект, тем сложнее квесту составить качественный физический меш(сетку). Я лично делил объект на части. Если есть другие способы пожалуйста отпишитесь кто-нить.

DimiS

barmadjar я тоже столкнулся с подобной проблемой когда то. Но мы её так и не решили по нормальному, хотя у меня есть идея как надо сделать. Просто я не смог объяснить своему моделеру что от него требуется -- мы могли общятся только на английском и нам обоим это не родной язык, к тому же я не очень владею терминологией.
Смысл таков -- модель для коллизий должна быть односторонней. Вот например примитив куба, если залететь внутрь него камерой, то изнутри он прозрачен, вот стенки у куба -- односторонние. Они состоят из одного слоя полигонов. Вот если этот примитив вытянуть и убрать у него верхнюю, переднюю и заднюю стенки, то получится как раз секция твоего желоба, в суме 6 полигонов. Используя Collision Tree с такой моделью я думаю можно добиться желаемого результата.
Очень хотелось бы узнать что у тебя получится по данной проблеме.

Ruslan

barmadjar
если есть свободное время, выложи упрощенную cgr для наглядности.

barmadjar

#10
DimiS
Мысль понял. Но дело в том, что изначально у меня как раз по такому принципу, как ты говоришь, и был построен желоб. Там как раз я и столкнулся с этой проблемой и только потом придал ему толщину, думая, что дело в этом. Но, как видно проблема не ушла к сожалению. Правда, ты натолкнул меня на мысль - у меня то желоб был без потолка - только пол и стенки, надо попробовать с потолком.

Ruslan
Постараюсь сделать и выложить упрощенку, когда будет свободное время. Сейчас в запарке :) Там помимо этого желоба еще куча работы, а дэдлайн близок :o

PS: Интересный однажды случился глюк - я сделал предположение, что может это из-за того, что у полигонов разные Smoothing Groups, залез сделал всем одну Smoothing Group и импортнул в Квест. И ... о чудо! Машинка поехала без всяких задвигов, четко. Я было обрадовался, но радости моей быстро пришел конец, когда я перезапустил рабочий файл. Все вернулось на круги своя :( Что это было ???
Лучик надежды, который быстро угас...

DimiS

ЦитироватьМысль понял. Но дело в том, что изначально у меня как раз по такому принципу, как ты говоришь, и был построен желоб. Там как раз я и столкнулся с этой проблемой и только потом придал ему толщину, думая, что дело в этом. Но, как видно проблема не ушла к сожалению. Правда, ты натолкнул меня на мысль - у меня то желоб был без потолка - только пол и стенки, надо попробовать с потолком.

хм, жаль, но я бы все равно продолжил развивать мысль в этом направлении. Изучи модельку из квестового экзампла для колижен трии. Я для себя отметил что она собрана из большого количества очень простых сюрфейсов, не сложнее чем просто бокс. Может тебя это натолкнёт на какую-нить мысль ;)

barmadjar

DimiS
Боюсь, что именно так и придется поступить.
Боюсь, потому что я просто офигею этим заниматься, поскольку как я сказал это 45 км трассы, которая мало того, что не по прямой, так еще и по высотам гуляет, да еще несколько более менее сложных развязок и какие-то ответвления  :o

barmadjar

Итак, попробовал разбить на более простые составляющие (но не совсем элементарные). Ситуация улучшилась, но в некоторых местах геометрия коллизии все равно осталась некорректной. Таким образом, вывод не очень утешительный - чтобы получить адекватную коллизию, надо разбить ее чуть ли не на элементарные составляющие, как и говорил DimiS.
Это ппц, друзья мои :o Это очень грустно...

Den_ya

в 3d max можно разбить любую геометрию за несколько секунд
например editable poly\vertex\ctrl+a(выделить все вершины)
дальше break