Visual Basic - мастерская разработчика
Библиотеки

DirectX

Обзоры
DirectDraw
Direct3D
DirectX Audio
DirectPlay
DirectInput
Fido Topics
SourceCode
Tools&Libs

OpenGL

Статьи и учебники
Fido Topics
SourceCode
Tools&Libs

Архив по Glide

Движки

Обзоры
Учебники
SourceCode
Downloads

Создание игр

Ваши игры

Обзорные статьи
Учебники
Fido Topics
SourceCode
Download

Stuff

Программер-Чат

Псевдо-FTP
Disclaimer
Оффтопик

 

Физика

Fido Themes (ru.game.design)

От: Denis Andreev <Denis.Andreev@p27.f57.n5050.z2.fidonet.org>
Тема: Физика
Дата: 5 марта 2001 г. 7:42


> ЗЫ Кто то знает ссылки (или названия) на документацию по Quake1/2/3
> энгине

конечно есть (ссылок не помню).
есть "unofficial Quake engine manual(specification?)"
есть Michael Abrash (id Software) "The Quake Graphics Engine" (GDC 4.2.96)

> Хотелось бы также какие нить семплы узреть (ну или
> сайты где они есть). А то я нашёл немного доков но уж очень оно всё
> какое то кривое и не структурированное.

http://www.planetquake.com/code3arena/
http://www.quake3stuff.com/

> ЗЫЫ Жутко интересуют семплы, или готовые движки реализующую физику
> (столкновения, силы, моменты вращения и т.д.).

http://www.mathengine.com/

там есть еще полезная дока в PDF, где расписаны все их формулы.

> бильярда или чёт аналогичного (со сложными случаями
> соударений) Скажите хоть названия прог если кто знает.

там дофига всего найдешь про это. есть демка STUNS -- машина по трассе со всеми столкновениями и т.д.

> Hадо спроектировать единообразную (без программирования спецальных
> случаев, почему? да потому что это всего лишь частный случай более
> общей проблемы) модель соударений бильярдных шаров, а в качестве теста
> рассмотрим такую ситуацию: О---> O| Шар летит на другой
> шар прижатый к бортику, в момент t после удара ситуация будет
> такой: <--О <-О | А если б шар у бортика не был плотно к нему
> прижат то ситуация была б такой <--О O| (Тоесть 1шар бы
> ударился о 2шар передав ему весь импульс, сам бы остановился, второй
> шар ударился бы об бортик и отбился бы налетев на 1 шар отдал бы
> ему весь свой импульс и сам бы остановился где и был в начале, а
> первый шар бы продолжил лететь.)

все элементарно просто: закон сохранения импульса + закон сохранения энергии + закон сохранения момента импульса. опиши шары как сферы, напиши для них эти законы до и после удара, получишь искомые формулы.

> Может кто таким занимался, подскажите пожалуста если сможете.

занимались, но делать не стали: дальше теории дело не пошло, да и теорию-то до конца не стали доводить.

Denis


От: Vladislav Volovik <333@org.lviv.net>
Тема: Re: Физика
Дата: 6 марта 2001 г. 5:04

Hello! "Denis Andreev" <Denis.Andreev@p27.f57.n5050.z2.fidonet.org> wrote:


>
> > Hадо спроектировать единообразную (без программирования спецальных
> > случаев, почему? да потому что это всего лишь частный случай более
> > общей проблемы) модель соударений бильярдных шаров, а в качестве теста
> > рассмотрим такую ситуацию: О---> O| Шар летит на другой
> > шар прижатый к бортику, в момент t после удара ситуация будет
> > такой: <--О <-О | А если б шар у бортика не был плотно к нему
> > прижат то ситуация была б такой <--О O| (Тоесть 1шар бы
> > ударился о 2шар передав ему весь импульс, сам бы остановился, второй
> > шар ударился бы об бортик и отбился бы налетев на 1 шар отдал бы
> > ему весь свой импульс и сам бы остановился где и был в начале, а
> > первый шар бы продолжил лететь.)
>
> все элементарно просто: закон сохранения испулся + закон сохранения энергии
+
> закон сохранения момента импулся. опиши шары как сфер, напиши для них эти
> законы
> до и после удара, полуиши искомые формулы.

Вот в том и прикол, что всё далеко не так просто, и тот пример что я привёл это подтверждает. Собственно говоря, физику явления я себе представляю очень хорошо, и формулы тоже эти все уже ручками пощупал (этих, кстати, законов, тут совсем недостаточно, хотя они и определяющие). Проблема не в этом, проблема именно в программировании, и особенно в программировании таких случаев как я описал в пред. письме (когда объекты прижаты друг к другу, а также (это совсем другая проблема) когда растояния между объектами и их скорости такие, что взаимодействия между ними происходит быстрее чем время квантования движка (кто с этим разбирался тот поймёт), особенно когда эти взаим. вызывают "цепную реакцию"). Обычно все реализации физики (в том числе и в mathengine, насколько я смог понять по быстрому ознакомлению) в таких случаях просто плюют на эти, во первых редкие(обычно), а во вторых не влияющие на гемплай случаи, и допускают некорректные ситуации вроде прохождения границ одного объекта сквозь границу другого объекта (пусть и на мизерную глубину), а также вобще не как не отрабатывают удар по прижатым друг к другу, но не скреплённым, объектам. Это всё хорошо, вот тока у меня как раз такой случай, когда такие ситуации, во-первых являются очень частыми, а во вторых здорово украшают гемплей.

Ещё кстате, один, неприятный (в принципе как для программиста то приятный, ибо мозгами шевелить иногда, это здорово :) случай: Имеем хокейное поле, у него углы в виде четверть-окружностей, и имеем летящую вдоль борта (и рядом с бортом) шайбу. Тут ваще физика простая до чёртиков, не надо ни закона сохр. импульса ни энергии, ток силы знай себе правильно в каждый момент времени направляй на углах. Но это всё здорово пока делаешь тестовый примерчик, а вот когда хочешь всё единообразно и красиво закодировать то... (просто обычно такая ситуация будет "примитивно" закодированным движком в опред. момент трактоваться как столкновение, со всеми вытекающими) не, ясно что можно, собственно говоря, я вобщем уже здорово к этому близок, и всё по немногу продвигается без застреваний, просто вот возникло желание в эхе спросить, мож новые идеи бы
люди подсказали, ну да ладно.За ответ всё равно спасибо. (Кстате в этом примере, внутренняя суть, таже, что и в том, что я в пред. письме кидал - тесный контакт объектов, а от сюда и совсем иное поведение при взаимодействиях)

>
> > Может кто таким занимался, подскажите пожалуста если сможете.
> занимались, но делать не стали: дальше теории дело не пошло, да и теорию-то
> до конца не стали доводить.

Теория ясно, что не сложная, ну, то есть, для кого как :) главное что просто уже записана и есть где почитать. Все приколы начинаются не на этом этапе, дилема в том что мы пытаемся дискретизировать законы непрерывного мира, от сюда и куча проблем.

==================>>>> vladislav_e@mail.ru >>>>==================

Posted: 07.03.2k1
Author: FidoNet
<www.fido7.ru>

 

 


Проект
Создание Народного Учебника по OpenGL

Участвовать!
Поиск
Найдите статью или файл:


Рассылка
Новости сайта
La Vision в вашем почтовом ящике








Программирование на С++ Delphi и Паскаль
Центр демо-искусства в России