Вторник, 12.12.2017, 09:22
Поиск
Никнэйм
Сертификат на никнейм Olelucoye, зарегистрирован на Тимофеев Константин Михайлович
Зарегистрируй свой никнейм
Обратная связь
olelucoye.tk@yandex.ru
Реклама AdSense
Реклама
Друзья сайта
  • Лига медицинского права
  • Гостиница "Зай"
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » libGDX

    libGDX. Формы столкновений.

    libGDX. Формы столкновений.

    Модель является множеством треугольников с некоторыми свойствами, с которыми производятся некоторые трансформации. Она оптимизирована для рендеринга, а не для физики. Поэтому модель редко бывает полезной для обработки физики объектов.

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

    Поэтому для физического представления моделей используются формы столкновений. Bullet предоставляет несколько разнообразных способов создания форм от использования примитивов до повторения вершин визуального представления модели

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

    Для случая статической модели Bullet предлагает удобный способ создания формы столкновений:

    btCollisionShape shape = Bullet.obtainStaticNodeShape(model.nodes);

    При этом все вершины формы столкновений будут повторять вершины модели.

    Персонажи почти всегда являются выпуклым мешем, поэтому для них используется btConvexHullShape. Для создания такой формы можно использовать данные из меша модели.

    Mesh mesh = model.meshes.get(0);
    btConvexHullShape shape = new btConvexHullShape(mesh.getVerticesBuffer(), mesh.getNumVertices(), mesh.getVertexSize()); 

    На просторах интернета предлагается использовать такой метод для создания btConvexHull:

       public static btConvexHullShape createConvexHullShape (final Model model, boolean optimize) {
            final Mesh mesh = model.meshes.get(0);
            final btConvexHullShape shape = new btConvexHullShape(mesh.getVerticesBuffer(), mesh.getNumVertices(), mesh.getVertexSize());
            if (!optimize) return shape;
            // оптимизация формы
            final btShapeHull hull = new btShapeHull(shape);
            hull.buildHull(shape.getMargin());
            final btConvexHullShape result = new btConvexHullShape(hull);
            // удаление вспомогательных форм
            shape.dispose();
            hull.dispose();
            return result;
        }

    С помощью этого метода можно создать оптимизированную форму столкновений. Это достигается упрощением формы столкновений с использованием промежуточного класса btShapeHull.

    libGDX. Bullet. Динамика твердого тела. Часть 2.
    libGDX. Bullet. Динамика твердого тела.
    libGDX. Обработка столкновений. Библиотека Bullet. Часть 3.
    libGDX. Обработка столкновений. Библиотека Bullet. Часть 2.
    libGDX. Обработка столкновений. Библиотека Bullet.
    libGDX. Интерактивное взаимодействие с 3D объектами.
    libGDX. Отбраковка объектов не попадающих в обзор камеры.
    3D модель  для libGDX. Пишем код.
    3D модель для движка libGDX
    Строим модель с помощью ModelBuilder
    libGDX. Основы 3D программирования.
    Игра Flower. Ловим капли.
    TexturePacker.Создаем атлас текстур.
    Создаем проект на движке libGDX
    Диктофон с дизайном под металл
    Кастомизация EditText
    Кастомизация SeekBar'а
    9-patch изображения для Андроид
    Кастомный ползунок в виде дуги (аналог SeekBar)
    Анимация в Андроид
    Кастомизация элементов управления в Android
    Создание кастомного View-элемента интерфейса.
    Создание виджета - электронные часы с кастомным шрифтом
    Программируем калькулятор на андроид. Урок 1.

    Категория: libGDX | Добавил: Olelucoye (23.05.2015)
    Просмотров: 1614
    | Теги: Collision Shape, формы столкновений, btConvexHullShape, 3D, libGDX | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Меню сайта
    Категории раздела
    Андроид разработка [23]
    libGDX [24]
    Мои андроид проекты [6]
    Excel [7]
    Железяки [5]
    Скрипты в блокноте [4]
    Разное [1]
    Форма входа
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Яндекс Метрика
    Яндекс.Метрика