Game Engine improvements

Материал из Blender3D.

Перейти к: навигация, поиск

патч 8235 8218 8211 Добавлены: различные улучшения игрового движка, фиксирование окон файлов проекта

Содержание

2D Фильтры

Этот новый привод применяет графические фильтры, как размытие движения, размывание, обнаружение кромки Собел и многие другие фильтры на окончательном рендере. Пользовательские фильтры 2D дают вам возможность определить свой собственный 2d фильтр, используя GLSL. Его использование является тем же самым как и встроенные фильтры, но вы должны выбрать "Custom Filter" (Пользовательский фильтр) в приводе 2D Фильтра, а затем написать программу шейдера в текстовый редактор и поместить имя скрипта шейдера на привод.

2D Фильтры: Motion Blur (Размытие движения)
Увеличить
2D Фильтры: Motion Blur (Размытие движения)
2D Фильтры: Sepia (Сепиа)
Увеличить
2D Фильтры: Sepia (Сепиа)
2D Фильтры: Sobel (Собел)
Увеличить
2D Фильтры: Sobel (Собел)
2D Фильтры: Blur (Размывание)
Увеличить
2D Фильтры: Blur (Размывание)
2D Фильтры: Dilation (Расширение)
Увеличить
2D Фильтры: Dilation (Расширение)

Delta Loc/Rot/Scale Ipo

Delta Loc/Rot/Scale Ipo кривая теперь поддерживается в BGE со следующими ограничениями: 1. Все Ipo каналы в настоящее время независимые. В Blender 2.45, все 3 Loc Ipo канала автоматически настраивались вместе. Например, наличие только LocX Ipo канала было достаточно, чтобы установить X, Y и Z координаты, со значениями Y и Z, взятыми из оригинального местоположения объекта в Blender. То же самое относится к 3 Rot и 3 Scale Ipo каналам: недостающие каналы брали значение из первоначальной ориентации/масштаба объекта в Blender. С помощью этого патча, все Ipo каналы в настоящее время независимы. Это создаст проблему обратной совместимости, если вы не упоминаете в определении 3 канала одного типа вместе, в вашем Blend файле: Delta Loc, Rot, Scale координаты объекта будут зависеть от родителя/источника Loc/Rot/Scale в случае если объект потомок или создан динамически.

2. Delta Loc, Rot, Scale в настоящее время поддерживается следующими ограничениями: Delta Loc/Rot Ipo изменяет объект глобально (НЕ локально) местоположение /ориентация delta Scale изменяет локальный масштаб объекта delta Ipo кривые относительно старта объекта

Когда сначала активирована Loc/Rot/Scale Ipo; после этого, delta Ipo становится глобальной. Это означает, что объект возвращается к первоначальным Loc/Rot/Scale, когда вы затем перезапустите Ipo кривую, даже если у вас в это время у объекта изменились Loc/Rot/Scale. Конечно, это относится только к конкретным координатам Loc/Rot/Scale, которые определены в Ipo каналах, поскольку каналы теперь независимы.

3. Когда объекты преобразуются из Blender в BGE, delta Loc/Rot/Scale, которые могут возникнуть в результате первоначального ненулевого значения в delta Ipo кривых, будут игнорироваться. Однако, как только delta Ipo кривая активируется, ненулевые значения будут приняты во внимание и объект переместиться к тому же положению Loc/Rot/Scale, как и в Blender. Заметим, что delta Ipo кривые с начальными ненулевых значений это плохая практика; так как логичнее, delta Ipo кривая всегда должна начинаться с 0.

4. Если Вы определите и глобальный канал и канал дельты того же самого типа (LocX и DLocX), то результатом будет глобальный канал, эквивалентный сумме этих двух каналов (LocX DLocX).

rayCastTo

Новый Python метод rayCastTo () для KX_GameObject: rayCastTo(other,dist,prop) Рассматривает другой point/KX_GameObject и возвращает первый объект с dist и свойством соответствующему prop, None, если объект не найден или если он не совпадает с prop. Параметры: other = 3-записи (xyz координат) или ссылка на объект (target=center of object) [цель=центр объекта]

       (type = list [x,y,z] или ссылка на объект)

dist = максимальное расстояние обнаружения (может быть отрицательным => взгляд сзади)

       Если 0 или опущен => обнаруживать любой объект 

(type=float) [тип = плавающей точкой]

prop = название свойства которое должен иметь объект

       Если пустой или опущен => обнаруживать любой объект 
       (type=string) [тип=строка] 

ускорения

Этот патч изменяет метод BL_ConvertMesh из модуля преобразования данных, так чтобы уменьшить количество полигонов материальных объектов, которые будут созданы.


Как правило, там должен быть только один материальный объект для каждой корзины материала (группа мешей, которые рендерятся вместе с одним материалом). Тем не менее, ряд материалов, которые сейчас создаются конвертируются намного дольше, и потребляют много памяти в сценах с большим количеством полигонов. Этот патч удаляет эти материальные объекты (KX_BlenderMaterial), которые лишь временно используются в конвертере (и в настоящее время удаляются только тогда, когда конвертер разрушен, в конце игры).


Для куба, который подразделяется 7 раз (более 90 000 полигонов) я получаю 200 Мб использования в игровом движке в 2.45 и 44 MB с svn билдом и применением этого патча, если опция "Use Blender Materials" (Использование материалов Blender) включена в меню игры.

Замена меша в BGE будет реагировать надлежащим образом при деформировании арматуры

Изменение меша объекта, который имеет контроллеры деформации (арматура) в настоящее время происходит надлежащим образом. Новый меш должен иметь соответствующие группы вершин костей арматуры. Простыми словами, новый меш должен деформироваться правильно, когда вы назначаете его на объект в Blender, и вы тестируете действия. Он будет деформироваться так же, когда вы измените объект меша во время игры.

Включение отрицательной оси датчика радара

Включение отрицательной оси датчика радара

Реалтайм функция SetParent в BGE

Этот патч включен в новые KX_GameObject::SetParent () и KX_GameObject::RemoveParent() функции по созданию и уничтожению родительской связи во время игры. Эти функции доступны через python и с помощью нового привода KX_ParentActuator. Документация функции в PyDoc. Объект сохраняет свою ориентацию, позицию и масштаб, когда он связан с родителем, но будет способствовать дальнейшему вращению, перемещению и масштабированию его родителей от этого момента. Когда родительская связь нарушена, объект сохраняет ориентацию, позицию и масштаб существующие в это время. Функция не действует, если любой из X/Y/Z масштаб объекта или его новых родителей ниже Epsilon.

Клавиша ESC

Сейчас ESC выходит из игры по умолчанию во всех режимах, если клавиатурный датчик настроет на ESC. В этом случае дизайнер игры должен обеспечить другой способ выйти из игры.

getLinearVelocity

getLinearVelocity () теперь может обеспечить и локальную скорость тоже.

Личные инструменты