[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Panda3D » Общие вопросы » Вопросы
Вопросы
3dmaxДата: Пятница, 24.04.2009, 20:04 | Сообщение # 241
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
а такой вопрос если сделать 8 лучей (по принципу камеры) детектящих преграды, это будет быстрее или медленнее чем использовать сферу ?
Прикрепления: 9755421.jpg (1.8 Kb)
 
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
Кста в том примере, что ты мне помог кусочек кода по проверке колизий есть одна неувязочка, актёр проскакует преграды когда попадает в угол.
Я кое как почти все разобрал в этом кусочке но вот в чем проблема не мойму. Пушер даже лучше работал в этом случае. sad
 
ninthДата: Суббота, 25.04.2009, 04:08 | Сообщение # 246
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Я точно не помню - возможно я там делал обработку только первой коллизии, посмотри, плз.
 
3dmaxДата: Суббота, 25.04.2009, 14:02 | Сообщение # 247
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
хм, а где тут видно что обрабатуеться только 1 колизия question
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
у меня была мысль использовать эту проверку вместе с пушером но ниче не получилось sad
 
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
Попробуй так.
Прикрепления: 11_8.zip (6.2 Kb)
 
3dmaxДата: Понедельник, 27.04.2009, 12:15 | Сообщение # 254
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
eek не знаю как ты это сделал, но ты просто гений !!
Как будто все работает оч хорошо ! biggrin
 
ninthДата: Понедельник, 27.04.2009, 12:41 | Сообщение # 255
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Не всё - в углах всё равно немного колбасится и цеплется + косяки если пытаться запрыгнуть на крышу или на фундамент dry
 
Форум Panda3D - по русски » Panda3D » Общие вопросы » Вопросы
Поиск: