PhysX

ixjf

Power Member
Boas,

Acabei o meu primeiro "curso" de C++ ( na verdade, eram apenas 2 livros sobre C++ - só o básico de cada coisa que se deve saber para começar mas como eu já tenho alguns anos de experiência com programação e computadores foi muito fácil de aprender - ainda estou para ler um de 629 páginas que aprofunda em cada parte de C++ ) e como eu amo jogos e programação eu decidi criar uma game engine 3D. Sei que isso vai demorar anos para completar mas mesmo assim eu quero tentar pois vai-me ajudar a ganhar experiência com C++. No momento, estava a pensar em usar a engine de física Bullet na game engine - É open source e foi usada no Grand Theft Auto IV e pareceu-me muito boa. O que vocês acham?

A minha dúvida é mesmo só se o PhysX seria melhor mesmo sabendo que não vai funcionar corretamente nas gráficas AMD pois vai ser tudo processado pelo CPU. Devo pôr as duas engines ou só uma? Qual?
 
Última edição:
Boa iniciativa!
Não sei se o que vou dizer é parvoíce, até porque não estou muito dentro da área, mas cá vai.

Parece-me que tudo o que pode ser feito em Cuda/PhysX , pode ser igualmente feito em OpenCL.
Lembro-me de ver à uns anos umas engines de física feitas em OpenCL e que portanto funcionavam tanto em ATIs como em Nvidias. O problema do Cuda/PhysX é que apenas corre nativamente em gráficas Nvidia, o PhysX com gráfica ATI, tem de correr no CPU, daí que seja muito mais lento. Não quer dizer que a gráfica não tenha poder para isso, porque tem, mas como é software proprietário da Nvidia, não há nada para os outros...

Não conseguirias programar em OpenCL? Não sei até que ponto é fácil ou não, mas estou a dar o meu ponto de vista para que possas até explorar um bocadinho sobre isso.
 
Não sei se conseguiria, nunca "estudei" o OpenCL nem me tinha passado pela cabeça isso.

Spiderman disse:
O problema do Cuda/PhysX é que apenas corre nativamente em gráficas Nvidia, o PhysX com gráfica ATI, tem de correr no CPU, daí que seja muito mais lento.

É por isso mesmo que não sei qual escolher. No príncipio ainda fui lá no site da NVIDIA, registrei-me, baixei a SDK e começei a olhar aquilo mas depois fui pesquisar no Google... PhysX parece muito bom. Também há o concorrente Havok Physics mas é pago e deve custar uns bons dólares ainda, portanto está fora de questão. Não vejo outra engine de física decente a não ser essas três. Há a opção de criar a minha própria engine também, mas isso era mais uns anos de trabalho xD
 
Decidi ver um pouco melhor (inclusivamente no youtube) e encontrei este vídeo: http://www.youtube.com/watch?v=143k1fqPukk

Pela descrição dá para ler:

Testing Blender physics bake to disk cache for large scale rigid body simulations (instead of baking to f-curve keyframes); partly in anticipation of the massive power of the OpenCL accelerated Bullet Physics engine.

Portanto parece que essa engine já usa cálculos em OpenCL. Isso é muito bom porque corre tanto em gráficas AMD/AIT como Nvidia.

Qualquer jogador preferiria esta opção sem dúvida, visto correr em todas as gráficas, contra a solução apenas da Nvidia. Mas também tens de ser agora tu a ver qual preferes. Mas uma vez que já estavas inclinado para esta no inicio, porque não? :D

Boa sorte. ;)
 
Back
Topo