SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Моделирование физики в
компьютерных играх,
приложениях виртуальной
реальности и тренажерах



        Андрей Морозов, СимЭкс


          CS Клуб, май 2012
План

    О чем речь?
    История
    Современная наука
    Современное решение
    Проекты и люди
    Заключение



22.05.2012                2
О чем речь?

    Компьютерные игры
    Кино




             Рис. 1. Columbia Pictures, 2012

22.05.2012                                     3
О чем речь? (2)

    Тренажеры
    Виртуальная реальность




   Рис. 2. Transas, Шлюпбалка   Рис. 3. Dynamica, Вертолет

22.05.2012                                                   4
Объекты моделирования

    Твердые тела
    Ограничения
      Шарниры
      Связи
      Пружины и
    демпферы
      Моторы

                   Рис. 4. Weinstein


22.05.2012                             5
Объекты моделирования (2)

    Деформируемые тела
    Ткани
    Веревки
    Волосы




                         Рис. 5. Fedkiw


22.05.2012                                6
Объекты моделирования (3)

    Разрушаемые тела
    Жидкости и газы




             Рис. 6. Fedkiw   Рис. 7. Fedkiw

22.05.2012                                     7
Исторические вехи

    Основы механики
        Коперник, Галилей, Ньютон – 14-16 века
    Первые публикации
        Верещагин – 1974
        Featherstone – 1983
    Первое упоминание дисциплины
        Alan Barr – 1987, “Topics in physically-based
        modelling”, SIGGRAPH


22.05.2012                                              8
Основы механики. Ньютон




22.05.2012                9
Основы механики. Трение




               Рис. 8. Van den Bergen

22.05.2012                              10
Основы механики. Ударный
контакт




             Рис. 9. Mirtich, Canny


22.05.2012                            11
Основы механики. Контакт
покоя
    В пределах точности тела не двигаются




                   Рис. 10.
                   Erleben


22.05.2012                                  12
Основы механики. Связи




                   Рис. 11. Erleben

22.05.2012                            13
Основы механики. Пружины




               Рис. 12. Catto




22.05.2012                      14
Физическое моделирование.
  Алгоритмы
                                      Физическое
                                     моделирование


               Ограничения                                           Контакт


 Сокращенные                    Полные
                                                          Импульсы             Штрафы
  координаты                  координаты
Верещагин - 74                                     Mirtich - 96           Moore, Williams
Featherstone - 83           Задача о               Guendelmann - 03       Hasegawa, Sato - 04
                        дополнительности           Catto - 05


               В терминах                  В терминах
               ускорений                   скоростей
                Witkin - 88                Stewart - 97
                Baraff - 96                Trinkle - 97


  22.05.2012                                                                              15
Физическое моделирование.
Алгоритмы (2)
                               Физическое
                              моделирование




         Деформации и
                                Разрушения                    Жидкости
            ткани
       Baraff, Witkin - 88   Baraff, Witkin, Smith – 01   Fedkiw, Lasasso - 07
       Muller - 06           Weinstein - 11




22.05.2012                                                                       16
Физическое моделирование.
Численные методы




22.05.2012                  17
Определение столкновений.
Подходы
    Дискретный
        На текущем шаге обсчета
    Непрерывный
        Пуля через бумагу
        Расчет времени столкновения (TOI)




                   Рис. 13. Mirtich

22.05.2012                                  18
Определение пересечений.
Примитивы
    Сфера
    Параллелепипед
    Капсула
    Цилиндр
    Конус
    Треугольник


                     Рис. 14. Naturalmotion

22.05.2012                                    19
Определение пересечений.
Выпуклые геометрии




                 Рис. 15. Coumans

22.05.2012                          20
Определение пересечений.
Выпуклые геометрии (2)
    SAT (Separation axis theorem)




                    Рис. 16

22.05.2012                          21
Определение пересечений.
НеВыпуклые геометрии
    Разложение на выпуклые




                  Рис. 18

22.05.2012                   22
Определение пересечений.
Оптимизации
    Сетки
        2D
        3D (воксельные)          Рис. 19
    Иерархии
        Quad/Oct деревья
        BVH



                           Рис. 20, Coumans

22.05.2012                                    23
Современное решение.
Столкновение




             Рис. 21, Coumans

22.05.2012                      24
Современное решение.
Целиком




             Рис. 22, Coumans

22.05.2012                      25
Современное решение.
Хитрости




22.05.2012             26
Физические движки

    Платные
        Havoc (Ipion)
        Ageia (Meqon - 99, Novodex - 02)
        Natural Motion
    Беспатные
        Tokamak
        ODE
        Bullet (“2012”, “Как приручить дракона”)


22.05.2012                                         27
Персоны

    Roy Featherstone
    David Baraff
    Brian Vincent Mirtich
    Eran Guendelmann
    Erin Catto
    Kenny Erleben
    Ron Fedkiw
    Erwin Coumans

22.05.2012                  28
Напоследок, о птичках




22.05.2012              29
Спасибо за внимание!!!




22.05.2012                            30

Más contenido relacionado

Más de Computer Science Club

20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 
20130928 automated theorem_proving_harrison
20130928 automated theorem_proving_harrison20130928 automated theorem_proving_harrison
20130928 automated theorem_proving_harrisonComputer Science Club
 

Más de Computer Science Club (20)

Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich
 
20130922 h10 lecture1_matiyasevich
20130922 h10 lecture1_matiyasevich20130922 h10 lecture1_matiyasevich
20130922 h10 lecture1_matiyasevich
 
20130928 automated theorem_proving_harrison
20130928 automated theorem_proving_harrison20130928 automated theorem_proving_harrison
20130928 automated theorem_proving_harrison
 

20120513 dynamics morozov