The Calculus Of Game Development And Computer Animation
Vector calculus or Multivariable calculus is one of the most useful branches of mathematics for game development and computer animation. Games and computer graphics are defined by the three-dimensional world, where there is an x, y and z component for every vector defined by a vector space. Without calculus, the whole process of game development would be impossible and modern video games would not exist. Various knowledge in curvatures and slopes are used in computer aided designs to judge the quality of surfaces. Vectors and the geometry of space studied in chapter 12 is closely connected to the topic of game development. A vector is a quantity that has both a magnitude and direction in n-dimensional space. For example, the angry birds game application that is widely played uses vectors to describe the force and direction applied to the bird. Vectors are a necessary tool needed to determine the position of an object at a certain point on the three-dimensional plane. Hence, vectors are used to represent a point in space. The addition and subtraction of vectors can be used to determine the distance between two objects.
The dot product is useful in finding the angle between two vectors and to determine whether vectors are perpendicular to each other. The dot product in game development is used typically in calculating the speed at which an object moves relative to the direction of its slope. For instance, it can also be used to identify how much of a character’s velocity is in the direction of gravity. In gaming, the dot product is crucial in determining whether a player is in front or behind an enemy. A negative dot product means that the player is behind the enemy, a positive dot product means that the player is in front of the enemy, and a zero dot product means that the enemy is to the left or right of the player since they are parallel to each other. Furthermore, the dot product is used to increase a player’s speed on boost pads in Mario Kart. This boost pad works by the dot product in which the player’s incoming speed is |a|, the max boost is |b|, and the amount of boost the player is actually getting is cos(theta), which is represented as |a||b|*cos(theta). Hence, the cross product of vectors in game development can be used to rotate a tank containing a, b and c with axes all perpendicular to each other,. Scalar multiplication of vectors has an effect to change the magnitude of a vector. This can be used to move an object in either direction from one position to another. In games, these vectors are used to store positions, directions and velocity. The importance of vectors is so crucial since it incorporates basic physics and movement into all games.
Multiple integrals have a correlation to game development. Multiple integrals are used to determine the volume and surface area of three-dimensional objects. They are used in computer animated films to stimulate the bouncing of light, subdivision and geometry to create smooth surfaces and harmonic coordinates that make the characters move very realistically. Multiple integrals are most commonly used in computer animation to render objects and powering physics engines. When the characters are moving or in place, animators add shading with a mathematical model which assesses how the movements would play with light. The equation that is used to render light in animation is known as the Kajiya’s Rendering Equation. The rending equation contains many parameters: rendering light at a point, absorption, reflection, refraction, addition light being emitted from a point by a power source, or from light being scattered. Animation scientists take the sum of all incoming light rays to compute the light at one given point, and this sum is represented as an integral over the hemisphere]. Multiple integrals are used in computer graphics to determine how the 3D model will behave under constantly changing conditions. Moreover, the physics engine is a computer software that gives an approximation simulation of physical properties in real time. These complex computations are done in a physics engine through numerical integration, which are responsible for updating the position of objects. The importance of multiple integrals is so crucial to computer graphics in rendering 3D objects and for controlling the movement of characters through computer software.
Advanced computer graphics and game development requires a strong understanding of vector calculus studied in chapter 16. These are functions that assign vectors to points in space. Parametric surfaces, which are studied in section 16.6 are frequently used by programmers in creating software used for the development of computer animated films like the Shrek series. The software then uses parametric and other types of surfaces to create 3D models of the characters and objects in a scene. For instance, in the creation of Boo’s shirt in “Monsters, Inc.” and the bouncing of Merida’s Hair in “Brave” are created through a blend of mathematical functions that serve to smooth out the blocky polygons that make up each shape. The characters in the Pixar films are created with more detail than that of a human being through the use of vector calculus, bringing characters to life in their customized world. Animators rely on vector calculus in creating realistic looking designs, animations and computer-generated imagery for movies. For instance, Pixar’s “Finding Nemo” uses a lot of calculus driven programs to create common 3D effects achieved in the animation. The importance of vector calculus is so crucial in bringing characters in 3D films to life.
In the end, multivariable calculus plays a huge role in the process of game development and computer animated films. It is evident the fundamentals of calculus and vectors is necessary and builds on the foundation of game development and computer animation. Therefore, the knowledge of calculus is very important to graphic animators and game developers in resolving sophisticated graphic problems and developing new programs.
References
- Marco. Vector in game development: Understand the basics of vector math [Internet]. Gamedevelopertips. 2017. Available from: https://gamedevelopertips.com/vector-in-game-development/
- Seal D. Pixar scientist speaks on the calculus of animation [Internet]. The Daily Progress. 2017. Available from: https://www.dailyprogress.com/news/local/pixar-scientist-speaks-on-the-calculus-of-animation/article_972c2b08-c5cd-11e7-a888-6f5424e7233d.html
- Rendering equation [Internet]. Wikipedia. Wikimedia Foundation; 2019. Available from: https://en.wikipedia.org/wiki/Rendering_equation
- Kanber B. Build New Games [Internet]. How Physics Engines Work. Bocoup; 2012. Available from: http://buildnewgames.com/gamephysics/
- Keith H. What Jobs Require Multivariable Calculus? [Internet]. Chron.com. 2017. Available from: https://work.chron.com/jobs-require-multivariable-calculus-27747.html
- Fogerty B. DOT PRODUCT 101 [Internet]. xdPixel. WordPress; 2015 . Available from: http://xdpixel.com/dot-product-101/
- Azad K. Vector Calculus: Understanding the Dot Product [Internet]. Available from: https://betterexplained.com/articles/vector-calculus-understanding-the-dot-product/