Game Engine Architecture 12

1、the field of physics is vast, and what most of today’s game engines call “physics” is more accurately described as a rigid body dynamics simulation.

  现代游戏中的物理,大多指的是 rigid body dynamics(刚体动力学)。

  A rigid body is an idealized, infinitely hard, non-deformable solid object. The term dynamics refers to the process of determining how these rigid bodies move and interact over time under the influence of forces.

  rigid body 是无限硬,不可变形的固体对象。

2、ODE

  ODE stands for “Open Dynamics Engine” (http://www.ode.org). As its name implies, ODE is an open source collision and rigid body dynamics SDK. Its feature set is similar to a commercial product like Havok. Its benefits include being free and the availability of full source code.

3、Bullet

  Bullet is an open source collision detection and physics library used by both the game and film industries. Its collision engine is integrated with its dynamics simulation, but hooks are provided so that the collision system can be used stand-alone or integrated with other physics engines. It supports continuous collision detection (CCD)—also known as time of impact (TOI) collision detection.

4、PhysX

  It was bought by NVIDIA and retooled so that it can run using NVIDIA’s GPUs as a coprocessor. (It can also run entirely on a CPU, without GPU support.)

5、Havok

  Havok is the gold standard in commercial physics SDKs, providing one of the richest feature sets available and boasting excellent performance characteristics on all supported platforms. (It’s also the most expensive solution.)

6、Digital Molecular Matter (DMM)

  Pixelux Entertainment S.A., located in Geneva, Switzerland, has produced a unique physics engine that uses finite element methods to simulate the dynamics of deformable bodies and breakable objects, called Digital Molecular Matter (DMM). The engine has both an offline and a runtime component. It was released in 2008 and can be seen in action in LucasArts’ Star Wars: The Force Unleashed.

7、a collidable entity contains two basic pieces of information—a shape and a transform.

8、area:二维空间中的面积。

   volume:三维空间中的体积。

9、convex:凸包。

   concave:凹包。

10、Collision Primitives

  1)sphere。点 + 半径。

  2)Capsules。2个点+半径。

    

  3)AABB。minimum coordinate + maximum coordinate。

    the AABB will have to be recalculated whenever that object rotates. Even if an object is roughly box-shaped, its AABB may degenerate into a very poor approximation to its shape when the object rotates off-axis.

      

  4)OBB。

  5)Discrete Oriented Polytopes (DOP)。

    An AABB is a 6-DOP in which the plane normals are taken parallel to the coordinate axes. An OBB is also a 6-DOP in which the plane normals are parallel to the object’s natural principal axes. A k-DOP is constructed from an arbitrary number of planes k.

    

  6)Poly Soup    

11、The Separating Axis Theorem

  It states that if an axis can be found along which the projections of two convex shapes do not overlap, then we can be certain that the two shapes do not intersect at all. If such an axis does not exist and the shapes are convex, then we know for certain that they do intersect.

  只要找到一个分离轴,则两个物体不相交。

  In three dimensions, the separating line becomes a separating plane, but the separating axis is still an axis

  

12、Detecting Convex Collisions: The GJK Algorithm

  Minkowski difference. This fancy-sounding operation is really quite simple: We take every point that lies within shape B and subtract it pairwise from every point inside shape A. The resulting set of points { (Ai - Bj) } is the Minkowski difference.

  tetrahedron:四面体。

    

  simplex:

    

13、Detecting Collisions between Moving Bodies

  Motion in games is usually simulated in discrete time steps. So one simple approach is to treat the positions and orientations of each rigid body as stationary at each time step and use static intersection tests on each “snapshot” of the collision world. This technique works as long as objects aren’t moving too fast relative to their sizes. In fact, it works so well that many collision/physics engines, including Havok, use this approach by default.

14、Swept Shapes

    

15、Continuous Collision Detection (CCD)

  The goal of CCD is to find the earliest time of impact (TOI) between two moving objects over a given time interval.

16、Temporal Coherency。(时间一致性)

  temporal coherency, also known as frame-to-frame coherency.

  每帧不变的数据可以缓存起来,以减少计算量。

17、Phantoms

  For example, we might want the list of all enemies that are within a certain radius of the player character. Havok supports a special kind of collidable object known as a phantom for this purpose.

18、Game-Specific Collision Materials  

19、Force

  力正比于速度与质量。

      

20、linear momentum

    

    力实际上是 linear momentum 的一阶导数。

    

21、Moment of Inertia。(旋转质量)

  The rotational equivalent of mass is a quantity known as the moment of inertia.

  Just as mass describes how easy or difficult it is to change the linear velocity of a point mass, the moment of inertia measures how easy or difficult it is to change the angular speed of a rigid body about a particular axis.

  Moment of inertia is usually denoted by the symbol I.

