1、Introducing PhysXforQuest and NVIDIA PhysX The Ultimate Physics for Quest3D: Full NVIDIA PhysX Functionality for Quest3D 1. What is PhysXforQuest? It is a plug-in tool for authoring the physics using NVIDIA PhysX in Quest3D. The majority of core functionality in the PhysX SDK is implemented via Ques
2、t3D Channels to allow you to use PhysX as your physics system. Quest3D currently supports ODE and there is a recent implementation of Newton physics now directly included with Quest3D as of version 4. Version 3 of Quest3D directly supports only ODE, apart from Quest3D internal collision Channels. Ph
3、ysXforQuest is an alternative to these physics systems. It provides significant additional real-time physics capability covering the full range of rigid body and joint physics, character controller, high performance raycasting and specialised functions for wheels to help in developing vehicle dynami
4、cs; as well as soft-body physics, a cloth system, force fields, fluids and particles. Refer further to NVIDIA PhysX Features. Note: PhysXforQuest and NVIDIA PhysX allows for both a software and hardware implementation. You can run applications as software based but some features, due to the demandin
5、g nature of real-time physics will result in slower frame rates. The advantage of PhysX is that you can implement demanding physics by implementing a dedicated hardware PPU (the PhysX Accelerator) and from August 2008 access NVIDIA GPU hardware that supports CUDA which now includes a range of GeForc
6、e GPUs from 8800 above (refer to NVIDIAs web site for a current list of supported hardware) giving a wide market for Quest3D developers to implement physics. Depending on your realtime3D requirements and scene requirements you may need to require hardware support for your system. Fluids although pos
7、sible as software is best run when the NVIDIA PhysX PPU or GPU card is installed on the end-users system. 2. Basics of Using PhysXforQuest As with other development of 3D in Quest3D, you drag and drop Channels or channel templates onto the authoring window and connect Channels to create the physics
8、system. Rendered objects requiring physics to control their motion are linked from the output global matrix of PhysXforQuest to the 3DObject channel (or, in the case of soft bodys, cloth and fluids, the vertices are directly controlled by the PhysXforQuest Channels) . The Channels have been develope
9、d with an open dynamics philosophy including separation of the physics logic from the Quest3D logic layer. Any parameter that is potentially changeable or requiring a set or get is available as a child to a value channel. This means you can make dynamic changes to an actor (the physics object that c
10、ontrols the renderable object) in runtime. You are not prevented to changing (most) properties because the property or parameter has been embedded in a dialogue of the channel. You have access to get and set most physics properties via the objects commands Channels. The extensive flags of PhysX are
11、also open via a bitWise operator channel allowing you to create and set many flags in runtime. All the core PhysX classes involving scene, actor, character etc, are implemented as Channels. Simply attach in the correct sequence a PhysXforQuest Core channel, a Scene and an Actor (or Joint etc) and it
12、s properties channel, hook a 3D objects motion matrix up and you are underway and PhysXforQuest will do the rest to drive the 3D object with physics motion, interaction and collision in the 3D world. 3. What type of documentation are we looking at, are there tutorials? PhysXforQuest includes this fu
13、ll set of Help documentation for all Channels currently implemented as well as numerous samples (currently 60) that provide examples of implementing each of the key parts of PhysXforQuest and PhysX. These samples can be used as a base to further develop your own channel groups for your development.
14、In addition NVIDIA (download the SDK), has provided excellent documentation, samples with documentation (useful to see some of the property settings) and resources for PhysX which you can apply to PhysXforQuest. 4. Whats the licence? PhysXforQuest is a single user commercial license for a developer
15、of Quest3D to use to create physics for a Quest3D application that can then be distributed as a single exe file, an installer, or screen saver (and under certain cases using a web browser). There are no limits on the number of Quest3D applications that it can be used for, or fees that tie a develope
16、r to sales or each product they produce. It is not open source, shareable or in some other form that does not meet the license requirements outlined in our EULA here. 5. What are the limits? The limits depend on your and your end-user systems. There are a range of PhysX limits on the number of joint
17、s, etc that can be supported by implementations requiring hardware. You should ensure you check out those limits as part of preparing your application for end-use. We have not yet been able to identify any specific PhysXforQuest limitations. Good channeling structures in PhysXforQuest as part of the
18、 Quest3D channeling environment will assist in how fast Quest3D operates. How well PhysXforQuest works in terms of physics driving 3D objects in your scene will depend on your scene, number of objects, polygons and all the other factors that control how well the scene is rendered. 6. Can I add code
19、to it? Can I create spin offs? You can request an NDA developer license where we will release the code as part of the agreement. In basic terms this allows you to make changes for internal use only, and you are not licensed to sell that code in any other form other than as part of a Quest3d application product implementation to end-users. 7. Can I make games using PhysXforQuest and sell them?