[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум Panda3D - по русски » Panda3D » Для начинающих » камера для космосима
камера для космосима
k0tДата: Пятница, 30.11.2012, 15:14 | Сообщение # 16
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Прикольно
после использования RigidBodyCombiner производительность упала резко )
С 30 фпс до 2х.

ЗЫ, это пока еще нет коллизий.
Судя по всему, надо таки юзать сишный огр или просто не заморачиваться с идее полетать среди кучи астероидов )
Моего скилла пока не хватает, чтобы запрогить игру, где было бы очень большое астероидное поле, минимум оченьоченьмного астероидов.


Сообщение отредактировал k0t - Пятница, 30.11.2012, 15:14
 
ninthДата: Пятница, 30.11.2012, 18:08 | Сообщение # 17
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Хм. Странно. Можешь куда-нить это всё залить?
 
k0tДата: Пятница, 30.11.2012, 18:58 | Сообщение # 18
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Возможно я делаю что-то не так )
Для ригитбоди контейнера удалял еще лоды... Иначе вообще ахтунг. Без лодов где-то 15 фпс, с ними - 2, без контейнера - порядка 30ти фпс.
щас поищу куда можно закинуть... Код ужасный, не пугаться.

Добавлено (30.11.2012, 18:58)
---------------------------------------------
https://docs.google.com/open?id=0Bx9LesYurS4qUG9QdXlMbDhUOWs
должно открыться

управление - мыша, wsad - вверх-низ-лево-право, q-e - вперед-назад.

 
ninthДата: Суббота, 01.12.2012, 16:20 | Сообщение # 19
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
1. Слишком много полигонов в модельках. Лучше значительно снизить их кол-во, а для детализации использовать карты нормалей. Самые дальние вообще заменить спрайтами. То, что сейчас обозначено как far, вполне сойдёт за среднюю или даже ближнюю по дтализации, но тут ещё см. дополнение ниже.
1а. У тебя и мелкие и большие астероиды имеют одинаковое кол-во полигонов, что совсем не гуманно. 3К полигонов на кусочек, который даже рассмотреть трудно. Стоит выделить несколько групп по размерам.
2. Имхо, не оптимальное использование лодов - лоды стоит вешать на отдалённые группы (то, что я говорил - разбивка на сектора), а не на каждый отдельный астероид. Ближние астероиды (с которыми предполагается взаимодействие) придётся оставлять без лодов и без группы.

З.Ы. Нормалмэп у тебя сейчас не работает, хотя текстура есть, т.к. не рассчитан TBS (пространство касательных) при экспорте.
 
k0tДата: Понедельник, 03.12.2012, 12:42 | Сообщение # 20
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
1. Есть версия и с другими модельками, фпс повышается, но не сильно, относительная красивость снижается куда сильнее.
Понятно, что тут работать еще - я не заморачивался с модельками, и для мелких астероидов будет одна модель, для крупных - другая, это естественно.
Насчет карт нормалей - вообще расчет TBS ставил в экспортере (использую твой). Фих знает, почему нету =)

Далее, количество астероидов, которые есть сейчас - на самом деле очень небольшое, и пролетается за секунды. Хочется, конечно, на порядок больше.
Ладно, по факту, я скорее всего такую задачу не потяну =) Либо сильно упадет визуальное качество (а мне хочется хорошую картинку, хотя бы как сейчас, на ноуте двухгодовой свежести), либо тормоза.
А еще хотелось бы коллизии, и, возможно, движущееся астероидное поле - боюсь, там на просчетах все умрет уже, не дойдя до отрисовки )
 
ninthДата: Понедельник, 03.12.2012, 12:47 | Сообщение # 21
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Хм. Ну тут кагбе брать в руки pstats и render.analyze() и оптимизировать, оптимизировать, оптимизировать. С хорошей картинкой у тебя в кадре получалось 1,5 миллиона треугольников, что сильно много. Посмотри на все современные игры - визуализация идёт не за счёт кол-ва полигонов по большей части, а за счёт хороших текстур и шейдеров.

По ТБС - в последних версиях могло что-то сломаться, я его давно не проверял, лучше используй пандовский.
 
k0tДата: Понедельник, 03.12.2012, 12:51 | Сообщение # 22
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Плюс, изначально была вообще идея сделать леталку на двоих (вечером с женой полетать), но тут уже явно не получится )

Добавлено (03.12.2012, 12:51)
---------------------------------------------
Пандовский разве совместим с блендерами > 2.5?

 
ninthДата: Понедельник, 03.12.2012, 13:11 | Сообщение # 23
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Я имел ввиду сам генератор ТБС. При экспорте можно выбрать способ генерации - встроенный в экспортёр или через пандовскую утилиту.

