BGE, Python , опыты дилетанта.

Board index Геймдев в Blender Игровой движок Blender

Description: Все вопросы и обсуждения, касающиеся BGE
Moderators: exooman, denis8424

Post #421by Bibo » 12.12.2015, 09:54

Ну так проблема не в производительности, а в подгрузке. FPS проседает в основном только от пыли/дыма/угля, в остальных случаях держится не ниже 30, что является более чем приемлемым результатом. Обработать же добрую сотню материалов, это Сизифов труд.
Может лучше попробовать создать плоскость, подразделить ее на кол-во материалов, каждому квадрату назначить существующий в сцене материал и поставить в начале игры перед камерой, чтобы все это дело разом прогрузилось?
Bibo
Avatar
Posts: 613

Post #422by Mihanik » 12.12.2015, 10:14

Ну да это две разные проблемы, и обе имеют место. Если у тебя 30,у меня 50 это не значит, что у всех так. Желательно чтоб это шло даже на каких нибудь недобуках или древних компах.
Mihanik M
Avatar
Posts: 1571

Post #423by Bibo » 12.12.2015, 10:47

На каких-нибудь древних компах графика соответствующая, с моделями под сотню-другую треугольников и текстурами 256х256 от силы, без каких-либо карт нормалей. А здесь один только инструмент у входа в слесарку на 3 000 треугольников.
Нужно, наверно, определиться, в какие именно требования должна вписываться игра. Если она должна быть совсем легкой, то и из сцены нужно удалить значительную часть декора, а другую упростить. На двух стульях не усидишь.
Bibo
Avatar
Posts: 613

  • 1

Post #424by Mihanik » 12.12.2015, 13:39

Bibo wrote:Нужно, наверно, определиться, в какие именно требования должна вписываться игра.
Bibo wrote:На двух стульях не усидишь.
С этим не поспоришь. Ориентироваться, будем на твой комп, чтоб на нём шло без вопросов, это проще всего. Но лоды я таки посмотрю, надо оценить их эффективность, что на что влияет. и производительность никогда не бывает лишней, если удастся что то сэкономить в этом месте, можно что то добавить в другом, например сейчас в сцене нет динамических теней, или 2D фильтров, а это может серьёзно улучшить картинку.
Bibo wrote:Может лучше попробовать создать плоскость, подразделить ее на кол-во материалов, каждому квадрату назначить существующий в сцене материал и поставить в начале игры перед камерой, чтобы все это дело разом прогрузилось?
И это здравая мысль, ни чего не имею против костылей. Когда достигается нужный результат это уже не костыль, а технология производства;0).
Mihanik M
Avatar
Posts: 1571

  • 1

Post #425by Bibo » 12.12.2015, 19:44

Mihanik wrote:И это здравая мысль, ни чего не имею против костылей. Когда достигается нужный результат это уже не костыль, а технология производства;0).
Словно есть выбор. Либо костыль, либо ничего.

Понятное дело, что это окажется слишком большой работой, вручную создавать объект с сотнями материалов. Поэтому я заглянул в раздел API по части модуля bpy и набросал следующий скрипт: Script.txt.
Открываем этот скрипт в текстовом редакторе блендера (Text->Open Text Block или Alt+O) и жмем Run Script.
Скрипт сгенерирует на 20-м слою сцены, из отдельных плейнов, объект, содержащий все материалы сцены. Каждый поли - свой материал с UV разверткой. Теперь его можно уменьшить и поставить перед камерой в качестве элемента подгрузки материалов:
Spoiler
Image
И все вроде бы должно быть замечательно. И игра дольше гузится и не провисает при первом запуске, только вот при наличии этого объекта в сцене, материалы на основных объектах становятся невидимы:
Spoiler
Image
Это, конечно, лечится, простым удалением этого объекта подгрузки, только почему это происходит?
Last edited by Bibo on 12.12.2015, 20:44, edited 1 time in total.
Bibo
Avatar
Posts: 613

Post #426by Mihanik » 12.12.2015, 20:31

Я сталкивался с похожей невидимостью при импорте моделей из другой сцены, видимо какой то баг, и уже не помню как лечил нето заново переназначал материалы этому объекту, нето переименовывал материалы, или ещё какое несуразное действие.

