This guide highlights the significant API changes that have occured between APEX 1.3 and APEX 1.4. This guide is aimed at a developer already using APEX 1.3.x who wants to know the minimum amount of work to upgrade to APEX 1.4. Note that the PhysX API has also changed from PhysX 3.3.x to 3.4. Refer to the PhysX documentation for a description of PhysX API changes.
PhysX 2.* versions not supported in APEX 1.4. Apex supports 2 builds: with PhysX 3.4 for all modules and and without for Clothing module. Due to build APEXSDK and Clothing module without PhysX PxFoundation and some other PhysX modules were moved to PxShared library. APEX 1.4 uses this library.
APEX 1.4 parental namespace changed from physx::apex to nvidia::apex.
Nx and NxApex prefixes for public files were removed. For example, NxApexActor.h in APEX 1.4 has name Actor.h. But note that in some cases Apex prefix weren’t removed, for example, NxApexDefs.h in APEX 1.4 has name ApexDefs.h
NxParameterized was refactored and renamed to NvParameterized.
NxMat33Legacy, NxMat34Legacy support were removed and this types were replaced with physx::PxMat33/physx::PxMat44/physx::PxTransform in all public files.
DynamicSystem, Explosion, FieldBoundary and NxFluidIos modules were removed in APEX 1.4.
In general, assets created with previous versions of APEX should “just work” with APEX 1.4. The application must load the legacy module, which contains all the code that allows APEX to automatically upgrade assets to the latest version.
In APEX 1.4 there is a single legacy module (APEX_Legacy).
apexSDK->createModule(“Legacy”);
Likewise, there is a single legacy module header file ModuleLegacy.h. On platforms that use static linking (consoles for example), the application only needs to include ModuleLegacy.h and make single call:
nvidia::apex::instantiateModuleLegacy();
Removed PS3 and xbox3 support. Added PS4 and XboxOne support.
Added new samples_v2 and snippets. They are significantly simplier than old samples. Old samples APEXSDK/samples now for internal use only and they removed from distribution.