Havok_2014-1-0_Pc_Xs_User_Guide(目录)

来源:互联网 发布:java oa 工作流 编辑:程序博客网 时间:2024/05/30 05:41

Havok.com和Havok电锯狂人标志是Havok的商标。此处包含的所有其他商标是其各自所有者的财产。

这个文档手法律保护。没有Havok的书面同意,文档的内容不得转载或以任何形式传播,全部或部分,或以任何手段,机械或电子。此文档作为一个提供Havok游戏动力软件开发工具包的手册。在编写它包含的信息时已采取了合理的谨慎措施。然而,此文档可能包含遗漏、技术错误或印刷错误。由于使用本文档造成的任何损失,Havok不承担任何责任。本文档中的信息如有更改,恕不通知。

 

目录

 

1 Common Havok Components 6

1.1 Base Library . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1.1 简介 . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1.2 基础系统 . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1.3 Container Classes . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.1.4 Error Reporting . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.1.5 Monitoring and Timing . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 23

1.1.6 Working with Streams . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.1.7 Microsoft Visual Studio DebuggerExpansions . . . . . . . . . . . . . . . . . . . . . 31

1.2 Memory Management . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.2.1 Overview . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.2.2 Default Implementations . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.2.3 Customization . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 43

1.2.4 Reporting . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 46

1.3 Havok Math Library . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

1.3.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 62

1.3.2 Math Types . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 62

1.3.3 Using the Math Library . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 63

1.3.4 Common Conventions . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 66

1.3.5 SIMD and Non SIMD support . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 67

1.3.6 Optimization . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 68

1.4 Serialization . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

1.4.1 Introduction to Serialization . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 69

1.4.2 Basic Loading and Saving . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 70

1.4.3 File Formats . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 73

1.4.4 Details of Loading and Saving . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 75

1.4.5 Reflection . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

1.4.6 Versioning . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

1.4.7 Serialization and Physics 2012 . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 88

1.4.8 Using the Infrastructure . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 93

1.5 Multithreading . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

1.5.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 103

1.5.2 Stepping several multithreadedworkloads . . . . . . . . . . . . . . . . . . . . . . . 107

1.5.3 Multithreading Physics 2012 . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 107

1.5.4 Multithreading Animation . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 111

1.5.5 Multithreading Collision Queries . .. . . . . . . . . . . . . . . . . . . . . . . . . . 111

1.5.6 Multithreading Behavior . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 111

1.5.7 计时器 . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

1.5.8 The Master thread, and hkThreadNumber. . . . . . . . . . . . . . . . . . . . . . . 115

1.6 Geometry Processing . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

1.6.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 115

1.6.2 Convex Hull . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 115

1.6.3 Collision Geometry Optimizer . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 125

1.7 Visualization . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

1.7.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 133

1.7.2 Local visualization in yourapplication . . . . . . . . . . . . . . . . . . . . . . . . . 134

1.7.3 Remote visualization with the VisualDebugger . . . . . . . . . . . . . . . . . . . . 136

2 Havok Physics 2012 164

2.1 Introduction . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

2.1.1 What is a Physics Engine? . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 166

2.1.2 What is Havok Physics 2012? . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 183

2.1.3 Demo Resources . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 187

2.2 Creating a Simulation . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

2.2.1 Creating Physics 2012 Objects . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 189

2.2.2 模拟仿真一个Physics2012世界. . .. . . . . . . . . . . . . . . . . . . . . . . . . 271

2.3 与仿真交互 . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304

2.3.1 碰撞过滤 . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 304

2.3.2 General Listeners . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 314

2.3.3 Collision Listeners . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 318

2.3.4 Response Modifiers . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 327

2.3.5 Collision Queries . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 332

2.4 Optimizing a Simulation . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

2.4.1 Profiling . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

2.4.2 Tweaking Physics 2012 Behavior . . .. . . . . . . . . . . . . . . . . . . . . . . . . 347

2.4.3 Optimizing Performance . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 356

2.4.4 Optimizing Memory . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 367

2.5 Extensions . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

2.5.1 Character Control . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 375

2.5.2 Vehicle Physics . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 405

2.5.3 保存接触点 . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 433

2.6 Articles . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

2.6.1 Rotations, Handedness, and all that.. . . . . . . . . . . . . . . . . . . . . . . . . . 435

2.6.2 Continuous Physics . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 459

2.6.3 Integrating Particles with HavokPhysics . . . . . . . . . . . . . . . . . . . . . . . . 482

2.6.4 Ragdoll Best Practices . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 484

3 Havok Animation 503

3.1 Introduction . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504

3.2 Architecture Overview . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504

3.2.1 Object Overview / Glossary . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 504

3.2.2 Export Path . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 507

3.3 Animation Runtime . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 509

3.3.1 Animation Overview . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 509

3.3.2 Pose Representation . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 512

3.3.3 Animation and Rig Representation . .. . . . . . . . . . . . . . . . . . . . . . . . . 533

3.3.4 Motion Extraction/Locomotion . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 536

3.3.5 Animation Compression . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 548

3.3.6 Playback . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 555

3.3.7 Multithreading . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 566

3.3.8 Skeleton Mappers . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 568

3.3.9 Retargeting Animations . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 578

3.3.10 Skeleton Partitioning . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 584

3.3.11 Inverse Kinematics . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 585

3.3.12 Deformation (Skinning And Morphing). . . . . . . . . . . . . . . . . . . . . . . . 603

3.4 Integrating Havok Animation with HavokRagdolls . . . . . . . . . . . . . . . . . . . . . . 605

3.4.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 605

