Free source code access for Windows, Linux, OS X and Android.
Real-time simulation and rendering of realistic hair and fur
NVIDIA FleX is the new GPU accelerated particle-based simulation library. The core idea of FleX is that every object is represented as a system of particles connected by constraints. Such unified representation allows efficient modeling of many different materials and natural interaction between elements of different types, for example, two-way coupling between rigid bodies and fluids.
Interested developers may be pleased to hear that NVIDIA has already completed basic integration of FleX solver into Unreal Engine 4, and it can be freely obtained with one specific UE4 source code branch at GitHub.
Standalone FleX SDK and sample demo executable (as showcased below) are also included in the package.
To get access to the UE4 source code branch with FleX integration few steps are required:
Quite astonishing news are coming from Game Developers Conference 2015 – NVIDIA has just announced that latest PhysX SDK 3.3 is now available for free with full source code for Windows, Linux, OS X and Android. Source code release of APEX Destruction and APEX Clothing modules is also planned.
Previously, only binary distrubutions of PhysX SDK were available for free for commercial (Windows PC) and non-commercial (Linux, OS X, Android) use. PhysX engine for consoles if still subject of paid licensing.
This desicion will certanly help to push PhysX’s already wide adoption among developers even further and put an additional stress on competitive solutions.
Full instruction on PhysX SDK source code access can be found here.
As part of .2 update of PhysX SDK and APEX toolset, NVIDIA has released new 3.0.2 version of the PhysX DCC plug-ins for 3ds Max and Maya.
Among other changes and bug-fixes, plug-ins are also supporting 3ds Max 2015 and Maya 2015.
|PhysX Plug-in 3.0.2 for 3ds Max: Release Notes|
- Improve Destruction performance.
- Fix Parature Ticket: Paint Mode – Ignore Backface not workin in Orthographic View.
- Fix DE9855 by not exporting chunks with zero volume.
- Fix a crash when there are more than 12 simulation sets.
- Fix: Apex Clothing paint crash.
- Fix Parature Ticket: PhysXModRBInterface, how do one access concave/composite shape type meshes.
- Fix Parature Ticket: How to make it work with concave physical shape.
- Destruction – Fix the crash when children nodes have less texture than parent chunk.
- Fix Bug #10117: Max crashes when adding child chunks to a destructible.
- Fix Bug #10063: Export panel allows export with no options selected.
- Fix a crash with invalid nodes when reading clothing type collision shape.
Following the PhysX SDK 3.3.2 release, updated APEX SDK 1.3.2 is available for download.
Update March 2015: Bug-fixing APEX SDK 3.3.3 release is available.
Despite the minor version number, APEX 1.3.2 includes numerous additions to Destruction and Particles modules.
|APEX SDK 1.3.2: Release Notes|
APEX Framework 1.3.2
- Added NVTX profiling support for non-release builds. Traces can be captured using Parallel Nsight Analysis Tools. NVTX is supported only for Windows and Android.
- Added ability to change render resource lock behavior or disable locking altogether, to improve performance. The setting is per module. See NxModule::setRenderLockMode and NxApexRenderLockMode.
- Added ability to disable potentially expensive stat collection if it’s not needed. See NxApexSDK::setEnableApexStats.
- Fixed crash if application creates APEX SDK after already connecting to PVD.
New PhysX SDK 3.3.2 release is available for download.
Update March 2015: Bug-fixing PhysX SDK 3.3.3 release is available. Release Notes.
Among various bug-fixes, this version also features support for GPU acceleration on Linux platform (CUDA-capable devices only) and reworked documentation.
|PhysX SDK 3.3.2: Release Notes|
- The PhysXCommon/64.dll, nvcuda.dll and PhysXUpdateLoader/64.dll are loaded and checked for the NVIDIA Corporation digital signature. The signature is expected on all NVIDIA Corporation provided dlls. The application will exit if the signature check fails.
- Added the PxDefaultBufferedProfiler extension for simplified SDK profile events extraction.
- PxSceneDesc::sanityBounds allows a bounding box to be set for validating the position coordinates of inserted or updated rigid actors and articulations.
- Linux: Now supports GPU PhysX.
- Added set/getRunProfiled() for PxDefaultCpuDispatcher to control profiling at task level.
- Android: Support for x86 based devices was added.
- PxProfileEventHandler::durationToNanoseconds() added. Translates event duration in timestamp (cycles) into nanoseconds.
- Added SnippetProfileZone to show how to retrieve profiling information.
- Added SnippetCustomJoint to better illustrate custom joint implementation, and removed SnippetExtension.
- Added SnippetStepper to demonstrate kinematic updates while substepping with tasks.
- Significant revision of the user’s guide. Both structure and most content have been modified.
- PxTask::runProfiled() now takes threadId as a parameter.
- The static pruner now issues a performance warning in debug and checked configurations when a tree rebuild occurs and the tree is not empty.
- PxSceneDesc::staticStructure now defaults to PxPruningStructure::eDYNAMIC_AABB_TREE.
- Linux: Switched to shared libraries.
- Profile zone event names changed to match function calls.
- Overlapping read/write errors will now issue a PxErrorCode::eINVALID_OPERATION rather than PxErrorCode::eDEBUG_INFO.
- Improved SnippetToleranceScale to better demonstrate the intended use case.
- Increased 126 characters limit for warnings on unix platforms, 1k limit on all platforms.
- PhysXCommon dll load within PhysX dll now respects dll name. Please see the manual’s PhysXCommon DLL load section.
- Fixed search function of user’s guide.
- Foundation math classes now have in-place arithmetic operators (+= etc).
- Indexing operators taking signed integers in PxVec3, PxVec4, PxMat33, PxMat44, PxStrideIterator have been deprecated.
NVIDIA has released an updated 3.0.1 version of the PhysX DCC plug-ins for 3ds Max and Maya.
|PhysX Plug-in 3.0.1 for 3ds Max: Release Notes|
- New Features
- Fix: crash which happens when quiting 3ds Max with a biped Ragdoll scene.
- Fix: bug that Clothing simulates wrong at first frame when system scale is not 1.
- Fix: bug with APEX Debug Visualizer parameters.
- Fix: bug that when LOD1 is default LOD, it may not allow to add another new LOD.
- Fix: bug that Physical Mesh rollout could be too small when it is Custom type.
- Fix: few bugs with Physical Mesh rollout of Clothing Modifier.
- Fix: crash when loading .Rag files.
- Fix: SDK warning message when it fails to output on unicode build because missing one virtual function.
- Fix: Clothing Velocity control via Script.
- Improve the simulation of dynamic ragdolls.
- Make a switch to SDK 3 if creating APEX objects.
- Support SkinMapActual for APEX Clothing visulaizer.
- Improve sub-material handling based on Bug #9515: Getting multiple materials when coming back from PhysXLab to 3ds Max.
- Make Destruction exports Tangent and Binormal with UE3 and APEX 1.3
- Avoid extra scale (in PhysX Panel dialog) to be zero.
- Improve debug render scale handling.
New APEX 1.3.1 release is now available for public download.
Update: APEX SDK 1.3.2 is available
1.3.1 version features support for latest PhysX SDK 3.3.1 and includes a set of bug-fixes and minor new features.
|APEX SDK 1.3.1: Release Notes|
APEX Framework 1.3.1
- Added VS2012 support for source distributions with PhysX 3.x.
- Assertions are now enabled in the checked configuration.
- Added NxApexActor::setEnableDebugVisualization to selectively disable debug visualization on particular actors.
- The NxUserRenderResourceManager’s surface buffer create and release virtual methods must be implemented by the user. They are only used by particular turbulence features, so if turbulence isn’t being used the implementation can be empty.
- Starting with NVIDIA R302 drivers, application developers can direct the Optimus driver at runtime to use the High Performance Graphics to render any application – even those applications for which there is no existing application profile. The APEX samples now makes use of this “NvOptimusEnablement” feature to enable High Performance Graphics by default.
- Debug info added to all PS4 builds except release builds.
- Android sample builds now generate an APK. This requires some extra defines for Java and Ant. See the Android examples section of the sample documentation for details.
- Fixed rare Named Resource Provider failure to find resource.
- Using allocViewMatrix(ViewMatrixType::USER_CUSTOMIZED) now works.
- Cleaned up several PS4 compiler warnings.
NVIDIA has released minor 3.3.1 update for PhysX SDK 3.3 branch.
Update: PhysX SDK 3.3.2 released
PhysX SDK 3.3.1 release is mostly focused on various bug-fixes and optimizations.
|PhysX SDK 3.3.1: Release Notes|
- The friction model can now be changed after scene instantiation with PxScene::setFrictionType. The friction model can also be queried with PxScene::getFrictionType.
- PxDefaultSimulationFilterShader now supports particles and cloth as well.
- PxSimulationFilterCallback: the provided actor and shape pointers are now defined as const. Note: this is no behavior change, it was never allowed to write to those objects from within the callback.
- The PxTriangleMeshFlag::eHAS_16BIT_TRIANGLE_INDICES and PxTriangleMeshFlag::eHAS_ADJACENCY_INFO enums have been deprecated. Please use PxTriangleMeshFlag::e16_BIT_INDICES and PxTriangleMeshFlag::eADJACENCY_INFO instead.
- Removed following functions from the API for platforms which do not support CUDA: PxGetSuggestedCudaDeviceOrdinal, PxCreateCudaContextManager, PxLoadPhysxGPUModule.
- PxShape::getMaterialFromInternalFaceIndex will now return a NULL pointer and produce a warning for input faceIndex value of 0xFFFFffff. This change only applies to mesh and heightfield shapes.
- Fixed concurrency issue on windows. Calling PxScene::simulate on multiple scenes concurrently may have caused a deadlock. This only happened if the scenes shared a single PxCpuDispatcher and the dispatcher was configured to use one worker thread only.
Epic Games has announced, that their highly anticipated Unreal Engine 4 is now available for developers, with a very friendly licensing model (which even includes full C++ source code) – only $19 per month, plus 5% of gross revenue from any commercial product.
PhysX (APEX) Particles module will be used for impact debris effects on “concrete, grass, soil, wood, sand and the like” surfaces, while NVIDIA (APEX) Turbulence module will provide “simulation and rendering of physically correct smoke, dust and other fluid dynamics effects“. As the result:
Engine exhaust, smoke from explosions, dust from falling debris and spinning helicopter rotors can interact with the rest of the environment, both static and dynamic. Combined with PhysX particles, Turbulence provides a 1-2 punch of dynamism and realism.
As interesting note, it seems that NVIDIA as expanding the strategy of providing GPU accelerated PhysX effects in titles without native (core-physics) PhysX SDK integration, which potentially means that they can be adopted by any game or engine. Combined new core-PhysX integrations (such as UE4 with default PhysX 3, Clothing and Destruction implementation), such strategy can yield positive results on the amount of GPU PhysX titles.