MacTep GLUT Rigid Body

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by MacTep, 1 Feb 2008.

  1. MacTep

    MacTep Elder - Старейшина

    Joined:
    29 May 2006
    Messages:
    317
    Likes Received:
    160
    Reputations:
    35
    MacTep GLUT Rigid Body

    Пока я пытаюсь не уйти в запой, лечу горло и насморк и медленно стараюсь писать статью по шейдерам так, чтоб она была понятна не только мне, выкладываю пример реализации почти полноценной GLUT программы.

    Link to download - _http://slil.ru/25427820

    Учебная реализация простейшей физики твердых тел. Осуществляется просчет действия центральной и угловых сил на объект

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

    его тензор инерции в виде матрицы 3х3. Для простоты и скорости учебного используется объект параллелепипеда.

    Описание системы:
    Операционная система - Windows/Unix(для *nix требуется небольшая правка описания типов и вывода в консоль)
    Графическая платформа - OpenGL Utility Toolkit.
    Тип моделей - OBJ(Maya OBJ files)
    Тип текстур - G24(2 byte - Widht, 2 byte - Heigth, 3 byte per point like BGR)
    Директория с текстурами - texture
    Директория с моделями - ttM
    Конфигурационный файл текстур - textures.dat

    Описание исходников:
    MAIN.CPP - главный файл. Инициализация GLUT, обработка клавиатуры и столкновений
    all.h - подключение всех необходимых файлов заголовков
    rbody.h - класс твердого тела
    matrix.h - класс работы с матрицами 3х3
    maya.h - классы текстуры и Maya OBJ Model
    vmath.h - класс работы с векторами

    Описание интерфейса:

    W - WireFrame
    T - Up
    G - Down
    F - Left
    H - Right
    R - Back
    Y - Forward
    1,2,3,4,5,6 - Rotation
    F2 - Fullscreen
    Z - Default position
    Space - Set null forces
    K - Set bounce to 1
    L - Set bounce to 0

    Сразу прошу прощения за кривой код, мелкие баги и отсутствие комментов. Писалось чисто для себя и под себя. Просто

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

    столкновений для произвольных объектов между собой. А пока вам есть чем поиграться.
    Так что относимся к этому как к pre-alpha. Удачи! :)


    ЗЫ Для тех, кто просто хочет поиграться с программой, не лазая в сорцы лежит glut32.dll, glut.dll и, собственно, сам

    ехе`шник, но т.к. компилил 2005 вижуалкой, для корректной работы требуется пакет системных библиотек от microsoft.

    Берем тут - _http://slil.ru/25427805
     
    4 people like this.