Added after 21 minute 53 seconds:
Bibo, Вот папка с уменьшенными текстурами, посмотри для сравнения что с качеством и с производительностью.
https://yadi.sk/d/OylbMHQUmBNtC
Mihanik M
Avatar
Posts: 1571

Post #427by Bibo » 12.12.2015, 21:22

Mihanik wrote:Вот папка с уменьшенными текстурами, посмотри для сравнения что с качеством и с производительностью.
Разница в качестве сильно заметна. Символы/тексты да и в целом текстуры заметно размазались, при этом выигрыш составляет от силы 5 кадров, при осмотре всей комнаты из угла. Было 35-37 стало 40-42. Запускается раза в 2 быстрее.

Обновил скрипт создания комплекта материалов, скачай по той же ссылке выше. Баг проявлялся если эти плейны объединять в один объект, по отдельности у меня все в порядке.
Скрипт создает объекты отдельно и объединяет их связью потомок-родитель. Попробуй применить его и поставить перед камерой. После долгой загрузки игры, подгрузка меж комнат, вроде бы, полностью исчезла.
Last edited by Bibo on 12.12.2015, 22:48, edited 1 time in total.
Bibo
Avatar
Posts: 613

Post #428by Mihanik » 12.12.2015, 22:23

Bibo wrote:После долгой загрузки игры, подгрузка меж комнат, вроде бы, полностью исчезла.
Да исчезла. Более того после выхода из комнаты он видимо решил что в оперативе даже больше информации чем нужно и что то убрал правда не факт, что это игровая информация.
Spoiler
Image
Правда уже в основном зале у меня были какие то непонятный заикания, на ракурсах из углов, впрочем как и раньше.

Added after 33 minutes 13 seconds:
И да подтверждаю, при попытке объединить эти квадратики в один меш исчезают объекты пол в слесарке, пол на площадке, и целиндры что на площадке и под ней.
Mihanik M
Avatar
Posts: 1571

Post #429by Mihanik » 13.12.2015, 21:51

Bibo, этот баг с исчезанием объектов распространяется только на объекты с модефикаторами, поприменять их надо , но почему это происходит не знаю.
Mihanik M
Avatar
Posts: 1571

Post #430by Bibo » 14.12.2015, 08:43

По хорошему, нужно применять модификаторы, а еще все в одной сцене быть не должно, она должна быть собрана как конструктор во время загрузки уровня.
В целом, вопрос с подгрузкой решен.

По поводу звука. Скорость работы механизмов зависит от величины давления (всей шкалы). Останавливаются, когда давление достигает отметки в 5 ед. Получается, максимальная скорость работы механизма 100% при полном давлении и 20% к моменту достижения отметки в 5 ед. Если замедлить звук до тех же показателей, он будет похож на невнятный и рвущий уши скрежет из фильма ужасов. Потому хочу предложить сделать короткую, но зацикленную дорожку работы механизмов. Во врем движения, эта дорожка будет постоянно проигрываться, лишь немного меняя свою высоту или громкость в зависимости от уровня давления. Для полноты, организовать звуки начала и конца движения. Итого, звук на всю длинну без искажений.
Bibo
Avatar
Posts: 613

Post #431by Mihanik » 14.12.2015, 09:53

Bibo wrote:Получается, максимальная скорость работы механизма 100% при полном давлении и 20% к моменту достижения отметки в 5 ед. Если замедлить звук до тех же показателей, он будет похож на невнятный и рвущий уши скрежет из фильма ужасов.
А не фиг работать на низком давлении, марш уголь насыпать. :-D
Bibo wrote:Потому хочу предложить сделать короткую, но зацикленную дорожку работы механизмов. Во врем движения, эта дорожка будет постоянно проигрываться, лишь немного меняя свою высоту или громкость в зависимости от уровня давления. Для полноты, организовать звуки начала и конца движения.
Для вентиляции и движения шашек я ещё могу представить такой вариант, а для кран балки чёта нет. Может всё таки можно подправить исходный звук чтобы он получше звучал во всех режимах, ну и громкость уменьшить.
Mihanik M
Avatar
Posts: 1571

Post #432by Bibo » 14.12.2015, 10:08

Mihanik wrote:Для вентиляции и движения шашек я ещё могу представить такой вариант, а для кран балки чёта нет.
У кран балки одна, цельная анимация, но ничего не мешает отслеживать текущий ее кадр и проверять, входит ли он в промежуток, в котором нужно проигрывать соответствующий звук. В крайнем случае, я ее просто порежу на куски.
Bibo
Avatar
Posts: 613

