Войти
ПрограммированиеФорумФизика

Производительность движка

#0
10:41, 31 мар. 2007

Собственно, сидел делал движок на основе частиц.

Сделал что-то наподобие тряпки, у которой можно задавить длину и ширину.
После того, как поставил 30*30 частиц, стало малость подвисать.
Поставил в проэкте release - в гораздо быстрее, но 100*100 всё-таки тормозит.

Вот я подумал, если Ageia делает для PhysX карту для улучшения производительности,
то почему бы физику не считать в ВИДЕОкарте, на вершинных шейдерах.

Так вот, вопрос к более опытным, стоит ли попробовать сделать на шейдерах или всё же это бред?


#1
11:59, 31 мар. 2007

ты про Havok FX слышал? Он как раз взаимодействует с видюхой.

#2
13:41, 31 мар. 2007

Andrew ZZZ
отнюдь не любая видюха потянет такие шейдеры. например я не нашел ни одной шейдерной демки физ.двига, которая пошла б на моем Radeon 9550. Вообще насколько я знаю, существующие шейдерные алгоритмы просчета физики предназначены для огромного числа джойнтов, но не очень точного. Погугли, я в свое время отказался от изучения этого вопроса, решил для начала поизучать классические методы.

#3
21:03, 31 мар. 2007

А если сделать движок на связях, с деформацией?

#4
2:10, 1 апр. 2007

Andrew ZZZ
единственное, что могу посоветовать - не парься. сперва напиши то же самое софт. если неймется - на абстрактных классах вроде

class PhysicsRenderer
{
public:
  ...
  virtual void TimeStep(float dt) = 0;
  ...
};
class PhysicsRenderer_cpu : public PhysicsRenderer
{
public:
  ...
  virtual void TimeStep(float dt);
  ...
};
class PhysicsRenderer_gpu : public PhysicsRenderer
{
public:
  ...
  virtual void TimeStep(float dt){};
  ...
};
по крайней мере душу будет греть гибкость, а может еще и понадобится ;)
#5
9:02, 1 апр. 2007

Andrew ZZZ
Тема далеко не новая уже, но попробовать конечно стоит, хотя
все таки сначала лучше разобраться с софтвар физикой, иначе вряд ли что-то выйдет из этой
затеи толковое

ПрограммированиеФорумФизика

Тема в архиве.