22、Energy

  Force 将物体移动一段 Distance,就说 Force does work(力做了功)。

  Energy comes in two forms. The potential energy V of a body is the energy it has simply because of where it is relative to a force field such as a gravitational or a magnetic field. (For example, the higher up a body is above the surface of the Earth, the more gravitational potential energy it has.) The kinetic energy of a body T represents the energy arising from the fact that it is moving relative to other bodies in a system. The total energy E = V +T of an isolated system of bodies is a conserved quantity, meaning that it remains constant unless energy is being drained from the system or added from outside the system.

  

23、Sound programmers today use the term audio rendering engine to underscore its many parallels with the graphics rendering engine.

24、signal processing theory

  signal processing theory that underlies almost every aspect of digital audio technology, including digital sound recording and playback, filtering, reverb and other digital signal processor (DSP) effects.

25、The Physics of Sound

  Sound is a compression wave that travels through the air (or some other compressible medium). A sound wave gives rise to alternating regions of air compression and decompression (also known as rarefaction) relative to the average atmospheric pressure.

  As such, we measure the amplitude(振幅) of a sound wave in units of pressure. In SI units, pressure is measured in Pascals, abbreviated Pa. One Pascal is the force of one Newton applied over an area of one square meter (1 Pa = 1 N/m2 = 1 kg/(m*s2)).

  The instantaneous acoustic(听觉) pressure is the ambient atmospheric pressure (considered a constant for our purposes) plus the perturbation caused by the sound wave at one specific instant in time:

    

26、angular frequency

  angular frequency, typically denoted by the symbol w. The angular frequency is just the rate of oscillation measured in radians per second instead of cycles per second. Since one complete circular rotation is 2p radians, w = 2p f = 2p/T.

  angular frequency 指的是每秒的振幅(弧度)。

27、phase(相位)

  

28、波长、频率、速度。

  

29、root mean square,RMS,均方根:每一系列数据(1)平方(2)相加后(3)开根号。

30、acoustic intensity. (听觉强度,指耳朵感受到的强度,单位为 Pa)

    

  sound pressure level,represented by the L(P).  SPL 是取对数后的 acoustic intensity。

    

31、Equal-Loudness Contours

  The human ear is most sensitive in the frequency range between 2 and 5 kHz. As the frequency decreases or increases beyond this range, more and more acoustic intensity (i.e., pressure) is required to produce the same perception of “loudness.”

    

32、longitudinal wave

  纵波是质点的振动方向与传播方向同轴的波。如敲锣时,锣的振动方向与波的传播方向就是一致的,所以声波是纵波。

  transverse wave

  横波是振动方向与传播方向垂直,如光波。

  In games, we typically model the absorption, reflection and sometimes the diffraction (e.g., bending slightly around corners) of our virtual sound waves, but we generally ignore refraction effects because these effects are not easily noticed by a human listener.

  声音引擎通常模拟 吸收、反射、衍射,但不模拟折射。

33、Atmospheric Absorption

  声音 frequency 越高, absorption频率越大。也就是 frequency 越高,越传播不远;frequency 越低,越传播的远。

34、interference

  When multiple waves interact, we call this interference. Constructive interference describes the case in which the waves reinforce one another and the amplitude increases. Destructive interference occurs when the waves cancel each other out, resulting in lower amplitude.

35、Reverb and Echo

  1)Direct(dry)  

  2)Early reflection(echo)

  3)Late reverberation(tail)

    

36、anechoic chamber(无回声室)

  An anechoic chamber is a room especially designed to entirely eliminate reflected sound waves. This is accomplished by lining the walls, floor and ceiling of the room with thick corrugated foam padding that absorbs essentially all of the reflected sound waves. As a result, only the direct (dry) sound reaches the listener or microphone. Sound in an anechoic chamber has a completely “dead” timbre.

37、The Doppler Effect

      

  

38、Signals

  independent variable:自变量。比如速度图像里,就是时间t;纹理中,就是坐标 x、y。

39、continuous and discrete

  1)continuous-time signal. 使用 (t)

  2)discrete-time signal. 使用 [n]

  One common way to think of a discrete-time signal is as a sampled version of a continuous-time signal. The sampling process (also known as digitization or analog-to-digital conversion) lies at the heart of digital audio recording and playback.

40、 superposition.

  When multiple sound waves overlap in space, their amplitudes add together — this is called superposition

41、Linear Time-Invariant (LTI) Systems

  In the context of signal processing theory, a system is defined as any device or process that transforms an input signal into a new output signal.

  A time-invariant system is one for which a time shift in the input signal causes an equal time shift in the output signal.

  A linear system is one that possesses the property of superposition. This means that if an input signal consists of a weighted sum of other signals, then the output is a weighted sum of the individual outputs that would have been produced, had each of the other signals been fed through the system independently.

  

