{{notification.text}}

MirGames

Студент
11.11.09 02:24
0
Собственно говоря, нужно сделать программу, которая моделирует вселенную, а точнее - законы гравитации. Вот, собственно говоря, хотелось бы спросить, как мне можно вывести громадное число точек без тормозов, на сравнительно старом железе?
Мои мысли:
1. ARB_PointSprite и VBO, с намёком железу, что данные буду часто изменятся
2. Использовать вообще 2d. Генерировать массив (выходная поверхность), переносить его на текстуру, биндить текстуру, и выводить всё это дело на экран
Прибегать ко второму варианту, вообще-то говоря не хотелось бы.
Далее, как можно оптимизировать сами вычисления?
Мои мысли:
1. Распараллелить цикл по нескольким ядрам. Это опасно, т.к. в универе, вроде бы как, одноядерные машины, и хрен там эта оптимизация сработает.
2. SSE. По той же самой причине не хочется. Да и гемор, честно говоря)

Далее, хотелось бы спросить несколько физических вопросов:
1. Как велика вероятность того, что небесные тела столкнутся?
2. Ну и что, если они столкнутся?

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

Правка: Беда!!! На форуме не пахало форматирование (списки).
Отредактировано: 11.11.09 02:25
#1
11.11.09 02:38
0
Цитата
2. Ну и что, если они столкнутся?

будет деление на ноль, double переполнится, и небесное тело с троекратной скоростью света умчится за край окна =)
#2
аксакал
11.11.09 03:07
0
Разбей вселенную на сектора, сектора на сектора и т.п., знай массу каждого сектора и представь будто в центре его звезда с этой массой...
#3
Студент
11.11.09 12:45
0
XProger
Хм. Если честно, я только вот не совсем рублю в физике... Это будет приближение или реальный расчёт? По идее, реальным он был, если бы "звезда" находилось бы не в центре сектора, а в центре масс сектора, да?

p.s. а сильно ли влияет тот факт, что в дальнодействующей механике силы распространяются с конечной скоростью?
Цитата(antonn @ Вчера, 22:38)
[snapback]99749[/snapback]
будет деление на ноль

Поясните, пожалуйста, а почему?
#5
Почётный лектор
11.11.09 15:51
0
Pierre Kurochkin
Есть известный пример на nVidia CUDA, который делает именно то, что тебе нужно. Оно там в риалтайме расчитвает гравитацию между теувой хучей объектов одновременно (ну то есть ОЧЕНЬ много их там).
Но требуется для этого могучная NV'шная карточка.

Речь о моделировании физики именно.
Если говорить о рендеринге: инстансинг - ваш выбор.
Отредактировано: 11.11.09 15:52
#6
11.11.09 18:08
0
Pierre Kurochkin
Цитата
Поясните, пожалуйста, а почему?

Ответь на такой вопрос: "Что будет есть я сделаю игру и убью там босса?"
Как сделаешь - так и будет :)
Вероятность столкновений будет зависеть от точности расчетов и равновесия системы.
#7
аксакал
11.11.09 18:26
0
Pierre Kurochkin
Всё верно, в центре масс. Это будет приближение, но там можно посчитать на каком расстоянии такая оптимизация не будет несущественно влиять на результат вычислений.
Недавно, кстати нечто близкое к твоей задаче писал:
http://www.everfall.com/paste/id.php?r2hpipcnzn44
Отредактировано: 11.11.09 18:27
#8
Студент
11.11.09 18:56
0
XProger
Ты мне уже давал эту прогу откомпиленной :) Ты, и товарищь Нео. Тормоза были ужасны)
#9
Студент
11.11.09 19:05
0
Universal
Тут вот в чем дело. Прога эта - курсач по ассемблеру. Могучей NV/AMD карточки там не будет. Не будет её и у меня дома (пичаль :'( ) в ближайшее время. Инстансинг, вроде бы как, реализуется нормально начиная с SM3, насколько мне известно. Но не факт, что в универе будет и SM1.
А вообще. Инстансинг... Пожалуй, стоит почитать, спасибо.
#10
12.11.09 01:52
0
Цитата(petyakurochkin @ Сегодня, 12:05)
[snapback]99769[/snapback]
Инстансинг, вроде бы как, реализуется нормально начиная с SM3, насколько мне известно

Это Hardware Instancing, DirectX Only.
Может сгодиться обычный шейдерный инстансинг - для него SM2.0 (На DX может даже меньше, правда ограниченность в передаваемых параметрах тогда больше).

P.S. Я бы на твоем месте попытался разузнать конфиг тамошнего железа и на него уже конкретно ориентироваться. Или одолжить у какого-нибудь знакомого ноут, на нем временами тестить\отлаживать и в результате на нем же демонстрировать курсач в инсте. А то наобум такое делать как-то не тру :)
Отредактировано: 12.11.09 01:54
#11
12.11.09 12:44
0
Цитата
Или одолжить у какого-нибудь знакомого ноут, на нем временами тестить\отлаживать и в результате на нем же демонстрировать курсач в инсте.

Сомневаюсь что ноут будет быстрее стационарной машины, даже морально устаревшей ))))
#12
12.11.09 13:20
0
Цитата(Woolf @ Сегодня, 05:44)
[snapback]99787[/snapback]
Сомневаюсь что ноут будет быстрее стационарной машины, даже морально устаревшей ))))

Даа.. Видимо люди нормальных ноутов никогда не видели :).
Конечно, если попадется нечто древнее - то делать это все бессмысленно. Но не факт, что попадется.

Для примера, мой ноут - Dual Core 2.0 Ghz, 1,5 Gb, SM3.0. (все, что нужно для счастья вообщем-то :)).
Брал я его года 3 назад, на тот момент он стоил где-то около 30К р., точно не помню. Такая среднестатистическия машинка на то время.
И Ноут работает куда быстрее "морально устаревшей"(в моем понимании) машины, при том, что уже скоро сам станет "морально устаревшим" :).

К тому же вообще неизвестен конфиг того, на чем предполагается работа данной программулины - сравнивать не с чем. И "морально устаревшая машина" является довольно абстрактным понятием в данном контексте - подразумевать можно все, что угодно :)

Вообщем - сомнения на ровном месте как-то не тру :)
Отредактировано: 12.11.09 13:22
#13
Студент
12.11.09 13:20
0
Woolf
Хз. Нетбук за 16 штук дёргает те морально-устаревшие машины.
#14
12.11.09 19:51
0
Цитата

Даа.. Видимо люди нормальных ноутов никогда не видели smile.gif.


Видел я и павильёны новейшие и прочий шлак от деля и даже яблочные - производительность видеокарт НА ВСЕХ уступает даже гф6500, я уже молчу про заявленные гф9хх. Поддержка то всех фич вроде как имеется, но частенько сваливается на софтвар (особенно интеловские решения этим грешат), а те что якобы хардвар всё одно работают загадочно, непредсказуемо и тормознуто. Ессно это всё качается опенгл, на дх не знаю, ибо сам под дх не пишу.

"Нетбук за 16 штук" - это сколько в деньгах?
Отредактировано: 12.11.09 19:57
#15
12.11.09 22:43
0
Цитата(Woolf @ Сегодня, 18:51)
[snapback]99794[/snapback]
"Нетбук за 16 штук" - это сколько в деньгах?

В деньгах это 16 штук, а в баксах - около 500-550.
#16
12.11.09 22:55
0
Что-то очень уже дёшево..
#17
12.11.09 23:04
0
Я бы не сказал, мой ноут дешевле и мощнее нетбука. Правда, не столь компактный.
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}