1. Field of the Invention
This disclosure relates generally to simulating objects as particles and visually representing the objects based on the simulation and, more particularly, to methods for simulating particle systems with fewer degrees of freedom than those visually represented.
2. Description of Related Art
Contemporary computer and video games tend to incorporate a variety of sophisticated effects designed to mimic the behavior of objects in the real world. These effects include, for example, simulated collisions, explosions, object deformations, and so on. To this end, physics-based “animations” and “simulations” (hereafter these terms are used interchangeably regardless of application, specific method of display, or means of communicating related physics-based data) have been extensively investigated for the last three decades. Physics-based simulations generally involve simulating the movement and interaction of objects using the laws of physics. For example, a video game may model objects such as people, vehicles, arms, ammunition, and so on, as collections of rigid bodies that are animated by applying forces such as gravity, pressure, friction, viscosity, surface tension, mass-spring forces, and impact, to each rigid body. The term “rigid body” is used to describe animated objects that do not deform. Furthermore, rigid bodies are used to represent solid objects. Thus, rigid bodies may include solid objects such as, for example, billiard balls, guns, rocks, etc. In addition, rigid bodies may also be used as skeletons for various other objects such as, for example, character simulation, cars, crates, and barrels. In contrast, non-rigid bodies or deformable bodies are those used to model objects such as fluids, cloth and clothing.
In three dimensional computer graphics, it is common to simulate each rigid body with six degrees of freedom. The term “degree of freedom” is commonly used for describing in how many ways an object is allowed to move. Rigid bodies are generally simulated with six degrees of freedom because they have spatial extent. That is, they occupy some volume in space. Thus, a rigid body typically has linear movement which provides it with three degrees of freedom (forward/backward, left/right, up/down). In addition, because a rigid body has spatial extent, the rigid body also possesses angular movement because of its ability to rotate. This angular movement related to angular rotation adds three additional degrees of freedom to the rigid body, giving the rigid body a total of six degrees of freedom. These additional degrees of freedom would be pitching (tilting up and down), yawing (turning left and right), and rolling (tilting side to side).
In contrast, particles may be typically represented as having only three degrees of freedom because they look the same no matter which way they rotate. Furthermore, particles may be represented with only three degrees of freedom because they are infinitely small.
While rigid bodies may be used to represent objects, there are a number of shortcomings associated with this approach. For example, a larger amount of computational power may be needed to simulate objects as rigid bodies instead of simulating them as particles. This larger computational power requirement may exist because of the need to visually represent an object by simulating it as a rigid body that has six degrees of freedom. While this approach is widely used in computer graphics used in video games, in at least some situations, it may be more feasible to simulate objects as particles instead. This is because in video games, a large number of objects may have to be simulated in a short period of time. Furthermore, the high frame rate (i.e., speed at which the viewer moves from one frame to another) may also increase the demand on computational power for simulation. This is because more simulations may have to be conducted in a shorter period of time. Thus, despite the increase in computational power of processors, simulating objects as particles instead of rigid bodies may reduce the computational power needed for visually representing the objects. This saving of computational power may be useful as the saved computational power may be used for other purposes.
At the same time, this high frame rate may allow for a certain degree of approximation because the attention to detail of the viewer is relatively small. In addition, in many instances of computer graphics used in video games, the amount of approximation allowable in simulating objects on the screen may increase based on certain factors. For example, in situations where a large number of objects occupy a frame at the same time, the need for the highest quality of simulation of each individual object is reduced. This is because when there are many objects on the screen at the same time, it is visually harder for the viewer to observe simulation artifacts on individual objects as long as the overall simulation output is convincing.
In order to take advantage of the approximation allowed for in simulating objects in some applications for computer graphics, various systems have been developed to simulate objects as particles instead of rigid bodies. In the present disclosure, the terms “particle” and “particle system” is used interchangeably. A particle system refers to a plurality of particles. A particle is a point mass that moves under the influence of external forces such as, for example, gravity, vortex fields and collisions with stationary obstacles. Furthermore, a particle typically has only three degrees of freedom. These three degrees of freedom associated with a particle are related to the linear motion of the particle. Thus, the three degrees of freedom used to describe the motion of a particle are forward/backward, left/right, up/down.
Because of the ability to define the position of a particle with only three degrees of freedom, simulating an object as a particle instead of a rigid body is computationally more efficient. While this approach may decrease the computational power required to simulate an object, it suffers from the inherent deficiency that it does not simulate the degrees of freedom associated with the angular movement of the simulated object. As is commonly known, every physical object has angular movement associated with it along with linear movement. Thus, the use of a particle to simulate an object does not give a reasonably accurate visual representation of the simulated object.
The present disclosure is directed towards overcoming one or more problems associated with simulating objects as particles.