Вопросы
|
|
3dmax | Дата: Пятница, 24.04.2009, 20:04 | Сообщение # 241 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| а такой вопрос если сделать 8 лучей (по принципу камеры) детектящих преграды, это будет быстрее или медленнее чем использовать сферу ?
|
|
| |
ninth | Дата: Пятница, 24.04.2009, 20:33 | Сообщение # 242 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Медленнее, т.к. делается 8 проверок - т.е., грубо говоря, придётся перебрать по 8 раз всю сцену. Кстати, для ускорения рассчётов можно исключать из проверки геометрию которая не должна детектиться не только с помощью маски, но и проверяя не всю сцену, а определённый узел - это указывается в traverse(render) - т.е. вместо render можно указать другой узел, например, непосредственно содержащий ландшафт.
|
|
| |
3dmax | Дата: Пятница, 24.04.2009, 20:53 | Сообщение # 243 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| а какой это может быть узел ? Есть ли пример ?
|
|
| |
ninth | Дата: Пятница, 24.04.2009, 23:00 | Сообщение # 244 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| NodePath )) В деццком саду, когда доберусь до управления камерой покажу - буду делать проверку высоты поверхности с помошью коллизий.
|
|
| |
3dmax | Дата: Пятница, 24.04.2009, 23:48 | Сообщение # 245 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| Кста в том примере, что ты мне помог кусочек кода по проверке колизий есть одна неувязочка, актёр проскакует преграды когда попадает в угол. Я кое как почти все разобрал в этом кусочке но вот в чем проблема не мойму. Пушер даже лучше работал в этом случае.
|
|
| |
ninth | Дата: Суббота, 25.04.2009, 04:08 | Сообщение # 246 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Я точно не помню - возможно я там делал обработку только первой коллизии, посмотри, плз.
|
|
| |
3dmax | Дата: Суббота, 25.04.2009, 14:02 | Сообщение # 247 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| хм, а где тут видно что обрабатуеться только 1 колизия Code if (self.envCollision.getNumEntries()>0): self.envCollision.sortEntries() for i in xrange(self.envCollision.getNumEntries()): entry = self.envCollision.getEntry(i) near_point = entry.getSurfacePoint(render) avatar_point=avatar.getPos(render) avatar_point.setZ(avatar_point.getZ()-2) v=Vec3(avatar_point)-Vec3(near_point) v=avatar.getRelativeVector(render,v) if v.length()<=1.5: l=1.5-v.length() v.normalize() v=v*l avatar.setPos(avatar,v)
|
|
| |
3dmax | Дата: Суббота, 25.04.2009, 15:16 | Сообщение # 248 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| И еще вопрос. Можно ли лучше для этих целей использовать ODE ? или ODE более ресурсоемкое ?
|
|
| |
ninth | Дата: Суббота, 25.04.2009, 22:45 | Сообщение # 249 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Нет... обрабатываются все. Возможно нужно вычислить какую-нить общую среднюю точку для всех контактов и отталкиваться от неё. Актёр проходит только если угол острый? или любой угол? Оде будет быстрее работать, но оде не очень стабилен и на разных машинах может себя вести по-разному + иногда возникают какие-то непонятные ошибки при использовании вместо стандартных примитивов мешей произвольной формы.
|
|
| |
3dmax | Дата: Воскресенье, 26.04.2009, 19:10 | Сообщение # 250 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| Актёр проходит тогда когда касаться больше чем 1 поверхность. Вот сам глянь. я все сюда закинул http://www.filehoster.ru/files/cp9419 у меня была мысль использовать эту проверку вместе с пушером но ниче не получилось
|
|
| |
3dmax | Дата: Воскресенье, 26.04.2009, 20:21 | Сообщение # 251 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| Поправка!! с "чистыми" углами вроде нормально, только чуток дрыгаеться а вот если там еще какая нибудь маленькая преграда то все ломаеться. Очень хорошо видно если в угол церкви упереться, то сразу проскакуешь.
|
|
| |
ninth | Дата: Понедельник, 27.04.2009, 02:03 | Сообщение # 252 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| мда, здесь надо почесать репу... оказалось несколько сложнее чем я думал
|
|
| |
ninth | Дата: Понедельник, 27.04.2009, 10:53 | Сообщение # 253 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Попробуй так.
|
|
| |
3dmax | Дата: Понедельник, 27.04.2009, 12:15 | Сообщение # 254 |
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
| не знаю как ты это сделал, но ты просто гений !! Как будто все работает оч хорошо !
|
|
| |
ninth | Дата: Понедельник, 27.04.2009, 12:41 | Сообщение # 255 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Не всё - в углах всё равно немного колбасится и цеплется + косяки если пытаться запрыгнуть на крышу или на фундамент
|
|
| |