42、The Unit Impulse

  1)In discrete time, the unit impulse d[n] is as simple as it gets: It is a signal whose value is zero everywhere except at n = 0, where its value is one:

    

  2)In continuous time, the unit impulse d(t) is a bit trickier to define. It is a function whose value is zero everywhere except at t = 0, where its value is infinite—but the area under the curve is equal to one.

  3)“box” function b(t), whose value is zero everwhere except in the interval [0, T), where its value is 1/T. The area under this curve is just the area of the box, width times height, or T x1/T = 1.

      

    

43、Using an Impulse Train to Represent a Signal

  The function d[n-k] is a time-shifted discrete unit impulsewhose value is zero everywhere except at time n = k, where it is equal to one.

    

    

44、

45、

46、

Game Engine Architecture 12的更多相关文章

  1. Game Engine Architecture 11

    [Game Engine Architecture 11] 1.three most-common techniques used in modern game engines. 1)Cel Anim ...

  2. Game Engine Architecture 10

    [Game Engine Architecture 10] 1.Full-Screen Antialiasing (FSAA) also known as super-sampled antialia ...

  3. Game Engine Architecture 9

    [Game Engine Architecture 9] 1.Formatted Output with OutputDebugString() int VDebugPrintF(const char ...

  4. Game Engine Architecture 8

    [Game Engine Architecture 8] 1.Differences across Operating Systems • UNIX uses a forward slash (/) ...

  5. Game Engine Architecture 7

    [Game Engine Architecture 7] 1.SRT Transformations When a quaternion is combined with a translation ...

  6. Game Engine Architecture 6

    [Game Engine Architecture 6] 1.Data-Parallel Computations A GPU is a specialized coprocessor designe ...

  7. Game Engine Architecture 5

    [Game Engine Architecture 5] 1.Memory Ordering Semantics These mysterious and vexing problems can on ...

  8. Game Engine Architecture 4

    [Game Engine Architecture 4] 1.a model of multiple semi-independent flows of control simply matches ...

  9. Game Engine Architecture 3

    [Game Engine Architecture 3] 1.Computing performance—typically measured in millions of instructions  ...

随机推荐

  1. 知识点总结 HTML+CSS部分

    1.html+css经典布局 ①左列定宽,右列自适应 .left{width:100px;float:left;} .right{overflow:hidden;} ②两列顶宽,中栏自适应 .left ...

  2. B1038 统计同成绩学生 (20 分)

    #include<iostream> #include<cstring> using namespace std; const int maxn = 10010; int sc ...

  3. CF908G New Year and Original Order(DP,数位 DP)

    又一次降智…… (数位 DP 原来可以写这么短,学到了) 问题可以转化为求数位中 $\ge k$ 的有恰好 $j$ 位的数的个数.设为 $c_{j,k}$. 那么答案就是:(考虑把 $k$ 的贡献拆开 ...

  4. MySQL实战45讲学习笔记:第二十讲

    一.引子 在上一篇文章最后,我给你留了一个关于加锁规则的问题.今天,我们就从这个问题说起吧. 为了便于说明问题,这一篇文章,我们就先使用一个小一点儿的表.建表和初始化语句如下(为了便于本期的例子说明, ...

  5. 数论问题(1) : poj 1061

    最近,本人发现了一个新网站poj(不算新) 当然了,上面的资源很好...... 就是还没搞清楚它的搜索该怎么弄,如果有大佬能教教我怎么弄,请在下方留言 闲话少说,回归我们的正题 题目转自poj 106 ...

  6. [LeetCode] 130. Surrounded Regions 包围区域

    Given a 2D board containing 'X' and 'O'(the letter O), capture all regions surrounded by 'X'. A regi ...

  7. Intellij IDEA通过Plugins导入vue.js

    最近再写vue.js的程序,刚开始使用Intellij IDEA没有导入插件,结果所有vue文件都是文本方式显示,无法使用开发工具的辅助功能,导入vue.js插件后即可. 路径是Setting-> ...

  8. thinkphp5.1 - twig模板-全局变量

    thinkphp5.1 - twig模板-全局变量我们在定义 ccs 之类的静态文件的时候,经常会使用<link rel="stylesheet" href="__ ...

  9. EF Code Frist 执行 nuget命令

    1.Enable-Migrations -EnableAutomaticMigrations2.Add-Migration InitialCreate3.Update-Database -Verbos ...

  10. Java8 新特性 Data Time API

    Java8新的日期类型 在Java8以前,Date日期API对我们非常的不友好,它无法表示日期,只能以毫秒的精试来表示时间,并且可以修改,他的线程还不是安全的.所以Java8中引入了全新的日期和时间A ...