Вопросы
|
|
BVOG | Дата: Пятница, 29.01.2010, 17:06 | Сообщение # 406 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Офицально для этого есть PackPanda. Это статья про неё.
Skype: thebvog
|
|
| |
DroneZzZ | Дата: Воскресенье, 07.02.2010, 20:58 | Сообщение # 407 |
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
| Глупый вопрос, но как можно крутить объект вокруг своей оси? Допустим машина стоит к камере лицом, а нужно сделать так чтобы она повернулась к камере дверьми. Через стандартные myNodePath.set что-то не получается
Сообщение отредактировал DroneZzZ - Воскресенье, 07.02.2010, 21:00 |
|
| |
BVOG | Дата: Понедельник, 08.02.2010, 17:55 | Сообщение # 408 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Через myobject.setHpr( 0, 0, 0 ) должно получаться.
Skype: thebvog
|
|
| |
Dimon3D | Дата: Пятница, 30.07.2010, 15:41 | Сообщение # 409 |
Полковник
Группа: Проверенные
Сообщений: 202
Награды: 1
Репутация: 4
Статус: Offline
| допустим есть класс на основе NodePath: class myNode(NodePath): ...def __init__(self): ......NodePath.__init__(self,'myNode') ......self.reparentTo(render) ......self.t=taskMgr.add(self.Update, 'myNodeTask') ...def Update(self, task): ......self.setH(self.getH()+1) ......return task.cont ...def __del__(self): ......self.t.remove() ......self.removeNode mn=myNode() Почему после вызова del mn объект не удаляется, а продолжает существовать и функционировать как ни в чем не бывало ????
|
|
| |
ninth | Дата: Пятница, 30.07.2010, 16:04 | Сообщение # 410 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Дело в том, что метод __del__ вызывается только тогда, когда на объект не осталось ссылок, а тебя получается, что метод дел не будет вызван т.к. в диспетчере задач висит ссылка, в свою очередь ссылка не будет убита потому что не будет вызван метод дел - порочный круг ) Чтобы его разорвать надо удалять задачу до того ка будет выполнено del mn. Что-нить вроде mn.prepare_del().
|
|
| |
Gogo | Дата: Четверг, 26.08.2010, 18:03 | Сообщение # 411 |
Рядовой
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
| Пытаюсь выводить над головой персонажей текст информирующий о текущем здоровье Code self.labelText = TextNode('label') self.labelText.setText(str(self.hp)) self.labelTextNode = self.root.attachNewNode(self.labelText) self.labelTextNode.setScale(1) self.labelTextNode.setPos(-2,0,3) Но,обнаружил что при повороте камеры или перемещении игрока текст пропадает,я так понимаю текст надо постоянно поворачивать к камере ?! Альтернатив нету?
|
|
| |
ninth | Дата: Четверг, 26.08.2010, 23:52 | Сообщение # 412 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Есть два пути: 1. Если нужно чтобы нод (в твоём случае надпись) болтался в 3D пространстве и был всегда повёрнут к камере используй billboard effect: Code self.labelTextNode.setBillboardPointEye() 2. Можно проецировать позицию нода в экранные координаты и выводить 2д текст в нужном месте.
|
|
| |
Gogo | Дата: Среда, 01.09.2010, 12:27 | Сообщение # 413 |
Рядовой
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
| спасибо. Я сделал что-то на подобии огня (огненного шара и тп) http://3dtutorials.ru/uroki-3d-max/3-realistichnyi-ogon-sredstvami.html,как это можно экспортировать в панду? Просто я где-то читал что панда поддерживает только скелетную анимацию,а как тогда быть со всеми эффектами? Взрывы и прочие катаклизмы. Наверно я где-то туплю,но 3д мир/графика и все что с ней связано для меня покрыто мраком)
|
|
| |
ninth | Дата: Среда, 01.09.2010, 19:51 | Сообщение # 414 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| М.. ты действительно несколько заблуждаешься по поводу эффектов. Посмотри сколько у тебя рендерится пример, который ты привёл в максе и прикинь какие фпс будут в игре, если попробовать это повторить. Поэтому в играх обычно используют фейковые эффекты - например отрендеренные заранее картинки, натянутые на плоскость, системы частиц и пр. подобные вещи.
|
|
| |
Michman | Дата: Среда, 15.09.2010, 18:43 | Сообщение # 415 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Незнаю где здать этот вопрос, а тему создавать глупо. Вобщем, столкнулся с тем, что при перемещении и вращении объектов в сцене изображение слегка подёргивает. Тоже самое при перемещении и вращении камеры. С вертикальной синхронизацией это никак не связано, проверял. FPS нормальный для почти пустой сцены, где всего один шар и плоскость(в сумме полигонов 100 где-то). Код в менеджере задач - пара строк двигающие шар и столько же на камере. Короче, с кодом не связано никак, да и fps приличный. Источник света один Spotlight. Тени не включены. Раньше не обращал внимания, а сейчас немного раздражать начало. И самое интересное в том, что этот глюк исчезает, когда я запускаю параллельно 3ds max 8. Не важно в каком порядке я запускаю max и код. И не важно каким драйвером пользуется max - ogl или dx. Даже при открытом окне Панды, отметив глюк, запускаю max и всё в порядке: все движения в сцене становятся гладкими, без подёргиваний. Дрова на видюхю обновлял до последних, ставил предыдущие версии драйверов, удалял max и снова ставил. Дошло до того, что начал "вырубать" процессы в диспетчере задач винды один за другим, оставив только необходимые системные - думал может какой-то из процессов периодически глушит систему. Проверял антивирусом жесткие диски на наличие заразы - всё чисто. Вообщем, ничего не помогает. Эти подёргивания выглядят так: при движении объекта, скажем по оси X, в течении где-то полсекунды все нормально, далее следует небольшой скачок в сторону движения на некоторое количество единиц координаты и возврат на иходную в данном отрезке времени или на ту позицию(что скорее всего) где объект и должен быть в данном отрезке времени. Или, проще говоря, в определённый промежуток времени, объект нырнув, скажем на 0.01 единиц координаты Х, возвращается на позицию, где он и должен быть по логике и далее плавно продолжает свое движение до следующего скачкА. Периодичность таких скачков где-то 2-3 в секунду, что выглядит как подёргивание. При движении камеры есесно дёргается веся сцена. При вращениях и камеры, и объектов наблюдается таже фигня. Это безобразие было замечено и на ноуте тоже. По большому счёту это не критично, но всё же хотелось бы убрать этот глюк. Кто-нибудь сталкивался с этим? P.s. Настольная система: процессор - CoreDuo 2,66 ГГц видеокарта - ASUS EN8800GTS 512(GeForce) "мать" - ASUS P5K SE чипсет Intel, модель не помню, звук Realtek оператива - 2 Гб жесткий - Barracuda 250 Гб Ноутбук: процессор - Celeron550 2.0 ГГц видео - Mobile Intel® 965 Express Chipset Family оператива - 1 Гб жесткий - Hitachi 120 Гб
|
|
| |
ninth | Дата: Четверг, 16.09.2010, 01:30 | Сообщение # 416 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Было бы хорошо, если бы выложил код. Возможно проблема с приоритетами менеджера задач (пандовского)
|
|
| |
Michman | Дата: Четверг, 16.09.2010, 18:58 | Сообщение # 417 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) Было бы хорошо, если бы выложил код. Возможно проблема с приоритетами менеджера задач (пандовского) Смысла выкладывать код невижу поскольку такая же лажа с примерами идущими с пандой. Например, Tut-Bump-Maping - там летающая сфера, дерга ется сволочь. Воозможно ещё с виндой(Windows XP HE SP2) проблемы, пока не проверял. У меня одна и та же винда стоит и на настольнике, и на ноуте. И как их изменять - приоритеты? Добавлено (16.09.2010, 17:27) --------------------------------------------- Очень странно то, что при запущенном 3ds max всё нормально... Не хочет Панда "дружить" с моей видекартой. Кстати, GLScene прёт без проблем, хотя тоже работает на OGL, и OGRE так же замечательно. Хм, задачка.... Добавлено (16.09.2010, 18:58) --------------------------------------------- Всё, разобрался с проблемой - выбросил свой комп через окно!!! Шутка! В Пандитусционном суде. Судья: - Обвиняемый, под ником Michman, за невнимательноcть в использовании функции OnscreenText приговаривается к более детальному и внимательному изучению методической литературы посвящённой Panda3D. В случае неисполнения приговора - СМЕРТНАЯ КАЗНЬ!!! Michman: - Я не знал, не знал, что может всё так случиться!!! Судья: - Незнание законов Пандовкого Кодекса согласно статьям, изложенным на Panda3D.org.ru и Panda3D.org, не освобождает от ответственности. Дети, не суйте OnscreenText в менеджер задач, а то будет бо-бо. Лучше используйте DirectLabel. Вообщем, мне нужно было без особой мороки с GUI по-быстрому выводить значение координат X, Y, Z перемещаемого обьекта на экран и забыл про эту строку. И чтобы мне её заметить понадоблось несколько часов )))). Не зря разрабы движка предупреждали, что OnscreenText тормознутый.
Сообщение отредактировал Michman - Четверг, 16.09.2010, 19:04 |
|
| |
ninth | Дата: Пятница, 17.09.2010, 00:12 | Сообщение # 418 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Ну вот и слава богу, что разобрался ) Приоритеты выставляются дополнительным ключом примерно так taskMgr.add(myTask, 'myTaskName', priority = 35) По поводу выводить значения координат http://panda3d.org.ru/publ/zametki_na_poljakh/onscreendebug/5-1-0-45 оно конечно тоже на OnscreenText основано, но плюс в том что его можно по желанию отключать.включать не шарясь по всему коду и доступ к нему есть как к глобальной переменной из любого места.
|
|
| |
Michman | Дата: Пятница, 17.09.2010, 15:29 | Сообщение # 419 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) Приоритеты выставляются дополнительным ключом примерно так... Учтемс, спасибо. Quote (ninth) По поводу выводить значения координат... А я и забыл про эту статью, читал ведь. Проблема в том что всё урывками, да урывками осваивать Панду приходится. Отсюда "головоломки" и возникают.
|
|
| |
BVOG | Дата: Пятница, 17.09.2010, 15:53 | Сообщение # 420 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Выводить на экран координаты для отладки - это, конечно, хорошо, но есть предложение: я этим всегда пользуюсь, просто выводи в консоль с помощью print: Code print "X: ",myobject.getX() Если честно: обожаю выводить отладочные данные в консоль.
Skype: thebvog
Сообщение отредактировал BVOG - Пятница, 17.09.2010, 15:54 |
|
| |