AMD's FEMFX Deformable Physics Library Lands: Benefits From Lots of CPU Cores

(Image credit: AMD)

PhysX has been Nvidia's party trick for well over a decade, but it seems that after all these years AMD wants to play catch up on that front too. The red team's latest announcement is that its new FEMFX library is finally available, which offers deformable physics effects through the GPUOpen set of AMD-built libraries for developers.

The name FEMFX stems from FEM, which stands for Finite Element Method. AMD describes this as "Solid objects are represented as a mesh of tetrahedral elements, and each element has material parameters that control stiffness, how volume changes with deformation, and stress limits where fracture or plastic (permanent) deformation occur."

The intention is not for all objects to have these properties, but rather in addition to existing solid objects in order to balance out the workload that stems from a scene -- having all elements as finite elements would create a very demanding workload. Of course, if developers are so inclined, they could use the FEMFX library to create entire worlds which are completely destructible.

As mentioned, FEMFX is built as a highly-threaded library, which is a great way for AMD to promote its multi-core Ryzen CPUs. The core counts of those chips have been reaching levels where it no longer makes sense for most gamers to dish out for the higher-end models, so adding multi-threaded CPU-based physics to games can be a great way to utilize otherwise idle cores in the higher end Ryzen chips during gaming. 

Some of the materials that can be simulated are elastic deformation, denting metal, wood destruction, and even melting. AMD's full list of features is below.

  • Elastic and plastic deformation
  • Implicit integration for stability with stiff materials
  • Kinematic control of mesh vertices
  • Fracture between tetrahedral faces
  • Non-fracturing faces to control shape of cracks and pieces
  • Continuous collision detection (CCD) for fast-moving objects
  • Constraints for contact resolution and to link objects together
  • Constraints to limit deformation
  • Dynamic control of tetrahedron material parameters
  • Support for deforming a render mesh using the tetrahedral mesh
Niels Broekhuijsen

Niels Broekhuijsen is a Contributing Writer for Tom's Hardware US. He reviews cases, water cooling and pc builds.

  • jimmysmitty
    So PhysX but CPU based. I guess it is useful but only to those that have it. I think GPUs have more at rest resources to handle this stuff but until 8+ cores gets overloaded with background processes this could at least make the cores useful.

    I just wish they would make a new Red Faction like the original that you could make tunnels in the maps . That was fun in multiplayer.
    Reply
  • alextheblue
    jimmysmitty said:
    So PhysX but CPU based. I guess it is useful but only to those that have it. I think GPUs have more at rest resources to handle this stuff but until 8+ cores gets overloaded with background processes this could at least make the cores useful.

    I just wish they would make a new Red Faction like the original that you could make tunnels in the maps . That was fun in multiplayer.
    PhysX can be run on CPUs. It's just (intentionally) horribly optimized for CPUs. Unless things have changed - it was using x87 code and not well threaded last I knew.
    Reply
  • mitch074
    jimmysmitty said:
    So PhysX but CPU based. I guess it is useful but only to those that have it. I think GPUs have more at rest resources to handle this stuff but until 8+ cores gets overloaded with background processes this could at least make the cores useful.

    I just wish they would make a new Red Faction like the original that you could make tunnels in the maps . That was fun in multiplayer.
    If I'm not mistaken, the fact that it's GPUOpen makes it able to run on both CPU and GPU - so no, it's more like PhysX that can run on any hardware. I don't think one would need to push very far to make it so that the game runs on CPU cores, the 3D rendering takes place on a GPU and the physics processing takes place in, say, an unused APU/iGPU, or on whatever CPU cores are unused, or even on whatever GPU resources are free (that's the kind of job async compute would be perfect for).
    Reply
  • joeblowsmynose
    jimmysmitty said:
    So PhysX but CPU based. I guess it is useful but only to those that have it....

    All those poor people gaming on their GPU with no CPU ... how dare AMD exclude these people with their proprietary BS!? ;)


    I say it's about time. Physics in games has made no remarkable progress since HL2 and then Crysis, whatsoever, and the PhysX proprietary crap has done nothing but stifle that innovation.

    I saw NVidias "Me Too!" marketing tech demo video on new PhysX "soft body" physics and looks like like a slow motion simulator by comparison. Not good.

    FEMFX has a pretty poor name, but it actually looks good ... I hope it can be implemented to the level that the tech demo showed.

    I've been rather dismayed at the lack of innovation in the use of physics in games for quite some time, hopefully this shakes things up a bit.
    Reply
  • jimmysmitty
    joeblowsmynose said:
    All those poor people gaming on their GPU with no CPU ... how dare AMD exclude these people with their proprietary BS!? ;)


    I say it's about time. Physics in games has made no remarkable progress since HL2 and then Crysis, whatsoever, and the PhysX proprietary crap has done nothing but stifle that innovation.

    I saw NVidias "Me Too!" marketing tech demo video on new PhysX "soft body" physics and looks like like a slow motion simulator by comparison. Not good.

    FEMFX has a pretty poor name, but it actually looks good ... I hope it can be implemented to the level that the tech demo showed.

    I've been rather dismayed at the lack of innovation in the use of physics in games for quite some time, hopefully this shakes things up a bit.

    Having an all in one would help but you know how it is with GPU APIs. Most are proprietary or only supported with certain hardware. Makes it harder to push physics.

    But to be fair games having wacky physics has also made for some really funny stuff. Like the old GTA IV swing set glitch. Nothing like flinging a 4000 pound car through the New York skyline.
    Reply
  • joeblowsmynose
    jimmysmitty said:
    Having an all in one would help but you know how it is with GPU APIs. Most are proprietary or only supported with certain hardware. Makes it harder to push physics.

    But to be fair games having wacky physics has also made for some really funny stuff. Like the old GTA IV swing set glitch. Nothing like flinging a 4000 pound car through the New York skyline.


    I think it makes sense for the CPU to do the physics, as long as the game engine doesn't rely on those calculations too heavily to produce a single frame. Some game engines re-calculate everything based on single frame cycle, those ones would probably benefit from GPU physics calculations over CPU, just to help keep any potential CPU bottleneck out of it.

    With most games and most modern CPUs these days, there's almost always a a core or two or five that isn't getting any love during gaming, might as well put them to work!
    Reply
  • tom111111
    The name sounds stupid.
    Reply
  • joeblowsmynose
    tom111111 said:
    The name sounds stupid.

    If you consider that the soft body physics of FEMFX can make in-game boobs and butts like pretty spectacular if applied correctly ... maybe it fits! ;)
    Reply