Всякие вопросы

Главная Форумы Blender Game Engine (BGE) Всякие вопросы

Просмотр 15 сообщений - с 16 по 30 (из 90 всего)
  • Автор
    Сообщения
  • #5136
    RadarokRadarok
    Участник

    После сборки игры в exe, игра от запуска к запуску подтормаживает. Сказывается это торможение на вращение камеры, скорость которой падает вдвое, а иногда может и запинаться. Данный эффект проходит через какое-то время, но хотелось бы узнать природу этой причуды и как с ней бороться.

    #5137
    Артем СлакваАртем Слаква
    Хранитель

    Возможно банальная подгрузка игры в память? Помню в далеком 2003 я с жуткими тормозами проезжал круг в NFS Underground, затем рестарт и все плавненько (было 32 метра на карточке).

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

    #5138
    RadarokRadarok
    Участник

    Это первое что приходит в голову. Но как тогда проследить полноценную инициализацию игры?
    Давал exe паре товарищей, с более сильным железом, так они и вовсе не увидели каких-то различий от запуску к запуску. И сам этот момент, что подтормаживает не всегда, очень смущает. Не говоря о том, что сама тестовая сцена очень скромная, в 12 000 треугольников, тремя источниками света, двумя текстурами и всего-лишь двумя скриптами(полет камеры).

    #5139
    RadarokRadarok
    Участник

    Похоже ответ найден.
    Во вкладке Render, свитка Standalone Player, устанавливаем значение Refresh Rate на 75.
    Во вкладке World, свитка Phisics, значение FPS устанавливаем 50.
    Так же, посоветовали закрыть камеру и прокрутить ее на все 360, в качестве своеобразного прелоада. Но обошлось без этого.

    #5142
    Артем СлакваАртем Слаква
    Хранитель

    Мои тесты показывают, что достаточно на вкладке мира установить FPS: 50 и рывки пропадают. А на вкладке рендера что 60, что 100 – одинаково.

    #5143
    RadarokRadarok
    Участник

    Ох… С вами снова Я.
    Теперь пришло время сражения на фронте материалов. Как мне именно скриптом изменить цвет объекта? Или вернее, где копать?
    Изучив документацию и множество классов/подклассов посредством функции dir(), пришел к цепочке:
    KX_GameObject -> KX_MeshProxy -> KX_VertexProxy
    Последний имеет атрибут color[r, g, b, a] и метод setRGBA(). В каких-то других местах, возможности работы с RGBA, я не нашел, в том числе в подклассе KX_BlenderMaterial, который есть наследник KX_MeshProxy. Однако изменение параметров атрибута color, или использование setRGBA(), не дают никаких результатов, как и не выдают истинный цвет, назначенного им материала.
    В разного рода поисках, начала закрадываться неутешительная мысль, что это уже начинается работа с шейдерами. Однако моего языкового могущества, недостаточно, чтобы полноценно вникнуть в вопрос, например здесь.

    #5144
    RadarokRadarok
    Участник
    #5145
    Артем СлакваАртем Слаква
    Хранитель

    Простое изменение цвет в окне Info говорит следующее:
    bpy.context.object.active_material.diffuse_color = (0.8, 0.8, 0.8)

    #5146
    RadarokRadarok
    Участник

    Здорово. Только подобное изменяет цвет объекта в самом блендере, а не в процессе игры. То есть, цвет будет изменен после выхода из игры, в настройках материала. Тоже самое произойдет если работать с альфа-каналом через bpy модуль.

    #5147
    Артем СлакваАртем Слаква
    Хранитель

    Говорят люди работает через смену цвета вершин:

    import GameLogic
           co = GameLogic.getCurrentController()
           obj = co.owner
           m_i = 0
           mesh = obj.getMesh(m_i)
           while mesh != None:
                   for mat in range(mesh.getNumMaterials()):
                           for v_index in range(mesh.getVertexArrayLength(mat)):
                                   vertex = mesh.getVertex(mat, v_index)
                                   vertex.colour = [1.0, 0.0, 0.0, 1.0]
                   m_i += 1
                   mesh = obj.getMesh(m_i)
    #5148
    RadarokRadarok
    Участник

    Неправду говорят люди. Да и к чему я тогда текст выше расписал, об атрибутах класса KX_VertexProxy.
    Вернее помогает, однако только в режиме шейдинга Multitexture. И то, не совсем верно, так как альфа не регулируется. Она либо есть, в этом режиме, либо ее нет, т.е. объект становится полностью прозрачным, если сместить альфу хоть на сколько меньше единицы.
    https://docs.google.com/file/d/0ByE-x_kxGr3SNjZqVWhrUTBqSjQ/edit
    Ссылка, по которой можно загрузить blend-файл с тестовой сценой. В окно консоли будет выведен результат работы с атрибутом color. Для запуска процесса смены цвета – пробел. Меняем GLSL на Multitexture для убедительности.

    #5162
    RadarokRadarok
    Участник

    Таки форум снова доступен.
    Вопрос был решен простой установкой галочки возле Object color в материале объекта. В последствие, изменение цвета и альфы объекта происходит через его атрибут color.
    Например:

    Obj = bge.logic.getCurrentController().owner
    Obj.color[3] = 0.2
    

    Извиняюсь за кипишь. Впредь буду внимательнее.

    #5163
    Артем СлакваАртем Слаква
    Хранитель

    Да, после обновления WordPress слетел форум (знать бы че). Пришлось обновиться.

    Что проблема решена – это хорошо. Не стесняйся обращаться в будущем.

    #5829
    sochimtbsochimtb
    Участник

    А не подскажите. У меня в BGE вечной альфа текстуры сливаются. Как сделать что б они как обычные текстуры отображались?

    #5830
    Артем СлакваАртем Слаква
    Хранитель

    У меня в BGE вечной альфа
    текстуры сливаются

    Честно, не понимаю что это. Покажи скрин или напиши без ошибок. Что за вечная текстура… вечнО, наверное?

Просмотр 15 сообщений - с 16 по 30 (из 90 всего)
  • Форум «Blender Game Engine (BGE)» закрыт для новых тем и ответов.

О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:

Email:
info@blender3d.com.ua

Следите за нами

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.