Book Image

Learning Physics Modeling with PhysX

By : Krishna Kumar
Book Image

Learning Physics Modeling with PhysX

By: Krishna Kumar

Overview of this book

<p>In this day and age, physics engines play a very critical role in the success of a sophisticated game. PhysX is a state-of-the-art cross-platform physics engine widely used by top game studios and developers. It contains all the physics-related components you will need and exploits the parallel-processing capability of modern GPUs as well as multi-core CPUs to make a game as physically-realistic as possible. This book will help you to program and simulate games by using PhysX 3.</p> <p>Learning Physics Modeling with PhysX helps you to master physics simulation using the PhysX Physics Engine from scratch. This is useful not only for game developers, but also for developers making virtual walkthroughs or training and other simulation applications. It will cover all the essential features of PhysX 3 with easy-to-understand code snippets and examples to help you learn quickly and efficiently.</p> <p>This book will start off by introducing you to the basic concepts of physic engines and will give you a glimpse of PhysX implementation. We then gradually cover more sophisticated topics with sample source code so that you can see what you have learned in action. We will cover the history and features of the PhysX SDK as well as how to configure it with the C++ compiler. After touching upon essential topics like rigid body dynamics and collision detection, we will gradually move on to more advanced topics like joints, scene queries, character controllers, particles, and cloth simulation. By the end of this book, you will have learned everything you need to know about the PhysX 3 Physics Engine, and you will be able to use it to program your very own physics simulation quickly and efficiently.</p>
Table of Contents (17 chapters)
Learning Physics Modeling with PhysX
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Brief history


PhysX SDK is a mature physics engine, which has been under development since 2004. It was developed by Ageia with the purchase of ETH Zurich spin-off NovodeX. Ageia was a fabless semiconductor company and the first company that developed a dedicated co-processor capable of performing physics calculations, which was much faster than the general purpose CPUs available at that time.

The intention of Ageia was to sell PPU (Physics Processing Unit) cards much like the dedicated GPU (Graphics Processing Unit) cards that we buy today. It developed the PhysX software SDK (formerly NovodeX SDK) to harness the processing power of a PPU. The company also licensed out the PhysX SDK as a physics middleware library for game production. Unfortunately, the PPU cards didn't sell very well commercially in the market. On February 4, 2008, Nvidia announced that it would acquire Ageia. On February 13, 2008, the merger was finalized. The PhysX engine is now known as Nvidia PhysX. The potential reason of Ageia acquisition by Nvidia was to implement PhysX on top of their CUDA architecture enabled GPU(s), for hardware-accelerated physics processing. The PhysX GPU acceleration is exclusive to Nvidia GPU(s), which gives Nvidia an edge over its competitors; that is, GPU manufacturers such as ATI/AMD.

PhysX SDK 3.3.0 is the latest release at the time of writing this book. PhysX 3.x features a new modular architecture and a completely rewritten PhysX engine. It provides a significant boost in overall performance as well as efficiency. It is a heavily-modified version written to support multiple platforms but has a single base code. Supported platforms include Windows; Linux; Mac OS X; game consoles such as XBOX 360 and PS3; and even Android-powered handheld devices. PhysX 3.3.0 added support for new platforms such as Xbox One, PS 4, Nintendo Wii U, Apple iOS, PS Vita, and Windows RT. PhysX SDK 3.x has undergone architecture and API improvement, and the code is cleaned at many levels to get rid of obsolete and legacy features and to integrate new physics capabilities.