[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Panda3D » Общие вопросы » Вопросы
Вопросы
ninthДата: Четверг, 02.04.2009, 17:35 | Сообщение # 211
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Я на форуме где-то уже разъяснял, поищи, а то лень заново писать )

Пушер - тип коллижн хэндлера. Ты как столкновение со стеной определяешь?

 
3dmaxДата: Четверг, 02.04.2009, 18:28 | Сообщение # 212
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
сферой определяю:
Code

             cn = CollisionNode('')            
             cn.addSolid(CollisionSphere(0,0,-2,1.5))
             solid = avatar.attachNewNode(cn)
             self.pusher = CollisionHandlerPusher()         
             base.cTrav.addCollider(solid,self.pusher)
             self.pusher.addCollider(solid,avatar, base.drive.node())

судя по последней строке использую пушер.
И как мне сделать невидимые стенки двусторонними ?
Можно ли упростить (меньше граней) сферу или вообще вместо нее кубик или цилиндр использовать?
 
3dmaxДата: Четверг, 02.04.2009, 18:33 | Сообщение # 213
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
и еще вопрос не по теме, как правильно пользоваться поиском а то я ввожу в поле поиска setFromCollideMask
и оно не находит ничего, пишет что .... тем не обнаружено. А мне темы не нужны,я хочу сообщения.
 
ninthДата: Четверг, 02.04.2009, 19:15 | Сообщение # 214
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Юкозовский поиск кривой dry - экономят ресурсы системы, поэтому ищут только по названиям. Юзай гугл примерно так setIntoCollideMask site:panda3d.org.ru
Вот тема в которой обсуждалось http://panda3d.org.ru/forum/5-13-1

Для пушера придётся делать два бордюра, т.к. он ориентируется на нормаль поверхности с которой коллидится, а нормаль может быть только одна, поэтому делай дубликат бордюра и инвертируй нормали

 
3dmaxДата: Четверг, 02.04.2009, 20:11 | Сообщение # 215
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
1.а что надо использовать вместо пушера чтобы ориентироваться не на нормали ?
2.Можно ли упростить (меньше граней) сферу или вообще вместо нее кубик или цилиндр использовать?
 
ninthДата: Четверг, 02.04.2009, 21:26 | Сообщение # 216
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Можно использовать другие типы - обработка вручную или событийный (тоже обрабатывать столкновения вручную придётся), однако, ИМХО, проще сделать дубликат бордюра с инверсией нормалей.
Сфера математическая, в ней грани отсутствуют - самый простой объект для проверки.
Вообще типы - сфера, туба, плоскость, полигон, луч, прямая, отрезок

з.ы попробуй для всех своих статических объектов поставить setFromCollideMask(BitMask32.allOff())

 
BlackCatДата: Четверг, 02.04.2009, 23:07 | Сообщение # 217
Подполковник
Группа: Проверенные
Сообщений: 144
Награды: 0
Репутация: 1
Статус: Offline
А по-моему еще стоит сделать следующее. Это мною в своё время было почерпано с гейм-дев-ру.
Таки вместо того, чтобы коллидить САМ забор стоит коллидить прозрачную плоскость из двух полигонов, стоящую посреди забора. Т.е. коллид просчитывается только для 2-х полигонов, а не для целой пачки. А чтобы с двух сторон - так ить две плоскости поставить с разнонаправленными нормалями. Но такое прокатывает только если нет желания разрушать забор. Зато работает быстро и качественно.
Либо коллидить только часть забора. Например верхнюю балку. При этом забор должен быть таким, чтобы перс не мог под него подлезть. Тогда тоже станет быстрее. Но через забор при этом можно будет нормально перепрыгнуть.


http://alphahole.do.am - версия 0.015 вышла 22.02.10
 
3dmaxДата: Четверг, 02.04.2009, 23:16 | Сообщение # 218
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
Да BlackCat, это все уже было сказано раньше, я так уже делаю, канех хотелось чтобы было как в продвинутых движках сами объекты и были баундами (колизиями)
ninth, а куда ты говоришь поставить setFromCollideMask(BitMask32.allOff()) ??
куда то в эти строчки ?
Code

##### Сфера
             cn = CollisionNode('')            
             cn.addSolid(CollisionSphere(0,0,-2,1.5))
             solid = avatar.attachNewNode(cn)             
             self.pusher = CollisionHandlerPusher()         
             base.cTrav.addCollider(solid,self.pusher)
             self.pusher.addCollider(solid,avatar, base.drive.node())
 
BlackCatДата: Пятница, 03.04.2009, 01:40 | Сообщение # 219
Подполковник
Группа: Проверенные
Сообщений: 144
Награды: 0
Репутация: 1
Статус: Offline
У-у-у-у. Это ж ресурсы дюже приличные нужны на такое дело. Всякие там физические сопроцессоры и подобные приблуды от Интела и Нвидии.

http://alphahole.do.am - версия 0.015 вышла 22.02.10
 
3dmaxДата: Пятница, 03.04.2009, 03:32 | Сообщение # 220
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
вопрос тот что выше все еще актуален.
И вот кое что еще, я сделал копию невидимого забора, инвертировал нормали, и должно было бы сработать, НО аблом angry , Теперь герой как проскальзует сквозь забор в обе сороны, вместо того чтобы запереть проход с обеих сторон эта невидимая штука начала пропускать с 2х сторон angry . А иногда если осторожненько подойти к забору -застряешь на середине и скочишь как тушканчик взад-вперед.
Ток не говорите что теперь мне надо отодвинуть полигоны в стороны нормалей. мне это нравиться все меньше и меньше dry
 
BlackCatДата: Пятница, 03.04.2009, 05:08 | Сообщение # 221
Подполковник
Группа: Проверенные
Сообщений: 144
Награды: 0
Репутация: 1
Статус: Offline
Наверное с инвертированием нормалей глюки.

http://alphahole.do.am - версия 0.015 вышла 22.02.10
 
ninthДата: Пятница, 03.04.2009, 21:19 | Сообщение # 222
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Соррь, фигню сморозил по поводу setFromCollideMask... на обычную геометрию она и так не применится...
Мда... проблемка... похоже просто успевают задетектиться оба бордюра, поэтому такой косяк выходит. Если можешь, скинь всё вместе с уровнем и одиночным барьером попробую глянуть.
 
3dmaxДата: Суббота, 04.04.2009, 08:05 | Сообщение # 223
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
вот земля с забором и одиночным барьером.
Прикрепления: Poligon_Exp_5_.rar (327.8 Kb)
 
ninthДата: Суббота, 04.04.2009, 19:27 | Сообщение # 224
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Эм, а код? Я же хотел посмотреть как у тебя обрабатываются коллизии... Если хочешь, то на мыл ruPanda3d собака гмайл ком
 
3dmaxДата: Суббота, 04.04.2009, 20:40 | Сообщение # 225
Генерал-майор
Группа: Проверенные
Сообщений: 334
Награды: 0
Репутация: 1
Статус: Offline
все письмо отправил
 
Форум Panda3D - по русски » Panda3D » Общие вопросы » Вопросы
Поиск: