Начало моделирования физики

Я только что закончил независимый курс обучения CS282 - Компьютерное моделирование физики. Это был первый раз, когда это было предложено в колледже, в котором я учусь. Учебник назывался «Разработка игрового физического движка: как создать надежный коммерческий физический движок для вашей игры» Яна Миллингтона. Эта книга полна грамматических ошибок, и, хотя она является полезным справочником, из нее сложно кодировать. Исходный код, поставляемый с книгой, гораздо более полный, чем показано в книге, и существует определенный уровень сложности расшифровки кода, особенно для графических целей, поскольку нет даже учебника по тому, как сделать что-то самостоятельно с помощью движка. , которая на самом деле сломана или местами не реализована, или как использовать GLUT, которая является графической утилитой, используемой в книге и БОЛЬШЕ НЕ РАЗРАБАТЫВАЕТСЯ! На самом деле, большинство ссылок в этой книге относятся не к последнему десятилетию, что, я полагаю, неплохо для обучения коду 15-летней давности. Хотя этот текст является отличным ресурсом для общей картины физического моделирования в условиях для начинающих, он не представляет собой удобную «песочницу» для студентов CS, в которую они могут играть.

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

Мой вопрос таков:

Я нахожусь в процессе написания реферата и хотел бы порекомендовать альтернативу этим текстам, которая обеспечивает простой способ для студентов компьютерных наук начать писать код и фактически увидеть плоды своего труда. труды, возможно, с питоном. Кто-нибудь может порекомендовать хороший ресурс и/или текст, которые были бы полезны для этой цели? Для тех, кто прошел этот курс или аналогичный, какой у вас был опыт?


person LavaHot    schedule 10.05.2012    source источник
comment
Не знаю, насколько это актуально, но есть книга Я читал об обнаружении столкновений, и мне показалось, что он довольно хорошо написан.   -  person moowiz2020    schedule 10.05.2012


Ответы (1)


которая является графической утилитой, используемой в книге, и БОЛЬШЕ НЕ РАЗРАБАТЫВАЕТСЯ!

Неправильный. Проверьте проект FreeGLut.

Кто-нибудь может порекомендовать хороший ресурс и/или текст, которые были бы полезны для этой цели? Для тех, кто прошел этот курс или аналогичный, какой у вас был опыт?

Возможно, вам стоит взглянуть на статьи Криса Хекера по физике. Они старые, но полезные.

он не представляет дружественную песочницу для студентов CS, в которой они могут играть.

Дружественная песочница означает «нечего программировать». Для "игры" можно использовать готовый физический движок (Bullet Physics (поставляется с исходным кодом) или PhysX), но я сомневаюсь, что он научит писать приличную симуляцию физики с нуля - это большая тема, и есть причина, по которой существующие двигатели долгое время находились в разработке...

person SigTerm    schedule 10.05.2012
comment
Ну да, есть производные от GLUT, такие как openGLUT, но сам GLUT больше не разрабатывается. Из статьи GLUT в Википедии: библиотека GLUT Килгарда больше не поддерживается, - person LavaHot; 10.05.2012
comment
Кроме того, под песочницей я не имел в виду, что мы, студенты, будем просто играть с существующим физическим движком без добавления кода. Да, этот класс был трудным, но было много ненужной детективной работы, чтобы выяснить, как заставить что-то работать. Я бы хотел, чтобы студент мог написать класс, определяющий какой-то аспект движка, например, генератор силы или точный детектор столкновений, подключить его к чему-нибудь и получить из этого графическую демонстрацию. Графика активно использовалась в авторском движке, но совсем не рассматривалась в книге. - person LavaHot; 10.05.2012
comment
@LavaHot: но сам GLUT Пока API один и тот же, не имеет значения, кто его поддерживает, является ли он оригинальным или нет. В этом и прелесть модульного дизайна — вы можете использовать другую библиотеку, если она имеет такой же интерфейс. студент может написать класс, который определяет какой-то аспект, я не могу представить себе простой способ сделать это. Существующие движки (с исходным кодом - ODE/Bullet) допускают некоторую расширяемость, но поскольку каждая концепция должна определенным образом взаимодействовать с движком, он может довольно быстро усложниться. Я думаю, что и ODE/Bullet должны включать некоторые демонстрации пользовательских классов, но я не уверен. - person SigTerm; 10.05.2012
comment
@LavaHot: Графика была чем-то, что активно использовалось в авторском движке. Возможно, вы просто ищете какую-то графическую основу? - person SigTerm; 10.05.2012
comment
Да, я полагаю, вы правы, говоря, что более новые GLUT расширяют тот же интерфейс, но я не мог с включенными примерами GLUT сделать glSolidCyclinder(), что, как я полагаю, могут делать почти все производные GLUT. И я не хотел потенциально создавать крысиное гнездо сломанного кода, вырывая старый GLUT и добавляя что-то новое. Да, я полагаю, во всяком случае, графическая структура была бы полезна. У вас есть какие-нибудь мысли? - person LavaHot; 10.05.2012
comment
@LavaHot: это называется glutSolidCylinder, а не glSolidCylinder. Есть еще openGlut. И вы все еще можете использовать старый переизбыток, потому что код не гниет. Есть какие-нибудь мысли? К сожалению, нет. Есть проблема, если вы выберете простое решение (захватите SDL какую-нибудь библиотеку мешей и т. д.), вы в конечном итоге не получите графа сцены и можете потратить время на его написание. Если вы выберете игровой движок и будете использовать его в качестве основы для вашего фреймворка отображения, то вы будете вынуждены принять модель абстракций движка (и, конечно, позже это может вам помешать). Так что нет универсального хорошего решения. - person SigTerm; 10.05.2012