PhysX 3.3 for Windows

Register for GameWorks and Download Source  Go to https://developer.nvidia.com/join  Click Register button under Game Development with GameWorks™  Click Join now > Next > Submit  Register your GameWorks account from email  Log in  Go to http://developer.nvidia.com/content/apply-access-nvidia-gameworks-source-code  Enter GitHub username and accept EULA  Wait an hour to be added to the Github repositiory  Go to https://developer.nvidia.com/physx-sdk  Click Access Source on GitHub  Click link to GitHub repo and download it

Building the SDK

Building  Extract zip to PhysX-3.3-master  Navigate to PhysX-3.3-master\PhysXSDK  Open readme_win.html  Navigate to PhysX-3.3-master\PhysXSDK \Source\compiler\vc14win32  Open PhysX.sln  Select Release, Debug, Checked or Profile  Make sure CRT matches your project and other libraries. By default it is /MT  Right Click Solution ‘PhysX’ and select Build Solution  If the '__pfnDliNotifyHook2': redefinition; different type modifiers error happens.

Change PfnDliHook __pfnDliNotifyHook2 = delayHook; to const PfnDliHook __pfnDliNotifyHook2 = delayHook; in PxWindowsDelayLoadHook.cpp and WindowsCookingDelayLoadHook.cpp Build Modes  Checked: Contains code to detect invalid parameters, API race conditions, contains PVD  Profile: Omits checks, contains PVD  Release: Minimize footprint and maximize speed.  Debug: Allows for debugging in VS

Building the Samples  Navigate to PhysX-3.3-master\PhysXSDK \Samples\compiler\vc14win32  Open Samples.sln  Select Release, Debug, Checked or Profile  Make sure CRT matches the SDK. By default it is /MT  Right Click Solution ‘Samples’ and select Build Solution  Right Click on the sample project you want to run and select Set as StartUp Project  Press F5 to run  If this didn’t work install the DirectX SDK

Building the Snippets  Navigate to PhysX-3.3-master\PhysX-3.3-master\PhysXSDK\Snippets\compiler\vc14win32  Open Snippets.sln  Select Release, Debug, Checked or Profile  Make sure CRT matches the SDK. By default it is /MT  Right Click Solution ‘Snippets’ and select Build Solution  Right Click on the snippet project you want to run and select Set as StartUp Project  Press F5 to run

Installing DirectX SDK Download and install DirectX SDK https://www.microsoft.com/en-ca/download/details.aspx?id=6812 If DirectX SDK fails to install... uninstall all Microsoft Visual C++ 2010 x32 or x64 Redistributable - 10.XXXX

Linking  Navigate to PhysX-3.3-master\PhysX-3.3-master\PhysXSDK\Bin\vc14win32  Copy all .dll files into your directory with your exe  Navigate to PhysX-3.3-master\PhysX-3.3-master\PhysXSDK\Lib\vc14win32  Copy all .lib files to your projects lib directory  Navigate to PhysX-3.3-master\PhysX-3.3-master\PhysXSDK  Move Include folder to your projects include directory  Link as normal

Headers PxPhysicsAPI.h - Includes All of the PhysX API. But you can also include subsets selectively. Libraries At a minimum, link against

 PhysX3_x86.lib  PhysX3Common_ x86.lib

Ensure you use the same C runtime library (CRT) settings. By default PhysX uses /MT which is the Multi- Threaded Static CRT. This can be changed in the visual studio project properties.

Redistribution  PhysX3Common_*.dll will always be needed.  PhysX3_*.dll will always be needed.  PhysX3Cooking_*.dll you only need to bundle if your application cooks geometry data on the fly.  PhysX3GPU_*.dll is only needed if your application runs some simulation on the GPU.  PhysX3CharacterKinematic_*.dll is only needed if your application uses the character controller.