NVIDIA has uploaded last piece of APEX Framework puzzle – actual APEX SDK component. Now, it is time to take detailed overview on APEX features and structure.
UPDATE: APEX SDK 1.1 is available.
So what is NVIDIA APEX ? APEX is multi-platform scalable developement framework, designed to reduce development time and costs when creating complex physics content.
APEX addresses following typical problems:
- Significant programmer involvement is required to take a relatively abstract PhysX-SDK and create a lot of meaningful content.
APEX provides a high-level interface to artists and content developers. This reduces the need for programmer time, adds automatic physics behavior to familiar objects, and leverages multiple low-level PhysX-SDK features with a single easy-to-use authoring interface.
- Game physics content typically gets designed to the game’s “min-spec” system.
APEX requires each functional module to provide one or more ways to “scale the content” when running on better-than-min-spec systems, and to do this without requiring a lot of extra work from the game developer (artist or programmer, but especially programmer).
- Game engine performance limitations.
APEX avoids many of the game engine bottlenecks by allowing the designer to identify the physics that is important to the game logic, and what can be sent directly to the renderer, bypassing the fully generic path through the game engine.
It also allows the game engine to treat an APEX asset as a single game object, even though it may actually comprise many hundreds or even thousands of low-level physics components.
Authoring tools (DCC plug-ins for 3ds Max/Maya and standalone PhysXLab app) are used create and tune physics assets (for example, destructible wall) while runtime component (APEX SDK) is responsible for deserialization, LOD, data management and interaction with game engine. Accordingly, APEX SDK must be integrated with your engine before you’ll be able to use APEX assets.
Few facts about APEX 1.0 Beta:
- APEX is not the replacement for PhysX SDK, nor the new version of it. It is a layer that sits on top of the PhysX SDK.
- APEX 1.0 public Beta includes Clothing and Destruction modules (and partially – Particles module).
- APEX is free for commercial and non-commercial use.
- All necessary documentation and tutorials are included with APEX 1.0 package.
- APEX supports PC, PS3 and Xbox 360 (with optimizations for consoles), and but only PC version is available for public currently.
- APEX is based on latest PhysX SDK 2.8.4 and does not require PhysX System Software installation.
How to download APEX: Follow this guide and register PhysX Developer account.
Go to [Online Support] -> [Download]
- [APEX] -> [APEX PhysX Lab Beta] -> NVIDIA APEX PhysX Lab-22.214.171.124 for PhysXLab (APEX Destruction authoring)
- [APEX] -> [APEX DCC Clothing Plugins] -> [Max 2.60 beta] -> NVIDIA PhysX Plug-in 3dsMax20– x– WithAPEX 2.60.– for 3ds Max PhysX plug-in (APEX Clothing authoring, don’t forget to choose proper 3ds Max version)
- [APEX] -> [APEX DCC Clothing Plugins] -> [Maya 2.6 beta] -> NVIDIA PhysX Plug-in Maya20– x– WithAPEX 2.60.– for Maya PhysX plug-in (APEX Clothing authoring, don’t forget to choose proper Maya version)
- [APEX] -> [APEX SDK Beta] -> APEXSDK-1.0.39 beta-PhysX_126.96.36.199-WIN-VC9 for APEX SDK (game engine integration)
You don't need to download PhysX SDK, or PhysX System Software, or anything else.
Now let’s see what is included in APEX 1.0 public Beta package:
DCC PhysX plug-ins for Autodesk 3ds Max and Autodesk Maya are used as authoring tools for APEX Clothing – module that allows to convert skinned mesh into fully simulated cloth. In addition, plug-ins are providing rigid body and joints simulation functionality, that can be usefull for VFX artists.
PhysX plug-in for 3ds Max v. 2.60.0314
Next version of 2.x series of 3ds Max plug-ins, that contains all anticipated features like substeps control and concave (composite) rigid bodies, and, of course, full APEX Clothing functionality.
Supports 3ds Max (2009, 2010, 2011) and 3ds Max Design (2010, 2011), 32-bit and 64-bit versions.
Set of video tutorials on APEX Clothing authoring workflow are available here. In addition, plug-in package also includes tutorial scenes and documentation.
PhysX plug-in for Maya v. 2.60.0314
First public release 2.x Maya PhysX plug-ins.
Supports Maya 2009, 2010 and 2011, 32-bit and 64-bit versions.
In generally, provides almost same functionality as 3ds Max plug-in, APEX Clothing as well.
In addition, 3ds Max plug-in includes special standalone application – Clothing Tool (also, clothing tool is provided with APEX SDK).
Using CT, APEX Clothing asset can be authored, previewed and debugged in game-like environment, not binded by Max internal performance restrictions.
More detailed overview of PhysX plug-ins features is available here.
PhysXLab v. 1.0.100
PhysXLab is a standalone authoring application for APEX Destruction – module responcible for simulation of destructible objects. PhysXLab allows artists to create APEX assets (by pre-fracturing graphical mesh via built-in slicing tool), specify destruction behaviour and preview simulation.
PhysXLab workflow tutorials can be viewed here. And runtime result – here
Note: Current version may have some problems with slicing and simulation parameters editing, due to bug with decimal symbols.
PhysXLab also includes authoring interface for APEX Particles module, but it is not fully supported yet.
The APEX SDK comprises a set of C++ header files that define the SDK public API, a set of binary libraries that implement the functionality, as well as documentation and examples – all you need to integrate APEX with your engine.
The heart of APEX SDK architecture is Authorable Object – a data structure, the specification of how it will be authored, the specification of the run time functionality associated with it, and the software which implements this functionality.
APEX uses a framework called NxParameterized for storing asset and actor data. NxParameterized classes provide reflection on every parameter they include making it effective for serialization and auto-generation of user interfaces for tools.
APEX render data is stored in a vertex buffer accessible through the NxVertexBuffer interface. This vertex buffer supports a wide variety of attributes, and it also supports a variety of formats for each attribute.
Detailed documentation on APEX SDK and API is available as “apexdoc.chm” file. (“\Program Files (x86)\NVIDIA Corporation\APEX SDK\1.0\PhysX_2.8.4\win\docs” folder).
APEX is already integrated into several game engines, including Unreal Engine 3 and Unreal Development Kit (UDK) from Epic Games. You can freely preview APEX integration capabilities via recently released March version of UDK.
APEX Destruction assets can be added to UDK levels simply by dragging them from Content Browser window. Clothing assets are binded with AnimSetEditor.
Note: APEX Destructible assets are not visible in DX 11 render mode, only in DX 9.
Detailed docs on APEX Integration with UDK
We encourage developers to share their first impressions on APEX, using comments to this article.