Confidential Information of Havok.

 cCopyright 1999-2014 Havok. All Rights Reserved. 3

3.4.2 A Typical Scenario . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 605

3.4.3 Ragdoll Instances . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 609

3.4.4 Mappers . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 612

3.4.5 Ragdoll Controllers . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 612

3.4.6 The Detect Ragdoll PenetrationUtility . . . . . . . . . . . . . . . . . . . . . . . . 614

3.5 Animation Examples and Use Cases . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 619

3.5.1 Animation Showcase . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 619

4 Havok Content Tools 626

4.1 Guide To The Havok Content ToolsDocumentation . . . . . . . . . . . . . . . . . . . . . 627

4.1.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 627

4.1.2 Documentation for Content Creators .. . . . . . . . . . . . . . . . . . . . . . . . . 627

4.1.3 Documentation for Tools Programmers .. . . . . . . . . . . . . . . . . . . . . . . . 630

4.2 Introduction and Architecture . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631

4.2.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 631

4.2.2 Architecture . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 632

4.3 The Havok Filter Pipeline . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635

4.3.1 The Filter Manager . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 635

4.3.2 Core Filters . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 642

4.3.3 Physics Filters . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 653

4.3.4 Physics 2012 Filters . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 657

4.3.5 Animation Filters . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 667

4.3.6 Graphics Filters . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 710

4.4 3ds Max Tools . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715

4.4.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 715

4.4.2 3ds Max: Scene Exporter . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 715

4.4.3 3ds Max: Physics Tools . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 719

4.4.4 3ds Max: Animation Tools . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 741

4.4.5 Tutorial: Export and Animation Basics. . . . . . . . . . . . . . . . . . . . . . . . 741

4.4.6 Tutorial: Physics 2012 Basics . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 755

4.4.7 Tutorial: More on Rigid Bodies . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 772

4.4.8 Tutorial: Rag Doll Toolbox . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 785

4.5 Maya Tools . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800

4.5.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 800

4.5.2 Maya: Scene Exporter . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 802

4.5.3 Maya: Physics Tools . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 806

4.5.4 Maya: Animation Tools . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 827

4.5.5 Tutorial: Export and Animation Basics. . . . . . . . . . . . . . . . . . . . . . . . 830

4.5.6 Tutorial: Physics Basics . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 843

4.5.7 Tutorial: More on Rigid Bodies . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 859

4.5.8 Tutorial: Rag Doll Setup . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 869

4.6 XSI Tools . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883

4.6.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 883

4.6.2 XSI: Scene Exporter . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 884

4.6.3 XSI: Physics Tools . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 892

4.6.4 XSI: Animation Tools . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 912

4.6.5 Tutorial: Export and Animation Basics. . . . . . . . . . . . . . . . . . . . . . . . 915

4.6.6 Tutorial: Physics Basics . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 928

4.6.7 Tutorial: More on Rigid Bodies . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 942

4.6.8 Tutorial: Rag Doll Toolbox . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 952

4.7 Common Concepts . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 972

4.7.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 972

4.7.2 Common: Controlling File Size . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 973

4.7.3 Physics : Rigid Body Concepts . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 974

Confidential Information of Havok.

 cCopyright 1999-2014 Havok. All Rights Reserved. 4

4.7.4 Physics : Constraint Concepts . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 980

4.7.5 Animation: Repositioning Animationsand Motion Extraction . . . . . . . . . . . . 999

4.7.6 Animation: Annotations . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 1001

4.7.7 Animation: Controlling Compression .. . . . . . . . . . . . . . . . . . . . . . . . . 1002

4.7.8 Animation: Previewing Compression . .. . . . . . . . . . . . . . . . . . . . . . . . 1007

4.7.9 Animation: Controlling File Size . .. . . . . . . . . . . . . . . . . . . . . . . . . . 1009

4.7.10 Physics and Animation: Local Frames. . . . . . . . . . . . . . . . . . . . . . . . . 1010

4.8 The Preview Tool . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011

4.8.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1011

4.8.2 Assets . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012

4.8.3 Main Window Controls . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 1013

4.8.4 Simulation Controls . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 1017

4.8.5 Tweaker . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1019

4.8.6 Debugging . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1019

4.8.7 Restoring defaults . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1020

4.9 Integrating with the Havok ContentTools . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020

4.9.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1020

4.9.2 Offline Processing . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1020

4.9.3 The Havok Scene Data Format . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 1023

4.9.4 Extending the 3ds Max Tools . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 1034

4.9.5 Extending the Maya Tools . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 1042

4.9.6 Extending the XSI Tools . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 1046

4.9.7 Writing your own Filters . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1054

4.9.8 Customizing your Installation Method. . . . . . . . . . . . . . . . . . . . . . . . . 1062

4.9.9 Tutorial: Extending the Toolchain . .. . . . . . . . . . . . . . . . . . . . . . . . . 1069

4.10 Artist Best Practices . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112

4.10.1 Introduction . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 1112

4.10.2 [Physics] Collision DetectionOptimizations . . . . . . . . . . . . . . . . . . . . . . 1112

4.11 Troubleshooting . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121

4.11.1 Troubleshooting: Processing Assets .. . . . . . . . . . . . . . . . . . . . . . . . . . 1121

4.11.2 Troubleshooting: 3ds Max Tools . . .. . . . . . . . . . . . . . . . . . . . . . . . . 1126

4.11.3 Troubleshooting: Maya Tools . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 1130

4.11.4 Troubleshooting: XSI Tools . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 1132

4.11.5 Troubleshooting: ToolchainIntegration . . . . . . . . . . . . . . . . . . . . . . . . 113

0 0