Конгер Д.
Физика для разработчиков компьютерных игр
стр. 337

Теперь можно приступить к подсоединению пружин. Поскольку эта задача не очень проста, она разделена на несколько шагов. Сначала конструктор с помощью пары вложенных циклов for (начиная со строки 128) подсоединяет верхнюю пружину каждого квадрата. Он сохраняет индекс пружины и индексы соединяемых этой пружиной частиц. Если пружина находится не в первой строке частиц, она будет одновременно и верхней пружиной текущего квадрата, и нижней пружиной соседнего сверху квадрата. Поэтому строки 159-178 подсоединяют ее, как верхнюю пружину соответствующего квадрата. После завершения выполнения этих циклов все горизонтальные пружины будут подсоединены.

Начиная со строки 185, аналогичным образом подсоединяются вертикальные пружины. Пара циклов, начинающаяся в строке 240, выполняет подсоединение диагональных пружин. Затем конструктор задает общие характеристики всех пружин в системе и сохраняет общее количество строк и столбцов материальных точек в системе.

Теперь мы готовы увидеть класс cloth в работе.

Обновление и рендеринг фрагмента ткани

Чтобы ткань вела себя реалистично, все материальные точки и пружины в объекте класса cloth должны реагировать на приложенные к ним силы. Материальные точки должны отскакивать друг от друга при столкновениях. Хотя они не могут быть очень упругими, коэффициент упругости не должен быть нулевым. Если он будет нулевым, материальные точки склеятся — настоящая ткань так себя не ведет.

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

Как видите, в ткани происходит множество действий. Нетрудно понять, почему система масс и пружин легко может стать неустойчивой. Дабы предотвратить потерю устойчивости, метод cloth: :Update () должен не только учитывать все силы, возникающие при столкновениях и перемещениях, но и гасить движения материальных точек. Как это делается, показано в листинге 12.9.

Новости
Исследование: Треть населения Земли играют в видеоигры
Специалисты компании NewZoo провели исследование и пришли к выводу, что треть населения Земли или 2,3 млрд человек играют в видеоигры.
Антивирусы и облачные сервисы портят сохранения Dark Souls Remastered
Вчера комьюнити-менеджер Bandai Namco под ником Izmar подтвердил проблему в Steam, посоветовав ограничить доступ антивирусов и других программ вроде облачных сервисов Google и Amazon к файлам ремастера Dark Souls.