Post #433by Mihanik » 16.12.2015, 17:04

Bibo, Всё таки сделал лоды для материалов, чуда конечно не произошло, однако вроде маленький выигрыш есть, посмотри на производительность. В архиве два бленд файла исходный и с лодами.
https://yadi.sk/d/i7Z5im9qhwb3u
Mihanik M
Avatar
Posts: 1571

Post #434by Bibo » 16.12.2015, 17:21

Как-то разницы и не подметил вовсе. Даже при просмотре котельной с угла, FPS остается прежним в обоих случаях, в районе 37-40. Может только время запуска и выхода из игры увеличилось на несколько секунд (в бленде с лодами), но и это скорее надуманно.
Bibo
Avatar
Posts: 613

Post #435by Mihanik » 16.12.2015, 18:11

Ну тогда и не паримся, не знаю я чего тут можно ещё предпринять.
Переговорил с Димой Филиповым,
http://www.3dmir.ru/profil/user/57358.html#gallery
Получил согласие на использование его работ в качестве картинок по умолчанию.
Spoiler
Image
Image
Image
Image
Image
Mihanik M
Avatar
Posts: 1571

Post #436by Bibo » 16.12.2015, 18:30

Mihanik, по игре все прочие пункты выполнены? Остался только звук и физика персонажа?
Bibo
Avatar
Posts: 613

Post #437by Mihanik » 16.12.2015, 21:29

С самой игрой думаю да. Хотелось бы ещё чтоб у пользователя была возможность, выбрать разрешение, полноэкранный режим, или в окне.
Да собственно все вот эти настройки, включая стерео режим, поддержаны движком.
Spoiler
Image
Хорошо бы что бы и у конечного пользователя нашей игры они были. Я вообще то ожидал что что они по умолчанию прикручины каким то образом к экзешнику. Однако ни чего не нахожу.
Mihanik M
Avatar
Posts: 1571

Post #438by Bibo » 16.12.2015, 22:59

Для этого придется делать отдельное меню. Но даже скриптами настраивается не все из этих параметров. Например я не смог найти в API установку сглаживания.
Так же вопрос, эта игра в принципе ориентирована для игры в окне меньшего размера? В этом есть какой-то смысл? Элементы интерфейса в таком случае будут достаточно хорошо видны? Если ответ нет, то можно оставить птичку установки "Desktop" ("Рабочий стол") и о разрешении вовсе забыть.
Bibo
Avatar
Posts: 613

  • 1

Post #439by СамСуCам » 16.12.2015, 23:29

Bibo wrote:Например я не смог найти в API установку сглаживания.
http://www.blender.org/api/blender_python_api_2_6 ... render.setAnisotropicFiltering

Кстати, можно и настраивать сглаживание текстур, правда, у Mihanika почему то не работает сглаживание :( http://www.blender.org/api/blender_python_api_2_6 ... render.getAnisotropicFiltering
В любой непонятной ситуации спи, кушай и улыбайся. SATtva
Моя галерея Ежедневный конкурс моделирования в Blender
СамСуCам M
то добрый, то злой админ
Avatar
Location: Русь, Китеж
Posts: 3449



Post #440by Mihanik » 17.12.2015, 06:48

СамСуCам wrote:Кстати, можно и настраивать сглаживание текстур, правда, у Mihanika почему то не работает сглаживание
У меня такая штука, оно работает при запуске из под редактора, при автономном запуске, работает со значением 2, и всё. И при сборке в экзешник тоже 2, и всё.
Bibo wrote:Для этого придется делать отдельное меню. Но даже скриптами настраивается не все из этих параметров. Например я не смог найти в API установку сглаживания.
Так же вопрос, эта игра в принципе ориентирована для игры в окне меньшего размера? В этом есть какой-то смысл? Элементы интерфейса в таком случае будут достаточно хорошо видны?
Я думаю оно того стоит. это настройки качества игры, я удивлён что их нет по умолчанию, для любой игры.
То есть предложить пользователю эти возможности, как правило хорошего тона.
(Кстати я тут и в стереорежиме побегал с очками прикольно однако, курсор только далековато получился.)
Mihanik M
Avatar
Posts: 1571

PreviousNext

Return to Игровой движок Blender