Subject: Graphics Cards | December 21, 2018 - 02:00 PM | Jim Tanous
Tagged: physx 4.0, PhysX, open source, nvidia
As promised in the company's initial announcement earlier this month, NVIDIA has released the newly open-sourced PhysX 4.0 SDK via GitHub. Now, thanks to its 3-Clause BSD license, any game developer, hardware company, or coding enthusiast can grab the latest version of NVIDIA's realtime physics engine and tinker, improve, or implement it in hopefully creative new ways.
The one limitation, of course, is that in its current form PhysX 4.0 (and version 3.4, which is now open source, too) still references lots of NVIDIA's closed source APIs, notably CUDA. But with the PhysX framework now available to fork, there's nothing to stop an eager company or programmer from creating and implementing their own alternatives to NVIDIA's proprietary tech.
In addition to going open source, PhysX 4.0 introduces a number of new features as outlined on NVIDIA's developer site:
- Temporal Gauss-Seidel Solver (TGS), which makes machinery, characters/ragdolls, and anything else that is jointed or articulated much more robust. TGS dynamically re-computes constraints with each iteration, based on bodies’ relative motion.
- The new reduced coordinate articulations feature makes the simulation of joints possible with no relative position error and realistic actuation.
- New automatic multi-broad phase.
- Increased scalability with new filtering rules for kinematics and statics.
- Actor-centric scene queries significantly improve performance for actors with many shapes.
- Build system now based on CMake.
BSD 3 licensed platforms:
- Apple iOS
- Apple MacOS
- Google Android ARM
- Microsoft Windows
Unchanged NVIDIA EULA platforms:
- Microsoft XBox One
- Sony Playstation 4
- Nintendo Switch
Subject: General Tech | December 3, 2018 - 08:46 PM | Scott Michaud
Tagged: pc gaming, PhysX, nvidia, physx 4.0, Unity, unreal engine 4
NVIDIA has just announced a new major version to their popular physics middleware: PhysX 4.0. They also announced that it (both 4.0 and 3.4) will be re-licensed as 3-line BSD. In terms of open-source licenses, this is about a permissive as you can get. You are basically free to do whatever you want – commercial, modified, unmodified, whatever – if you follow the guidelines (which are things like “no warranty”, “don’t sue us for liability”, “give us credit by leaving a copy of the license in all binary and source releases”, and “we’re not endorsing your product so don’t pretend that we are”).
For gamers? It will take a little while before this comes around to you. Unity is currently preparing to update to PhysX 3.4 with their upcoming 2018.3 release; that was the first major PhysX update since Unity 5.0 upgraded from PhysX 2.x to PhysX 3.3 back in March 2015. Epic Games seems to be a little quicker to update to a new PhysX version, but there’s nothing announced on their side either as far as I can tell.
On the technical side: this release of PhysX is interesting.
As mentioned, Unity 5.0 was the point when their PhysX implementation jumped from 2.x to 3.3. This was not a clean transition. NVIDIA changed the way that many of their solvers worked, making them much faster but also less stable (as in simulation stability – so, like, oscillating and breaking apart). While this was acceptable (because most simulations are cosmetic and, if it mattered, you had more performance to just increase the physics tick-rate to compensate) it upset developers who relied upon the stability of PhysX 2, forcing them to work around the glitches.
According to NVIDIA’s promotional video, this version is both more stable and faster. This means that it should be less work to setup things like ragdolls and ball-and-chain systems, while also supposedly being faster. In terms of stability, they intentionally showed a simulation of three balls and chains with varying masses. In PhysX 3.x, this tends to be a degenerate case where joints freak out and split (unless you compensate with smaller physics time steps). Even if it’s on-par with PhysX 3.x, this is a huge win for indie game developers.
PhysX 4.0 will be available for developers on December 20th. It’s unclear when any given engine will integrate it, however.
Shedding a little light on Monday's announcement
Most of our readers should have some familiarity with GameWorks, which is a series of libraries and utilities that help game developers (and others) create software. While many hardware and platform vendors provide samples and frameworks, taking the brunt of the work required to solve complex problems, this is NVIDIA's branding for their suite of technologies. Their hope is that it pushes the industry forward, which in turn drives GPU sales as users see the benefits of upgrading.
This release, GameWorks SDK 3.1, contains three complete features and two “beta” ones. We will start with the first three, each of which target a portion of the lighting and shadowing problem. The last two, which we will discuss at the end, are the experimental ones and fall under the blanket of physics and visual effects.
The first technology is Volumetric Lighting, which simulates the way light scatters off dust in the atmosphere. Game developers have been approximating this effect for a long time. In fact, I remember a particular section of Resident Evil 4 where you walk down a dim hallway that has light rays spilling in from the windows. Gamecube-era graphics could only do so much, though, and certain camera positions show that the effect was just a translucent, one-sided, decorative plane. It was a cheat that was hand-placed by a clever artist.
GameWorks' Volumetric Lighting goes after the same effect, but with a much different implementation. It looks at the generated shadow maps and, using hardware tessellation, extrudes geometry from the unshadowed portions toward the light. These little bits of geometry sum, depending on how deep the volume is, which translates into the required highlight. Also, since it's hardware tessellated, it probably has a smaller impact on performance because the GPU only needs to store enough information to generate the geometry, not store (and update) the geometry data for all possible light shafts themselves -- and it needs to store those shadow maps anyway.
Even though it seemed like this effect was independent of render method, since it basically just adds geometry to the scene, I asked whether it was locked to deferred rendering methods. NVIDIA said that it should be unrelated, as I suspected, which is good for VR. Forward rendering is easier to anti-alias, which makes the uneven pixel distribution (after lens distortion) appear more smooth.
Subject: General Tech, Graphics Cards, Shows and Expos | March 4, 2015 - 05:52 PM | Scott Michaud
Tagged: GDC, gdc 15, nvidia, epic games, ue4, unreal engine 4, PhysX, apex
NVIDIA and Epic Games have just announced that Unreal Engine 4 developers can view and modify the source of PhysX. This also includes the source for APEX, which is NVIDIA's cloth and destruction library. It does not include any of the other libraries that are under the GameWorks banner, but Unreal Engine 4 does not use them anyway.
This might even mean that good developers can write their own support for third-party platforms, like OpenCL. That would probably be a painful process, but it should be possible now. Of course, that support would only extend to their personal title, and anyone who they share their branch with.
If you are having trouble finding it, you will need to switch to a branch that has been updated to PhysX 3.3.3 with source, which is currently just “Master”. “Promoted” and earlier seem to be back at PhysX 3.3.2, which is still binary-only. It will probably take a few months to trickle down to an official release. If you are still unable to find it, even though you are on the “Master” branch, the path to NVIDIA's source code is: “Unreal Engine/Engine/Source/ThirdParty/PhysX/”. From there you can check out the various subdirectories for PhysX and APEX.
NVIDIA will be monitoring pull requests sent to that area of Unreal Engine. Enhancements might make it back upstream to PhysX proper, which would then be included in future versions of Unreal Engine and anywhere else that PhysX is used.
In other news, Unreal Engine 4 is now free of its subscription. The only time Epic will ask for money is when you ship a game and royalties are due. This is currently 5% of gross revenue, with the first $3000 (per product, per calendar quarter) exempt. This means that you can make legitimately free (no price, no ads, no subscription, no microtransactions, no Skylander figurines, etc.) game in UE4 for free now!
Subject: General Tech | August 24, 2013 - 01:05 PM | Tim Verry
Tagged: txaa, PhysX, pc gaming, nvidia, infinity ward, call fo duty, Activision
Activision recently announced a technical partnership with NVIDIA at GamesCom. The two companies are "working hand in hand" on the development of the PC version of Call of Duty: Ghosts to implement the kinds of graphical features and technologies that PC gamers expect of a new triple-A title.
According to a NVIDIA Geforce blog post, NVIDIA developers are working on-site at Infinity Ward. NVIDIA is helping Infinity Ward to enhance the Sub D tessellation, displacement mapping, and HDR lighting. Additionally, the NVIDIA engineers are working to integrate support for the company's TXAA (temporal anti-aliasing) and PhysX technologies. The Infinity Ward game developers are also taking advantage of the APEX Turbulence PhysX tool-kit to enable realistic, physics-based, smoke clouds that will react with the environment and player actions.
Activision and Infinity Ward are also enabling the use of dedicated multiplayer servers for Call of Duty: Ghosts. In addition, Call of Duty Elite will be available for the PC version of the game including a smartphone app that allows stat tracking and profile management from a mobile device.
The Geforce blog claims that the PC version is intended to be the definitive CoD: Ghosts version, which is always nice to see. More graphical effects and features are being worked on, but IW and NVIDIA are keeping them under wraps for now.
The PC is in a really good place right now between console cycles where developers are finally starting to realize the power of the PC and what it is able to offer in terms of graphical performance and control options. PC-first development is something that I have been wanting to see for a long time (develop for the PC and port to consoles rather than the other way around), and now that PC versions are once again getting due credit and development attention (and resources), along with the upcoming consoles being based on x86 hardware... these types of technical partnerships where the PC version is being positioned as the best version are hopefully the start of a trend that will see a new surge in PC gaming!
PhysX Settings Comparison
Borderlands 2 is a hell of a game; we actually ran a 4+ hour live event on launch day to celebrate its release and played it after our podcast that week as well. When big PC releases occur we usually like to take a look at performance of the game on a few graphics cards as well to see how NVIDIA and AMD cards stack up. Interestingly, for this title, PhysX technology was brought up again and NVIDIA was widely pushing it as a great example of implementation of the GPU-accelerated physics engine.
What you may find unique in Borderlands 2 is that the game actually allows you to enabled PhysX features at Low, Medium and High settings, with either NVIDIA or AMD Radeon graphics cards installed in your system. In past titles, like Batman: Arkham City and Mafia II, PhysX was only able to be enabled (or at least at higher settings) if you had an NVIDIA card. Many gamers that used AMD cards saw this as a slight and we tended to agree. But since we could enable it with a Radeon card installed, we were curious to see what the results would be.
Of course, don't expect the PhysX effects to be able to utilize the Radeon GPU for acceleration...
Borderlands 2 PhysX Settings Comparison
The first thing we wanted to learn was just how much difference you would see by moving from Low (the lowest setting, there is no "off") to Medium and then to High. The effects were identical on both AMD and NVIDIA cards and we made a short video here to demonstrate the changes in settings.
Subject: General Tech | October 19, 2011 - 11:55 AM | Jeremy Hellstrom
Tagged: gaming, batman, arkham city, PhysX
"NVIDIA’s GeForce.com has posted the first footage from the PC version of Batman: Arkham City. Included are general shots of the game running on a GTX 560 and several side-by-side scenes showing the Hardware Accelerated PhysX effects enabled and disabled."
Keep an eye on the floor as that is where most of the paper fluttering and dust stomping action happens. You can also get a play by play of the action at GeForce.com, which points out what the CUDA cores are doing during the gameplay footage. You'll have to wait until November 15th to try it for yourself.