Блин. Заинтриговал. Если время будет - попробую копнуть по оптимизации подобного поля.
 
k0tДата: Понедельник, 03.12.2012, 13:40 | Сообщение # 24
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Ага, интересная задача, правда?
Я как хотел изначально сделать:
Сервак отдельный (у меня старый кор квадро, там сейчас раздача пряников да вебсервак только крутятся), на нем хотел просчет траекторий астероидов сделать и т.д.
Ну и два клиента (ну максимум 4, если друзья) - и большие астероидные поля, в которых сложно летать, еще сложнее сражаться.
Т.к. все планировалось в локалке, сильных проблем с синхронизацией не должно было бы быть

Но все уперлось в отрисовку большого кол-ва объектов )) Я еще попробую поиграться с моделями астероидов, конечно. Но мне не шибко нравится, как выглядит перестроение модели с лодами, хочется красоты и плавности.

зы - использовал пандовский TBS


Сообщение отредактировал k0t - Понедельник, 03.12.2012, 14:06
 
ninthДата: Понедельник, 03.12.2012, 15:04 | Сообщение # 25
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ну вот, для примера астероид накидал. 192 треугольника + нормалмэп
в pview чтобы увидеть эффект надо включить освещение (l) и попиксельное освещение (p)

Прикрепления: asteroid.zip (778.3 Kb) · 4736697.jpg (24.9 Kb)
 
k0tДата: Понедельник, 03.12.2012, 17:21 | Сообщение # 26
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Поразительно, но факт: с этим астероидом фпс еще ниже )))
Видимо, нормалмэп роляет.

Добавлено (03.12.2012, 17:20)
---------------------------------------------
Да, отрубить шейдеры - и 26-30 фпс стабильно даже при всех астероидах в зоне видимости. Но как-то это не то ))

Добавлено (03.12.2012, 17:21)
---------------------------------------------
Хотя астероиды твои ничотак смотрятся, не буду спорить )

 
ninthДата: Вторник, 04.12.2012, 07:31 | Сообщение # 27
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Пропустил я момент что-то. У тебя для всех астероидов задано небольшое вращение - это ~2000 обновлений матриц каждый кадр.
В идеальных условиях - отключил вращение и собрал все астероиды в один меш - у меня вышло в районе 100-110 фпсов при 800К треугольников в кадре.
 
k0tДата: Вторник, 04.12.2012, 08:59 | Сообщение # 28
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Т.е. на производительность сильно влияет вращение, если юзать ригит боди?
Фишка просто в чем, без ригит боди что с вращением, что без него - одна фигня малое фпс.
Можешь выложить код? Либо скинуть на k0t at list.ru
 
ninthДата: Вторник, 04.12.2012, 09:29 | Сообщение # 29
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Скажем так, риджид боди используется как костыль там где куча объектов для которых необходимо оставить возможность манипуляции отдельными кусками. Я использовал более злой подход - натравил flatten. В этом случае теряется возможность рулить отдельными астероидами, но когда поле расположено "где-то там" как бэкграунд, это вроде как и не нужно. И да, оптимальное для производительности кол-во отдельных нодов в сцене <300 поэтому объединение их в единую геометрию даёт такой прирост.

з.ы. flattenStrong потребует доп времени перед запуском
з.з.ы. иногда falttenMedium даёт лучшие результаты чем Strong

з.з.з.ы. Проверял на следующем конфиге: AMD Phenom II x4, ATI Radeon HD4850, 4GB ОЗУ
На старой карточке GF 7300 GS, тем не менее, при 800К треугольников результаты довольно печальны 10-20 фпсов. В общем уменьшение кол-ва поликов всё ещё актуально.
Прикрепления: main.py (13.0 Kb)
 
k0tДата: Вторник, 04.12.2012, 10:55 | Сообщение # 30
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Итого, если воплощать мультиплеер:
1. Отказ от физики астероидов - терпимо, в принципе. Если астероиды статичны (скажем, сделать массу астероидов значительно больше массы кораблей, такое вот поле), то проблемы решаются.
2. Либо немного другой вариант, физику таки реализовать, но передавать данные игроку об астероидах и их положении только той части пояса, где он находится. Как вариант.

Первое, конечно, проще. Будет время на работе/дома - посмотрю твой вариант. smile
 
Форум Panda3D - по русски » Panda3D » Для начинающих » камера для космосима
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: