<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>www.keremcaliskan.com &#187; Computer Animation</title>
	<atom:link href="http://www.keremcaliskan.com/tag/computer-animation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.keremcaliskan.com</link>
	<description>Görüntü işleme, Medikal Görüntüleme, PACS, DICOM, Surveillance, RFID ...</description>
	<lastBuildDate>Mon, 12 Jul 2010 15:17:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>A Tutorial on Computer Animation &#8211; II</title>
		<link>http://www.keremcaliskan.com/a-tutorial-on-computer-animation-ii-2/</link>
		<comments>http://www.keremcaliskan.com/a-tutorial-on-computer-animation-ii-2/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 12:32:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Animasyon]]></category>
		<category><![CDATA[Computer Animation]]></category>
		<category><![CDATA[Computer Graphics]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=78</guid>
		<description><![CDATA[Tutorial on Computer Animation Kerem Caliskan Abstract This tutorial heavily depends on &#8220;Computer Animation &#8211; Algorithms &#38; Techniques&#8221; book by Rick Parent and the book slides. One can also find definitions from Oxford Dictionary, Wikipedia and many chapter related data from different tutorials / presentations. This is the second part of my tutorial so if  [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h1>Tutorial  on Computer Animation</h1>
<h1>Kerem  Caliskan</h1>
<h1>Abstract</h1>
<p><em> </em></p>
<div align="justify"> <em>This  tutorial heavily depends on &#8220;Computer Animation &#8211; Algorithms &amp;  Techniques&#8221; book by Rick Parent and the book slides. One can also find  definitions from Oxford Dictionary, Wikipedia and many chapter related  data from different tutorials / presentations.</em></p>
<p><em>This  is the second part of my tutorial so if  you wanna start from the  beginning please start with <a href="http://www.keremcaliskan.com/a-tutorial-on-computer-animation-i/" target="_blank">this link</a> first.<br />
</em></p>
<p><em>This  tutorial focuses on explaining computer animation and technical  algorithm infrastructure it makes use of. The tutorial will cover main  topics in Computer animation like :</em>  </p>
<p><em>-  Keyframing, story-boarding, </em></p>
<p><em>-  Kinematics, physically based dynamics modeling, </em></p>
<p><em>-  Motion capture, </em></p>
<p><em>-  Scene composition, lighting, and sound track generation </em></p>
<p><em> This tutorial will teach the readers about current techniques in  computer animation. By the end of the tutorial, the reader should: </em></p>
<p><em>-  have learned the computational methods for modeling of motions in the  physical and virtual world, </em></p>
<p><em>- be  able to understand how to storyboard, light, compose, and render an  animated sequence, </em></p>
<p><em>-  and be able to read and critically evaluate the current literature in  computer animation. </em> </div>
<p><strong>History of Computer Animation</strong></p>
<p>• 1887: Goodwin invented nitrate celluloid film</p>
<p>• 1892: Reynard invented the Praxinoscope</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image026.gif"><img title="Praxinoscope" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image026.gif" alt="Praxinoscope" width="259" height="164" /></a></p>
<p>• 1893: Edison invented the Kinetscope</p>
<p>– Only one viewer at a time</p>
<p>• 1894: Lumiere invented the cinematograph</p>
<p>– Camera + Projector + Printer</p>
<p>• 1900: THE ENCHANTED DRAWING</p>
<p>– Live action films + replacement technique</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image028.gif"><img title="image028" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image028.gif" alt="image028" width="159" height="119" /></a></p>
<p>• 1906: HUMOROUS PHASES OF FUNNY FACES</p>
<p>– The first animation recorded frame by frame</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image030.gif"><img title="image030" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image030.gif" alt="image030" width="159" height="119" /></a></p>
<p>• 1925: “The Adventures of Prince Achmed”</p>
<p>– Lotte Reiniger, 1st feature animation</p>
<p>– Silhouette animation</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image032.gif"><img title="image032" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image032.gif" alt="image032" width="203" height="149" /></a></p>
<p>• 1885: CRT (Cathode Ray Tube)</p>
<p>• 1960: William F. Boeing coins “Computer Graphics”</p>
<p>• 1961: John Whitney, Intro to Alfred Hitchcock’s <em>Vertigo</em></p>
<p>• 1961: Spacewars, 1st video game</p>
<p>• 1963: Ivan Sutherland, Sketchpad</p>
<p>• 1974: z-buffer, Ed Catmull</p>
<p>• 1975: Phong shading</p>
<p>• 1980: Tron, 1st feature film by CG</p>
<p>• 1986: Luxo Jr. nominated for Oscar</p>
<p>• 1995: Toy Story, 1st full CG feature film</p>
<p>•2009: Avatar, 3D Computer Animation + Computer Vision</p>
<h3>Technical Prelimininaries &amp; Introduction to Keyframing</h3>
<h5>Rendering Pipeline :</h5>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image033.gif"><img title="image033" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image033.gif" alt="image033" width="146" height="70" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image035.gif"><img title="image035" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image035.gif" alt="image035" width="129" height="301" /></a></p>
<ul>
<li>All vertices of scene in shared 3-D “world” coordinate system.</li>
<li> Vertices shaded according to lighting model</li>
<li> Scene vertices in 3-D “view” or “camera” coordinate system.</li>
<li> Exactly those vertices &amp; portions of polygons in view frustum.</li>
</ul>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image036.png"><img title="image036" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image036.png" alt="image036" width="410" height="549" /></a></p>
<p>Ray Casting Display Pipeline :</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image038.png"><img title="image038" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image038.png" alt="image038" width="553" height="422" /></a></p>
<p>• Animation is typically produced by the following:</p>
<p>–         Transforming the observer position and orientation in world  space over time.</p>
<p>–         Modifying the position and orientation of objects in world  space over time.</p>
<p>–         Modifying  the shape of objects over time.</p>
<p>–         Modifying display attributes of objects over time.</p>
<p><strong>Transformations : </strong></p>
<p>–         In many applications it is necessary to modify the  position, orientation or size of a 2D object.</p>
<p>–         The most widely used transformations are:</p>
<ul>
<li>Translation: move one object to another position</li>
<li>Rotation: rotate the object around the origin</li>
<li>Scaling: change the size of the object</li>
</ul>
<p>In order to transform an object, we transform the points that define  it.  For instance:</p>
<ul>
<li><em>Polygon</em>: its vertices.</li>
<li><em>Circle</em>: its center and, perhaps, its radius</li>
</ul>
<p><em>Translation</em>: Can be expressed as components or as addition of  column vectors</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image041.gif"><img title="image041" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image041.gif" alt="image041" width="224" height="99" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image043.gif"><img title="image043" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image043.gif" alt="image043" width="218" height="138" /></a></p>
<p><em>Rotation around axes</em> : A point is rotated around the origin.  Rotation is through an angle q.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image047.gif"><img title="image047" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image047.gif" alt="image047" width="120" height="101" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image045.gif"><img title="image045" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image045.gif" alt="image045" width="164" height="91" /></a></p>
<p><em>Rotating around X Axis</em> :</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image049.gif"><img title="image049" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image049.gif" alt="image049" width="224" height="112" /></a></p>
<p><em>Scaling</em> : Changing the size of an object.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image051.gif"><img title="image051" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image051.gif" alt="image051" width="213" height="100" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image053.gif"><img title="image053" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image053.gif" alt="image053" width="229" height="137" /></a></p>
<p>Composition of transformations:</p>
<p>A series of transformations can be multiplied to form a composite  transformation.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image055.gif"><img title="image055" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image055.gif" alt="image055" width="258" height="98" /></a></p>
<p>Example: Rotate an object around an arbitrary point.</p>
<ol>
<li>Translate P so that the axis is at      the origin</li>
<li>Rotate the object</li>
<li>Translate the object so that P      returns to its position</li>
</ol>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image057.gif"><img title="image057" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image057.gif" alt="image057" width="309" height="89" /></a></p>
<p><strong>Round-off Errors :</strong></p>
<div align="justify"> Once a transformation matrix has been formed for an object, the  object is transformed by simply multiplying all of the object&#8217;s  object-space points by the object-to-world-space transformation matrix.  When doing animation, an object&#8217;s points will have to be iteratively  transformed over time. However, incremental transformation of  world-space points usually leads to the accumulation of round-off  errors. For this reason, it is almost always better to modify the  transformation from object to world space and reapply the transformation  to the object space points rather than repeatedly transform the world  space coordinates. To further transform an object which already has a  transformation matrix associated with it, one simply has to form a  transformation matrix and pre-multiply it by the existing transformation  matrix to produce a new one. However, round-off errors also can  accumulate when repeatedly modifying a transformation matrix.</p>
<p>Consider the case of the moon orbiting the earth. For sake of  simplicity, let&#8217;s assume that the center of the earth is at the origin,  and initially the moon data is defined with its center at the origin. We  have four approaches that could be taken and will illustrate various  effects of round-off error.</p>
<p>First the moon data could be transformed out to its orbit position,  let&#8217;s say (r,0,0). For each frame of animation, we could apply a delta  y-axis transformation matrix to the moon&#8217;s points where each delta  represents the angle it move in one frame. Round-off errors will  accumulate in the world-space object points. Points which began as  coplanar will no longer be coplanar. This can have undesirable effects,  especially in display algorithms which linearly interpolate values along  a surface.</p>
<p>The second approach is to build a y-axis transformation matrix that  will take the object space points into their current world-space points.  For each frame, we concatenate a delta y-axis transformation matrix  with the current transformation matrix and then apply that resultant  matrix to the moon&#8217;s points. Round-off error will accumulate in the  transformation matrix. Over time, the matrix will deviate from  representing a rigid transformation. Shearing effects will begin to  creap into the transformation and angles will cease to be preserved.</p>
<p>The third approach is add the delta value to an accumulating angle  variable and then build the y-axis rotation matrix from that angle  parameter. This would then be concatenated with the x-axis translation  matrix and the resultant matrix would be applied to the original moon  points in object space. In this case, round-off error will accumulate in  the angle variable and the angle of rotation may begin to deviate from  what is desired. This may have undesirable effects when trying to  coordinate motions, but the transformation matrix, which is built anew  every frame, will not accumulate any errors itself. The transformation  will always represent a valid rigid transformation with planarity and  angles being preserved. </p></div>
<p><strong>Orientation Representation </strong></p>
<p>Important factor for representation is that whether it allows for  interpolation between key frames or not.</p>
<p>• <em>Transformation Matrix Representation</em> :</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image059.gif"><img title="image059" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image059.gif" alt="image059" width="256" height="131" /></a></p>
<p>• <em>Fixed Angle Representation</em> : Rotate around <strong>global</strong> axes.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image061.gif"><img title="image061" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image061.gif" alt="image061" width="296" height="104" /></a></p>
<p>• <em>Euler Angle Representation</em> : Rotate around <strong>local</strong> axes.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image063.gif"><img title="image063" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image063.gif" alt="image063" width="239" height="160" /></a></p>
<p>• <em>Angle and axis Representation</em>:</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image065.gif"><img title="image065" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image065.gif" alt="image065" width="321" height="115" /></a></p>
<p>• <em>Quaternion Representation</em> :</p>
<div align="justify"> Quaternions are used frequently in computer animations. They’re the  most robust representation of orientation. We’ll spend some time around  quaternions.</p>
<p>Quaternions are similar to axis-angle representations and quaternions  can be used to represent orientation with four values (a scalar and a  3D vector) [s,x,y,z] or [s,<strong><em>v</em></strong>]. Unit quaternions ( q / (  ||q|| ) ) provide a convenient mathematical notation for representing  orientations and rotations of objects in three dimensions. Compared to  Euler angles they are simpler to compose and avoid the problem of gimbal  lock. Compared to rotation matrices they are more numerically stable  and may be more efficient.  </div>
<p><strong>Representing rotation using quaternions :</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image067.gif"><img title="image067" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image067.gif" alt="image067" width="297" height="175" /></a></strong></p>
<p>Basic Quaternion Math: [s1,v1]+[s2,v2] = [s1+s2,v1+v2]</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image069.gif"><img title="image069" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image069.gif" alt="image069" width="297" height="134" /></a></p>
<p><strong>Interpolation of Rotations using  Quaternion Representation :</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image071.gif"><img title="image071" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image071.gif" alt="image071" width="226" height="193" /></a></strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image073.gif"><img title="image073" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image073.gif" alt="image073" width="167" height="151" /></a></strong></p>
<p><strong><br />
</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image075.gif"><img title="image075" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image075.gif" alt="image075" width="292" height="34" /></a></strong><strong> </strong></p>
<p><strong>Interpolation</strong></p>
<p>Interpolation can be explained as generating the in-between values  (like connecting the dots) You should maintain desired control of the  interpolation over time and velocity.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image077.gif"><img title="image077" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image077.gif" alt="image077" width="287" height="136" /></a></p>
<p>Interpolate position of a point in space.</p>
<p>• We can interpolate any changeable value like:</p>
<p>– position</p>
<p>– orientation</p>
<p>– Color (sunrise)</p>
<p>– Intensity (dimmed lights)</p>
<p>– camera focal length (zoom)</p>
<p>• Non-trivial -</p>
<p>– appropriate parameterization of position,</p>
<p>– appropriate interpolating function,</p>
<p><strong>Interpolation function</strong> :</p>
<p>How smooth the resulting function needs to be (i.e. <em>continuity</em>),</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image079.gif"><img title="image079" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image079.gif" alt="image079" width="250" height="288" /></a></p>
<p>• Computational expense &#8211; order of interpolating polynomial</p>
<p>• Local or global control of the interpolating function</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image081.gif"><img title="image081" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image081.gif" alt="image081" width="297" height="185" /></a></p>
<p><strong>Interpolation vs Approximation</strong></p>
<p>• Actual values at key frames (interpolation)</p>
<p>Or</p>
<p>• Control interpolating function and do not represent actual values  (approximation).</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image082.png"><img title="image082" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image082.png" alt="image082" width="420" height="114" /></a></p>
<p><strong>Spline eqations: </strong></p>
<p><em>Cubic curve equations</em> :</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image084.png"><img title="image084" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image084.png" alt="image084" width="459" height="243" /></a></p>
<p>• General form:<em> x</em>(<em>u</em>) = <strong>U</strong>*<strong> M</strong>s<strong> </strong>*<strong> M</strong>g</p>
<p>• <strong>M</strong>s: spline transformation (blending functions)</p>
<p><strong>M</strong>g: geometric constraints (control points)</p>
<p><em>Natural Cubic Splines</em>:</p>
<div align="justify"> Between each pair of control points there is a cubic curve. To make  sure that curves join together smoothly, the first and second derivative  at the end of one curve must equal the the first and second derivative  start of the next one. Computing the natural cubic spline essentially  involves solving a system of simultaneous equations to make sure this  happens.</p>
<p>Unfortunately, while the curve is mathematically smooth, it can  wriggle in quite unexpected ways. And it is also computationally  problematic. Solving 4n systems for equations is expensive! The changes  are not local, change in one point may affect whole system.</p>
<p><em>Hermite Interpolation</em> :</p>
<p>Hermite curves are very easy to calculate but also very powerful.  They are used to smoothly interpolate between key-points (like object  movement in keyframe animation or camera control). Understanding the  mathematical background of hermite curves will help you to understand  the entire family of splines. Maybe you have some experience with 3D  programming and have already used them without knowing that (the so  called kb-splines, curves with control over tension, continuity and bias  are just a special form of the hermite curves).  </p></div>
<p>To calculate a hermite curve you need the following vectors:</p>
<ul>
<li>P1: the start point of the curve</li>
<li>T1: the tangent (e.g. direction      and speed) to how the curve  leaves the start point</li>
<li>P2: he endpoint of the curve</li>
<li>T2: the tangent (e.g. direction      and speed) to how the curves  meets the endpoint</li>
</ul>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image086.png"><img title="image086" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image086.png" alt="image086" width="280" height="200" /></a></p>
<p><em>Catmull-Rom Splines</em> :</p>
<p>Catmull-Rom splines are a family of cubic interpolating splines  formulated such that the tangent at each point pi is calculated using  the previous and next point on the spline, _ (pi+1 −pi−1). The geometry  matrix is given by:</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image088.png"><img title="image088" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image088.png" alt="image088" width="539" height="115" /></a></p>
<p>Unlike a natural cubic spline, a Catmull-Rom spline has <em>local  control</em>. This means that modifying one control point only affects  the part of the curve near that control point.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image090.png"><img title="image090" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image090.png" alt="image090" width="678" height="312" /></a></p>
<p><em>Bezier Curves</em> :</p>
<div align="justify"> Bezier curves are used in computer graphics to produce curves which  appear reasonably smooth at all scales (as opposed to polygonal lines,  which will not scale nicely). Mathematically, they are a special case of  cubic Hermite interpolation (whereas polygonal lines use linear  interpolation). What this means is that curves are constructed as a  sequence of cubic segments, rather than linear ones. But whereas Hermite  interpolating polynomials are constructed in terms of derivatives at  endpoints, Bezier curves use a construction due to Sergei Bernstein, in  which the interpolating polynomials depend on certain <strong>control points</strong>.  The mathematics of these curves is classical, but it was a French  automobile engineer Pierre Bezier who introduced their use in computer  graphics.</p>
<p>Bezier curves are more useful than any other type  mentioned so far;  however, they still do not achieve much local control. Increasing the  number of control points does lead to slightly more complex curves, but  as you can see from the following diagram, the detail suffers due to the  nature of blending all the curve points together. </p></div>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image092.png"><img title="image092" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image092.png" alt="image092" width="623" height="257" /></a></p>
<p><strong>Properties of Bezier Curves</strong>:</p>
<p>• Passes through start and end points</p>
<p>• Lies in the convex hull</p>
<p><strong>Joining Bezier Curves</strong>:</p>
<p>• Start and end points are same (C0)</p>
<p>• Choose adjacent points to start and end in the same</p>
<p>line (C1)</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image095.gif"><img title="image095" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image095.gif" alt="image095" width="297" height="150" /></a></p>
<p>C2 continuity is not generally used in cubic Bézier</p>
<p>curves. Because the information of the current</p>
<p>segment will fix the first three points of the next curve</p>
<p>segment</p>
<p><strong>Controlling the speed</strong>:</p>
<p>• Using an interpolating piecewise spline determine the piecewise  P(u) equations between control points</p>
<p>• Determine the arc-length of the segments by sampling u</p>
<p>• Compute the average velocity of the object between intervals by  arc-length/time</p>
<p>• Move at constant speeds (average velocity) between intervals.</p>
<p><strong>Path following</strong>:</p>
<p>• Apart from the position of the object, the orientation of the  object also has to be considered.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image097.gif"><img title="image097" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image097.gif" alt="image097" width="297" height="144" /></a></p>
<p><strong>Frenet frame</strong>:</p>
<p>If an object is moving along a path, the orientation can be made  directly dependent on the properties of the curve (i.e., tangent and  curvature).</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image099.gif"><img title="image099" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image099.gif" alt="image099" width="160" height="66" /></a> <a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image101.gif"><img title="image101" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image101.gif" alt="image101" width="110" height="62" /></a></p>
<p><strong>Animation languages</strong>:</p>
<p>• Abilities:</p>
<p>– I/O operations for graphical objects</p>
<p>– Support hierarchical composition of objects</p>
<p>– A time variable</p>
<p>-  Interpolation functions</p>
<p>– Transformations</p>
<p>– Rendering-parameters</p>
<p>– Camera attributes</p>
<p>– Producing, viewing, and storing of one of more frames of animation</p>
<p>• A program written in an animation language is</p>
<p>referred to as a <em>script</em>.<strong> </strong></p>
<h3>Shape Deformation Forward  / Inverse Kinematics</h3>
<p><strong>Warping an Object</strong></p>
<p>• Displace one vertex of an object</p>
<p>– And as a consequence make neighbor vertices move with the displaced  vertex</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image102.png"><img title="image102" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image102.png" alt="image102" width="502" height="197" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image104.png"><img title="image104" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image104.png" alt="image104" width="510" height="198" /></a></p>
<p>• Use an attenuation function to determine the amount of displacement  for the other vertices:</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image107.gif"><img title="image107" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image107.gif" alt="image107" width="149" height="60" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image109.gif"><img title="image109" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image109.gif" alt="image109" width="130" height="89" /></a></p>
<p><strong>2D Grid Deformation</strong></p>
<ul>
<li>1974 film “<em>Hunger</em>”</li>
<li>Draw object on grid</li>
<li>Deform grid points</li>
<li>Use bilinear interpolation to recompute vertex positions on deformed  grid</li>
</ul>
<p>• Initially construct a 2D grid around the object as a local  coordinate system aligned with the global axes</p>
<p>– Global to local transformation can be done by simple translate and  scale</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image111.jpg"><img title="image111" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image111.jpg" alt="image111" width="257" height="184" /></a></p>
<p>• Then distort the grid by moving the vertices of the grid.</p>
<p>– This will distort the local coordinate system and hence the  vertices of the object will be relocated in the global coordinate system</p>
<p>The location of the vertex is found using bilinear interpolation,  first interpolate two vertices and then the other two vertices and again  interpolate between these found points to find the vertices in between.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image113.jpg"><img title="image113" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image113.jpg" alt="image113" width="296" height="253" /></a></p>
<p><strong>Global deformations</strong></p>
<ul>
<li>Alan Barr, SIGGRAPH ’84</li>
<li>A 3&#215;3 transformation matrix affects all vertices</li>
</ul>
<p>–         P’=M(P) .dot. P</p>
<ul>
<li>M(P) can taper, twist, bend…</li>
</ul>
<p>Global tapering:</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image115.gif"><img title="image115" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image115.gif" alt="image115" width="297" height="197" /></a></p>
<p>Twist about an axis:</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image117.gif"><img title="image117" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image117.gif" alt="image117" width="297" height="144" /></a></p>
<p><strong>Free-form Deformation (FFD)</strong></p>
<ul>
<li>Sederberg, SIGGRAPH ’86</li>
<li>Position geometric object in local coordinate space</li>
<li>Build local coordinate representation</li>
<li>Deform local coordinate space and thus deform geometry</li>
<li>Similar to 2-D grid deformation</li>
<li>Define 3-D lattice surrounding geometry</li>
<li>Move grid points of lattice and deform geometry accordingly</li>
<li>Local coordinate system is initially defined by three (perhaps non  orthogonal) vectors</li>
</ul>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image119.gif"><img title="image119" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image119.gif" alt="image119" width="297" height="143" /></a></p>
<p><strong>Animation using FFDs</strong>:</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image121.jpg"><img title="image121" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image121.jpg" alt="image121" width="175" height="94" /></a></p>
<p><strong>Hierarchical Kinematic Modeling</strong></p>
<p><strong>Some definitions</strong></p>
<p>• <em>Articulated objects</em>: Hierarchical objects connected end to  end to form multi body jointed chains</p>
<p>– <em>Manipulators</em>: A sequence of objects connected in a</p>
<p>chain by joints. Example: robot arm</p>
<p>• The rigid objects between joints are called <em>links</em>.</p>
<p>The last <em>link </em>in a series of links is called the <em>end</em></p>
<p><em>effector </em>(e.g. the hand of a robot arm)</p>
<p>• The local coordinate system associated with</p>
<p>each joint is referred to as the <em>frame</em>.<strong> </strong></p>
<p>• <em>Kinematics</em>: Studying the movement of objects without  considering the forces involved in producing the movement.</p>
<p>• <em>Dynamics</em>: Studying the underlying forces that produce the  movement.</p>
<p><em>• Hierarchical modeling</em>: Organizing objects in a treelike  structure and specifying movement parameters between their components.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image123.gif"><img title="image123" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image123.gif" alt="image123" width="297" height="130" /></a></p>
<p><strong>Simple vs. Complex Joints</strong></p>
<p>• Joints that allow motion in one directions have one degree of  freedom.</p>
<p>• Complex joints have more degrees of freedom and they can be  represented as a series simple joints connected to each other by zero  length links.</p>
<p>– Examples:</p>
<p>• Ball-and-socket joint (3 DOF)</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image125.gif"><img title="image125" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image125.gif" alt="image125" width="209" height="266" /></a></p>
<p>• Planar joint (2 DOF)</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image127.gif"><img title="image127" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image127.gif" alt="image127" width="159" height="290" /></a></p>
<p><strong>Hierarchical Models</strong></p>
<p>• Represented as trees and nodes are connected by arcs.</p>
<p>• The highest node of the tree is called the root node which  corresponds to the root object whose position is known in the global  coordinate system.</p>
<p>• The position of an intermediate node in the tree can be found by  position of the root node and the transformations on the path from root  to that node.</p>
<p>• Nodes represent object parts (i.e., links)</p>
<p>• Arcs represent joints</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image129.gif"><img title="image129" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image129.gif" alt="image129" width="297" height="182" /></a></p>
<p><strong>Information stored in nodes and arcs :</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image131.gif"><img title="image131" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image131.gif" alt="image131" width="297" height="119" /></a></strong></p>
<p><strong>Positions of vertices</strong></p>
<p>• Are found by traversing the tree from top to bottom and  concatenating the transformations at the joints.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image133.gif"><img title="image133" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image133.gif" alt="image133" width="198" height="105" /></a></p>
<p><strong>Rotations at the joints and appendages:</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image135.gif"><img title="image135" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image135.gif" alt="image135" width="158" height="111" /></a> <a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image137.gif"><img title="image137" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image137.gif" alt="image137" width="131" height="105" /></a></strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Forward Kinematics</strong></p>
<div align="justify">
• Finding the location (and orientation) of the end effectors by  applying all the joint transformations sequentially.All the intermediate  joint angles are given by the user</p>
<p>• Depth-first tree traversal of the tree representations and a stack  to store intermediate composition of transformation matrices is used.  OpenGL’s pushMatrix / popMatrix functions can be used easily to  accomplish this. </p></div>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image141.gif"><img title="image141" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image141.gif" alt="image141" width="297" height="198" /></a></p>
<p><strong>Local Coordinate Frames</strong></p>
<p>• Denavit-Hartenberg Notation from robotics .</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image143.gif"><img title="image143" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image143.gif" alt="image143" width="296" height="99" /></a></p>
<p><strong>Relating two successive frames</strong> :</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image145.gif"><img title="image145" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image145.gif" alt="image145" width="297" height="30" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image147.gif"><img title="image147" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image147.gif" alt="image147" width="237" height="105" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image149.gif"><img title="image149" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image149.gif" alt="image149" width="220" height="136" /></a></p>
<p><strong>Inverse Kinematics</strong></p>
<div align="justify"> <strong><em>Forward</em> kinematics</strong> involves a transformation from joint  angles to 3D positions. Given some articulated figure, we can describe  the figure by relating each joint angle to the limb it is attached to.  Given the angles in question, we can straightforwardly calculate the end  points of the limbs using coordinate transforms. <em>I<strong>nverse</strong></em><strong> kinematics</strong> asks, given a desired end point or position for an  articulated figure, can we calculate the angles?</p>
<p>Forward kinematics is simple, because a set of joint angles specifies  exactly one position. Inverse kinematics, however, is difficult: most  real systems are underconstrained, so for a given goal position, there  could be infinite solutions (i.e. many different joint configurations  could lead to the same endpoint). The field of robotics has developed  many inverse kinematics systems which, due to their constraints, have  closed-form solutions. The inverse kinematics problem for computer  animation is much harder because it must work for arbitrary figures,  like human arms or legs. </p></div>
<p><strong>Analytic computation for simple cases is possible </strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image151.gif"><img title="image151" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image151.gif" alt="image151" width="234" height="117" /></a></strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image153.gif"><img title="image153" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image153.gif" alt="image153" width="179" height="85" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image155.gif"><img title="image155" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image155.gif" alt="image155" width="103" height="76" /></a></strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image157.gif"><img title="image157" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image157.gif" alt="image157" width="131" height="59" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image159.gif"><img title="image159" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image159.gif" alt="image159" width="141" height="53" /></a></strong></p>
<p><strong>The Jacobian</strong></p>
<p>• In many complex joints however, such analytic solutions are not  possible.</p>
<p>• Therefore we use the <em>Jacobian matrix</em> to find the correct  joint angle increments that will lead us to the final end effectors  configuration</p>
<p>• The <em>Jacobian matrix</em> is a matrix of partial derivatives</p>
<p>– Each entry shows how much the change in an input parameter effects  an output parameter</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image161.gif"><img title="image161" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image161.gif" alt="image161" width="99" height="14" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image163.gif"><img title="image163" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image163.gif" alt="image163" width="100" height="15" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image165.gif"><img title="image165" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image165.gif" alt="image165" width="71" height="13" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image167.gif"><img title="image167" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image167.gif" alt="image167" width="297" height="41" /></a></p>
<p>Computing the <em>Jacobian</em>:</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image169.gif"><img title="image169" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image169.gif" alt="image169" width="297" height="127" /></a></p>
<p><strong>Rigid Body Simulation</strong></p>
<p>• Reaction of rigid bodies to forces such as:</p>
<p>– Gravity</p>
<p>– Viscosity</p>
<p>– Friction</p>
<p>– Forces from collisions</p>
<p>–Wind</p>
<p>• When applied to objects, these forces induce linear and angular  accelerations</p>
<div align="justify"> The hardest part of rigid body simulation is modeling the  interactions that occur between bodies in contact. The most commonly  used approaches are penalty methods, followed by analytic methods. Both  of these approaches are constraint ­based, meaning that constraint  forces at the contact points are continually computed and applied to  deter­ mine the accelerations of the bodies. Impulse ­based simulation  is a departure from these approaches, in that there are no explicit  constraints to be maintained at contact points. Rather, all contact  interactions between bodies are affected through collisions; rolling,  sliding, resting, and colliding contact are all modeled in this way. The  approach has several advantages, including simplicity, robustness,  parallelizability, and an ability to efficiently simulate classes of  systems that are difficult to simulate using constraint­ based methods. </div>
<p><strong>Rigid Body Simulation Cycle </strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image171.gif"><img title="image171" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image171.gif" alt="image171" width="297" height="95" /></a></strong></p>
<p>The difference from standard physics is that in computer animation  the motion of objects at discrete times steps is studied along with  significant events and their aftermath.<strong> </strong></p>
<p><strong>Acceleration</strong></p>
<p>• In real life, the forces change as the rigid body changes its  position, orientation, and velocity over the time.</p>
<p>• It is not the best approach to use the acceleration at</p>
<p>the beginning of the time interval to compute the</p>
<p>velocity at the end (known as Euler integration)</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image173.gif"><img title="image173" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image173.gif" alt="image173" width="147" height="18" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image175.gif"><img title="image175" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image175.gif" alt="image175" width="199" height="116" /></a></p>
<p><strong>RK2 Method</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image177.gif"><img title="image177" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image177.gif" alt="image177" width="297" height="194" /></a></strong></p>
<p>First compute the derivative of y(t) at to (which we call k1). We use  k1 to get an initial estimate for y(to+h) labelled y*(to+h) . From  y*(to+h) we can get an estimate for the derivative of y(t) at to+h,  which we will call k2. We then use the average of these two derivatives,  k3, to arrive at our final estimate of y(to+h) labelled y*&#8217;(to+h).</p>
<p><strong>Rotational Motion</strong></p>
<p>• For non-point objects, the mass extent of the object should be  considered.</p>
<p>• <em>Angular velocity</em>: The rate at which the object is rotating  irrespective of its linear velocity.</p>
<p>– the direction of the vector gives the axis of orientation</p>
<p>– the magnitude gives the revolutions per unit time</p>
<p><strong>Linear Velocity of a Rotating Point</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image179.gif"><img title="image179" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image179.gif" alt="image179" width="138" height="83" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image181.gif"><img title="image181" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image181.gif" alt="image181" width="138" height="42" /></a></strong></p>
<p><strong>Center of Mass</strong></p>
<p>• If mass values are provided on some discrete points on the object  (i.e. vertices), the total mass and the center of mass is given byLinear  force F = m . a</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image183.gif"><img title="image183" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image183.gif" alt="image183" width="116" height="68" /></a></p>
<p><strong> </strong></p>
<p><strong>Rigid Body Dynamics Controlling Groups of objects</strong></p>
<p><strong>Bodies in Contact</strong></p>
<p>• <em>Collision</em></p>
<p>– Both kinematic and dynamic components</p>
<p>• <em>Kinematic</em>: Do determine whether two objects</p>
<p>collide or not. Only dependent on the position and orientations of  the objects and how they change over time.</p>
<p>• <em>Dynamic</em>: What happens after collision, what forces are  exchanged, how do they affect objects’ motions.</p>
<p><strong>Collision handling</strong></p>
<p>• Kinematic response</p>
<p>• Take actions after the collision occurs (the penalty method).</p>
<p>• Back up time to the first instant the collision occurs and  determine the appropriate response.</p>
<p><strong>Kinematic Response</strong></p>
<p>• Particle-Plane collision</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image185.gif"><img title="image185" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image185.gif" alt="image185" width="296" height="116" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image187.gif"><img title="image187" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image187.gif" alt="image187" width="287" height="31" /></a></p>
<p>Particle’s position is computed at every time step (particle is  moving at a constant speed)</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image189.gif"><img title="image189" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image189.gif" alt="image189" width="283" height="37" /></a></p>
<p>when <a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image191.gif"><img title="image191" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image191.gif" alt="image191" width="78" height="16" /></a> we understand that the  particle has collided with the plane in the time interval <em>ti-1 </em>and  <em>ti</em>.</p>
<p>When collision is detected, the component of the velocity vector in  the normal direction is negated by subtracting it twice from the  original velocity vector.</p>
<p>• To model the loss of energy during collision a damping factor  0&lt;k&lt;1 is multiplied with the normal component when it is  subtracted the second time.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image193.gif"><img title="image193" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image193.gif" alt="image193" width="296" height="54" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image195.gif"><img title="image195" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image195.gif" alt="image195" width="218" height="66" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image197.gif"><img title="image197" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image197.gif" alt="image197" width="213" height="131" /></a></p>
<p><strong>The Penalty Method</strong></p>
<p>• A point is penalized for penetrating another object</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image199.gif"><img title="image199" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image199.gif" alt="image199" width="297" height="112" /></a></p>
<p>Penalty Spring</p>
<p>The spring produces an upward acceleration with a = &#8211; kd/m</p>
<p>Difficult to determine the mass and the spring constants that will  produce a realistic effect</p>
<p><strong>Testing Collisions Between Planar Polyhedra</strong></p>
<p>• Bounding box tests</p>
<p>– If they indicate a collision then more elaborate tests may be  performed to make sure that the collision exists</p>
<p>• Convex polyhedra – point test</p>
<p>– The point should be on the same side (inside) for all the polygons  that make up the polyhedra</p>
<p>• Concave polyheadra – point test</p>
<p>– Even-odd rule may be used to count the intersections of a ray  emanating from the point to an arbitrary direction with the polygon  faces</p>
<p>• if its odd à point inside the polyhedra</p>
<p>• if its even à point outside the polyhedra</p>
<p>Point test may not be conclusive and it may need to test the edges as  well.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image201.gif"><img title="image201" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image201.gif" alt="image201" width="168" height="136" /></a></p>
<p>The normal that defines the plane of intersection is used to  calculate the response</p>
<p>– point-face penetration</p>
<p>• The normal of the face is used</p>
<p>– Edge-edge intersection</p>
<p>• Cross product of the edges is used as the normal</p>
<p><strong>Backing Up Time</strong></p>
<p>• Can be computationally expensive when too many collisions occur</p>
<p>• Time is backed up to the point of impact, an impulse force is  computed, and the time is moved forward again</p>
<p>• The exact collision time can be found by binary search by setting  L=ti-1 and U=ti and searching between L and U, dividing the interval by  half each time.</p>
<p>The point of collision can also be found by assuming a linear path,  constant-velocity motion. This provides an approximation.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image203.gif"><img title="image203" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image203.gif" alt="image203" width="297" height="113" /></a></p>
<p><strong>Computing the impulse force</strong></p>
<p>The normal to the surface of contact, n, is determined. The relative  positions of the contact points with respect to the center of masses are  computed.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image205.gif"><img title="image205" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image205.gif" alt="image205" width="153" height="70" /></a></p>
<p>The relative velocity of the contact points in the direction of the  normal, n, is computed</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image207.gif"><img title="image207" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image207.gif" alt="image207" width="153" height="84" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image209.gif"><img title="image209" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image209.gif" alt="image209" width="296" height="104" /></a></p>
<p><strong>Enforcing constraints</strong></p>
<p>• Enforcing constraints to physically based animations can be done by  introducing additional forces in the system, such as:</p>
<p>– Springs</p>
<p>– Internal energy constraints (such as distance of vertices from the  center of mass)</p>
<p>• Constraints can be hard or soft constraints.</p>
<p><strong>Controlling group of objects</strong></p>
<p>Particle systems &#8211; Flock behavior &#8211; Autonomous behavior</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image211.gif"><img title="image211" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image211.gif" alt="image211" width="297" height="68" /></a></p>
<p><strong>Particle Systems </strong></p>
<p>Some common assumptions due to large number of particles</p>
<p>– Particles do not collide with other particles</p>
<p>– Particles do not cast shadows, except in an aggregate sense</p>
<p>– Particles only cast shadows on the rest of the environment, not on  each other</p>
<p>– Particles do not reflect light, they are each modeled as light  emitting objects</p>
<p><strong>A frame of a particle system </strong></p>
<p>• Any new particles that are born during this frame are generated,  each new particle is assigned attributes.</p>
<p>• Any particles that have exceeded their allocated life span are  terminated.</p>
<p>• The reaming particles are animated and their shading parameters  changed according to the controlling processes then the particles are  rendered.</p>
<p><strong>Life of a particle</strong> :</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image213.gif"><img title="image213" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image213.gif" alt="image213" width="312" height="170" /></a></p>
<p><strong>Particle Generation</strong></p>
<p>• A random number of particles around an average can be generated.</p>
<p>• Similar number of particles should be terminated to ensure constant  number of particles at each frame.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image215.gif"><img title="image215" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image215.gif" alt="image215" width="297" height="42" /></a></p>
<p><strong>Attributes of Particles</strong></p>
<p>• Position</p>
<p>• Velocity</p>
<p>• Shape Parameters</p>
<p>• Color</p>
<p>• Transparency</p>
<p>• Lifetime (in number of frames)</p>
<p><strong>Particle Animation</strong></p>
<p>• Effect of forces modeled on the environment is computed as  acceleration on the particle</p>
<p>– Gravity, wind, force fields, collisions with environment objects</p>
<p>• Acceleration is used to update the particle’s velocity</p>
<p>• Average velocity is used to update the position</p>
<p>• Shape can be a function of velocity</p>
<p>– An ellipse that elongates with respect to velocity</p>
<p><strong>Flock Behavior</strong></p>
<p>• Local perception and behavior of bodies (i.e. flock members)</p>
<p>– Limited intelligence and simple physics</p>
<p>• Emergent behavior</p>
<p>– Flying in a diamond shape or V shape</p>
<p>– Splitting, merging</p>
<p>Two main forces to keep a collection of objects behaving like a flock</p>
<p>– Collision avoidance</p>
<p>• With the environment</p>
<p>• With other members</p>
<p>– Flock centering</p>
<p>• Can be achieved using localized control</p>
<p><strong>Local control</strong></p>
<p>Computationally desirable</p>
<p>• More realistic</p>
<p>• Three processes modeled in local control</p>
<p>– Physics</p>
<p>– Perception</p>
<p>– Reasoning and reaction</p>
<p>• Negotiates among the various demands due to perception</p>
<p>• Collision avoidance</p>
<p>• Flock centering</p>
<p>• Velocity matching</p>
<p><strong>Interacting with other flock members </strong></p>
<p>• Attractive force</p>
<p>– To move with the flock</p>
<p>• Repulsive force</p>
<p>– A shorter range force for not to collide with neighbors</p>
<p><strong>Flock Leader</strong></p>
<p>In real life leaders change periodically</p>
<p>– The wind resistance is strongest for the leader of a flying flock  of birds.</p>
<p>• But in animation, it may be easier to have one designated leader  whose motion is scripted along a path.</p>
<p><strong>Negotiating the Motion</strong></p>
<p>• Three low-level controllers</p>
<p>– Collision avoidance</p>
<p>– Velocity matching</p>
<p>– Flock centering</p>
<p>• A priority based weighting scheme can be used to combine the  individual requests from the low level controllers.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image217.gif"><img title="image217" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image217.gif" alt="image217" width="211" height="158" /></a></p>
<p><strong>Collision avoidance</strong> :</p>
<p>Using a force field to direct flock members away from an obstacle.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image219.gif"><img title="image219" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image219.gif" alt="image219" width="222" height="166" /></a></p>
<p><strong>Problems with Force Field Technique</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image221.gif"><img title="image221" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image221.gif" alt="image221" width="115" height="107" /></a></strong></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image223.gif"><img title="image223" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image223.gif" alt="image223" width="159" height="81" /></a></p>
<p><strong> </strong></p>
<p><strong>Modeling Flight :</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image225.gif"><img title="image225" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image225.gif" alt="image225" width="148" height="123" /></a><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image227.gif"><img title="image227" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image227.gif" alt="image227" width="128" height="123" /></a></strong></p>
<p><strong><br />
</strong></p>
<p><strong><br />
</strong></p>
<p><strong> </strong><strong> </strong></p>
<p>Rotation types of flight            Forces of flight</p>
<p><strong>Lifting forces</strong> :</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image229.gif"><img title="image229" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image229.gif" alt="image229" width="297" height="132" /></a></p>
<p><strong>Important Points on Modeling Flight </strong></p>
<p>• Turning is effected by horizontal lift</p>
<p>• Increasing pitch increases drag</p>
<p>• Increasing speed increases lift</p>
<p><strong>Autonomous Behavior</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image231.gif"><img title="image231" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image231.gif" alt="image231" width="297" height="146" /></a><br />
</strong></p>
<p><strong>Natural Phenomena </strong></p>
<p>Modeling the plants &amp; clouds.</p>
<p>Using fractals seems to appropriate to model plants, because of  observed self-similarity at various levels</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image233.gif"><img title="image233" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image233.gif" alt="image233" width="122" height="129" /></a></p>
<p>• But how to define the fractal? What about the stochastic behavior?</p>
<p><strong>Animation </strong></p>
<p>• In addition to rendering static plants we should also think about  the motion to animate:</p>
<p>– Motion due to environmental conditions such as wind</p>
<p>– Plant growth</p>
<p><strong>L-System</strong></p>
<p>• Introduced and developed in 1968 by the Hungarian theoretical  biologist and botanist Aristid Lindenmayer</p>
<p>• Formal Grammar consisting of a set of production rules.</p>
<p>• Famously used to model the growth processes of plant development.</p>
<p>• Can be used to generate self-similar fractals</p>
<p>• A procedural technique to model objects</p>
<p><strong>D0L system</strong></p>
<p>• A deterministic and context-free L-System</p>
<p>– Implies each non-terminal has a single grammar rule associated with  it.</p>
<p>– And the left part of a grammar rule consists of a single  non-terminal (i.e., no-context information)</p>
<p><strong>Geometric Interpretation of L-Systems</strong></p>
<p>• Geometric Replacement:</p>
<p>– Replace each symbol with a geometric element.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image235.gif"><img title="image235" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image235.gif" alt="image235" width="297" height="182" /></a></p>
<p><strong>Turtle Graphics :</strong></p>
<p>• Replace each symbol with a drawing command.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image237.gif"><img title="image237" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image237.gif" alt="image237" width="297" height="125" /></a></p>
<p>• Given the initial state of the cursor and the linear and rotational  step sizes, a string can be used to draw a shape .</p>
<p>• The state of the cursor at any point can be given by the current  position and heading of the cursor .</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image239.gif"><img title="image239" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image239.gif" alt="image239" width="297" height="65" /></a></p>
<p><strong>Linearity problem :</strong></p>
<p>• With only the four commands of draw / move / turn_left / turn_right  one can only generate linear shapes.</p>
<p>• Bracketed L -systems are introduced to provide branching</p>
<p>• In the generation rules, a left branch indicates to push the  current state on the stack and a right branch indicates a popping of the  state from the stack and setting it as the current state.</p>
<p>• The stack structures provides unlimited branching</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Bracketed L-Systems</strong></p>
<p>Bracketed L -systems are introduced to provide branching</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image241.gif"><img title="image241" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image241.gif" alt="image241" width="297" height="59" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image243.gif"><img title="image243" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image243.gif" alt="image243" width="82" height="104" /></a> <a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image245.gif"><img title="image245" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image245.gif" alt="image245" width="131" height="162" /></a></p>
<p>Non deterministic  &amp; Stochastic</p>
<p>• In the generation rules, a left branch indicates to push the  current state on the stack and a right branch indicates a popping of the  state from the stack and setting it as the current state.</p>
<p>• The stack structures provides unlimited branching</p>
<p><strong>Animating Plant Growth</strong></p>
<p>• Changes in topology during growth.</p>
<p>• Elongation of existing structures.</p>
<p>• Elongation of structures may be animated by small linear step size  and using rules such as F à FF</p>
<p>• Changes in topology is animated by the bracketing mechanism.</p>
<p>– However, we should not scan and render the final</p>
<p>generated string left to right, the rendering should be</p>
<p>done as we proceed</p>
<p><strong> </strong></p>
<p><strong>Parametric L-Systems</strong></p>
<p>• Symbols may have one or more parameters associated with them</p>
<p>– We can specify different linear, angular step sizes.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image247.gif"><img title="image247" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image247.gif" alt="image247" width="160" height="58" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image249.gif"><img title="image249" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image249.gif" alt="image249" width="297" height="21" /></a></p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image251.gif"><img title="image251" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image251.gif" alt="image251" width="247" height="143" /></a></p>
<p><strong> </strong></p>
<p><strong>Realistic Modeling of Clouds</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image253.gif"><img title="image253" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image253.gif" alt="image253" width="163" height="65" /></a></strong></p>
<p><strong><br />
</strong></p>
<p><strong>Visual Characteristics of Clouds</strong></p>
<p>• Clouds have volumetrically varying amorphous structure with detail  at may different scales.</p>
<p>• Cloud formation often results from swirling, bubbling, and  turbulent processes.</p>
<p>• Clouds have several illumination and shading characteristics.</p>
<p><strong>Volumetric Cloud Modeling</strong></p>
<p>• Two level hierarchy:</p>
<p>– Implicit volumes to represent to global structure of the cloud (the  cloud macrostructure)</p>
<p>• Modeled by implicit functions (such as spheres)</p>
<p>– Procedural methods to define turbulent, noise characteristics at a  smaller scale (the cloud microstructure)</p>
<p>• Modeled by turbulent volume densities</p>
<p><strong>Volumetric Cloud Modeling</strong></p>
<p>• The macro and micro models are combined to define a volumetric  density function (vdf) over a 3D volumetric space</p>
<p>• The densities of the implicit volumes can be combined by using a  cubic blending function and a weighted sum</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image255.gif"><img title="image255" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image255.gif" alt="image255" width="208" height="85" /></a></p>
<p>• To combine the densities from implicit primitives with the  turbulence-based densities a user specified blend percentage can be used  (60% to 80% gives good results).</p>
<p><strong>Modeling and Animating Articulated Figures: Modeling the Arm,  Walking Facial Animation </strong></p>
<p><strong>Terms Related to Human Body Animation</strong></p>
<p>• <strong><em>Sagittal plane</em> :</strong>Perpendicular to the ground and  divides the body into right and left halves.</p>
<p>• <strong><em>Coronal plane</em>: </strong>Perpendicular to the ground and  divides the body into front and back halves.</p>
<p>• <strong><em>Transverse plane</em> : </strong>Parallel to the ground and divides  the body into top and bottom halves.</p>
<p>• <strong><em>Distal</em> : </strong>Away from the attachment of the limb.</p>
<p>• <strong><em>Proximal</em>: </strong>Toward the attachment of the limb.</p>
<p>• <strong><em>Flexion</em>: </strong>Movement of the joint that decreases the  angle between two bones.</p>
<p>• <strong><em>Extension</em>: </strong>Movement of the joint that increases the  angle between two bones.</p>
<p><strong>Challenges in Human Modeling</strong></p>
<p>• Human figure is a very familiar form</p>
<p>• Human form is very complex</p>
<p>– About 200 degrees of freedom</p>
<p>– Some of the parts are deformable</p>
<p>• Humanlike motion is not computationally well defined</p>
<p>– There is no one definitive motion that is humanlike</p>
<p>– Different characteristics for different people</p>
<p><strong>Modeling the Arm: Reaching and Grasping</strong></p>
<p>• To simplify the modeling process, it is usually assumed that the  arm operates independently from the other body parts.</p>
<p>– not realistic</p>
<p>– to provide realism one can add additional joints in a preprocessing  step and position the body and make it ready for the independently  considered arm motion.<strong> </strong></p>
<p><strong>Basic Arm Model </strong></p>
<p>7 DOF</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image257.gif"><img title="image257" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image257.gif" alt="image257" width="187" height="88" /></a></p>
<p>Sometimes the forearm is modeled differently. Because in reality the  forearm rotation is not associated with a localized joint.</p>
<p>– The two forearm bones rotate around each other.</p>
<p>– We can associate this rotation with the elbow or the wrist, or  sometimes a virtual joint in the middle is used to handle forearm  rotation</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image259.gif"><img title="image259" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image259.gif" alt="image259" width="142" height="162" /></a></p>
<p>• In reality each joint has specific limits</p>
<p>– Example: the elbow flexes at most to 20 degrees and extends to 160  degrees</p>
<p>• Some of these limits depend on the situation</p>
<p>• Some of these limits depend on the situation</p>
<p>– Example: It is difficult to fully extend the knee when one is  bending at the hip.</p>
<p><strong>Inverse Kinematics</strong></p>
<p>• The Jacobian technique can be used and the solution can be biased  towards desired joint angles.</p>
<p>• To produce more humanlike motion the Jacobian can be replaced by a  procedural approach</p>
<p>– The joints farther away from the hand has more effect on the  position of the hand</p>
<p>– The joints closer to the hand are used to perform fine orientation  changes</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image261.gif"><img title="image261" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image261.gif" alt="image261" width="179" height="110" /></a></p>
<p>Alternatively, the user can specify the plane between shoulder,  elbow, and the wrist</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image263.gif"><img title="image263" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image263.gif" alt="image263" width="297" height="115" /></a></p>
<p>Shoulder can be modeled as a ball joint or 3 separate joints of 1  DOF.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image265.gif"><img title="image265" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image265.gif" alt="image265" width="127" height="154" /></a></p>
<p><strong>Reaching around obstacles</strong></p>
<p>• The volume of space swept by the limb should not intersect with the  obstacles in a scene</p>
<p>• Several path planning algorithms have been developed</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image267.gif"><img title="image267" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image267.gif" alt="image267" width="297" height="219" /></a></p>
<p>We can use a gradient of Genetic algorithm approach to move the end  effectors towards the goal .</p>
<p><strong>Strength</strong></p>
<p>• Strength may be incorporated into the motion planning of the arm</p>
<p>• For underconstrained problems (i.e., problems with many solutions),  the solution space can be searched for the configurations which places  least amount of strain on the figure.</p>
<p>– Strain can be computed by computing the torque at each joint.</p>
<p>– Comfort is defined as the ratio of the currently requested torque  and the maximum possible torque.<strong> </strong></p>
<p><strong>Walking</strong></p>
<p>• It is a cyclic motion</p>
<p>– Acyclic components</p>
<p>• Turning, tripping</p>
<p>• Responsible for transportation of the body and maintaining balance</p>
<p>• Dynamics is more important in walking</p>
<p>• Walking is dynamically stable, but it is not statically stable</p>
<p>– E.g., When a body freezes in the middle of the walk, it may fall on  the ground</p>
<p>• Experimentally gathered data or a set of adjustable control  parameters are used.</p>
<p>– Example parameters:</p>
<p>• Stride length</p>
<p>• Hip rotation</p>
<p>• Foot placement</p>
<p>• State transition diagrams are used to specify the walking process</p>
<p>• Kinematics can be used for the general walking motion and forces  may be computed to determine the motion of the upper body</p>
<p><strong>Walk Cycle :</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image269.gif"><img title="image269" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image269.gif" alt="image269" width="201" height="159" /></a></strong></p>
<p><strong><br />
</strong></p>
<p><strong>Running Cycle :</strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image271.gif"><img title="image271" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image271.gif" alt="image271" width="214" height="165" /></a></strong></p>
<p><strong><br />
</strong></p>
<p><strong> </strong></p>
<p><strong>Pelvic transport rotation and tilt </strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image273.gif"><img title="image273" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image273.gif" alt="image273" width="297" height="91" /></a></strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image275.gif"><img title="image275" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image275.gif" alt="image275" width="296" height="90" /></a><br />
</strong></p>
<p><strong>Knee Flexion </strong></p>
<p>• Bending at the knee joint prevents the leg to penetrate the floor  during pelvic tilt.</p>
<p>• It also helps to absorb shock</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image277.gif"><img title="image277" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image277.gif" alt="image277" width="297" height="98" /></a></p>
<p><strong>Ankle and Toe Joints </strong></p>
<p>• Ankle and toe joints help flatten out the rotation of the pelvis  above the foot as well as to absorb some shock.</p>
<p><strong>Specifying a new walk </strong></p>
<p>• The animator specifies the kinematic values for pelvic movement,  foot placement, and foot trajectories. The rest is determined by inverse  kinematics.</p>
<p><strong>Dynamics</strong></p>
<p>• Dynamic models may help produce more realistic motion.</p>
<p>– However, the animator looses control over some parameters</p>
<p>• Simplifications</p>
<p>– Some dynamics effects are ignored, such as the effect of the swing  leg on balance</p>
<p>– Forces are considered constant over some time interval</p>
<p>– Leg model is simplified (to a small DOF)</p>
<p>– Several components (e.g. horizontal and vertical) are computed  separately and combined .</p>
<p><strong>Facial Animation</strong></p>
<p>• Face is a deformable object.</p>
<p>• Lip-synching</p>
<p>– Animation of the movement of the lips, the muscle deformation of  the tongue, the articulation of the jaw, and the deformation of the  surrounding face during speech</p>
<p>• Cartoon animation</p>
<p>• Realistic character animation</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image279.jpg"><img title="image279" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image279.jpg" alt="image279" width="237" height="131" /></a></p>
<p><strong>Facial Models</strong></p>
<p>• Acquisition of the geometry of the head</p>
<p>• Acquisition of the motion</p>
<p>– How does the geometry change</p>
<p>• <strong>Face geometry</strong></p>
<p>– Polygon models</p>
<p>– Splines</p>
<p>– Subdivision surfaces</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image281.jpg"><img title="image281" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image281.jpg" alt="image281" width="196" height="162" /></a></p>
<p><strong>Parameterized Models</strong></p>
<p>• Conformational parameters</p>
<p>– 25 parameters in Parke’s model</p>
<p>– Symmetry between the sides of the face is assumed</p>
<p>– 5 parameters to control the shape of the forehead, cheekbone, cheek  hollow, chin, and neck</p>
<p>– 13 scale distances between facial features</p>
<p>– 5 parameters to translate chin, nose, and eyebrow</p>
<p>• Expressive parameters.</p>
<p><strong>Animating the Face</strong></p>
<p>• Simplest approach is to define a set of key poses</p>
<p>– Animation is produced by interpolating between the positions of  their corresponding vertices in the two key poses</p>
<p>– Disadvantage: parts of the facial model are not individually  controllable by the animator</p>
<p>• What are the primitive motions of the face?</p>
<p>• How many degrees of freedom are there in the face?</p>
<p><strong>Facial Action Coding System (FACS)</strong></p>
<p>• 46 basic facial movements, called Action Units (AUs) are defined,  and used in combination to describe all facial expressions.</p>
<p>– Examples:</p>
<p>• Lower brow, raise inner brow, wink, raise cheek, drop jaw.</p>
<p>• Disadvantages:</p>
<p>– It is descriptive, not generative</p>
<p>– It is not time based</p>
<p>– Facial movements are analyzed only relative to a neutral pose</p>
<p>– FACS describes facial expressions, not speech</p>
<p><strong>Muscle Models</strong></p>
<p>• Three types of muscles to model</p>
<p>– Linear</p>
<p>• Contracts and pulls one point (point of insertion) toward another  (point of attachment)</p>
<p>– Sheet</p>
<p>• Parallel array of muscles. Attached to a line instead of a single  point</p>
<p>– Sphincter</p>
<p>• Contracts radially toward an imaginary center.</p>
<p>• Three aspects differentiate one musclebased model from the other</p>
<p>– the geometry of the muscle-skin arrangement</p>
<p>• Are they modeled on the surface or attached to a structural layer  beneath the skin</p>
<p>– the skin model used</p>
<p>– the muscle model used</p>
<p>• The deformation of other points may attenuate based on the distance  from the point of insertion and angle of deviation from the  displacement vector</p>
<p><strong>Animating Cloth &amp; Motion Capture</strong></p>
<p><strong>Simple Draping</strong></p>
<p>• Draping will occur as a cloth is hanged from a fixed number of  support points.</p>
<p>• The cloth is represented as a two dimensional grid of points  located in 3D.</p>
<p>– Certain grid points are fixed</p>
<p>• Convex-hull of the fixed points determine where the draping will  occur.</p>
<p>•Two phases</p>
<p>– The draped surface is approximated with the convex hull of the  constrained points.</p>
<p>– Iterative relaxation process where other grid points are displaced.</p>
<p>• Process continues until the maximum displacement is below a  threshold.</p>
<p>• Vertices on the grid are labeled as <em>interior </em>or <em>exterior </em>depending  on whether they are inside the convex-hull or not.</p>
<p>• The grid points along the line between two constrained points are  determined.</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image283.gif"><img title="image283" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image283.gif" alt="image283" width="297" height="130" /></a></p>
<p><strong>Motion Capture Systems </strong></p>
<p>• The recording of RAW motion data for later use.</p>
<p>• Several different systems on the market</p>
<p>• camera / optical / infrared</p>
<p>• gyroscopes / accelerometers</p>
<p>• magnetic / fiber optic</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Standard pipeline </strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image285.jpg"><img title="image285" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image285.jpg" alt="image285" width="296" height="185" /></a></strong></p>
<p><strong><br />
</strong></p>
<p><strong> </strong></p>
<p><strong>Part of the Process</strong></p>
<p>1. Calibrate Cameras</p>
<p>2. Put Markers on Subject</p>
<p>3. Calibrate Subject</p>
<p>4. Check Quality of Calibration</p>
<p>5. Record Motion</p>
<p>6. Cleanup Point Cloud</p>
<p>7. Label Markers in Point Cloud</p>
<p>8. Cleanup Resulting Data</p>
<p>9. Export Data</p>
<p>10.Import Data into Package of Choice</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image287.gif"><img title="image287" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image287.gif" alt="image287" width="187" height="132" /></a></p>
<p><strong>Usage area </strong></p>
<p><strong><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image289.gif"><img title="image289" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image289.gif" alt="image289" width="143" height="189" /></a></strong></p>
<p><strong><br />
</strong></p>
<p>• Motion Analysis &amp; Research</p>
<p>• Games</p>
<p>• Films &amp; Animated Shorts</p>
<p><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image291.gif"><img title="image291" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image291.gif" alt="image291" width="202" height="161" /></a></p>
<p>• Human Factor Studies</p>
<p>• Performance Arts</p>
<p>• Virtual Reality Simulations</p>
<p>• Education</p>
<p>• etc.</p>
<p><strong>References</strong></p>
<p>METU Ceng732 Lesson Slides</p>
<p>Rick Parent’s book and book slides.</p>
<p>From Oxford English Dictionary<br />
Anderson, Joseph and Barbara Fisher. &#8220;The Myth of Persistence of  Vision.&#8221; Journal of the University Film Association XXX:4 (Fall 1978):  3-8.<br />
Joseph Anderson &amp; Barbara Anderson (1993). The Myth of Persistence  of Vision Revisited. Journal of Film and Video 45:3&#8211;12.<br />
<em>Raster Graphics Handbook</em>. Publisher. Conrac. Date. 1980<br />
<em>Cutting, J.E.</em>, Perception With An Eye For Motion, Mit Press,  Cambridge, pp. 1986.</p>
<p>http://pages.cpsc.ucalgary.ca/~jungle/587/pdf/3-principles.pdf</p>
<p>]http://mrl.snu.ac.kr/courses/CourseAnimation/notes/HistoryOfAnimation.pdf</p>
<p>The Illusion of Life: Disney Animation at  mazon.com SMPTE.org</p>
<p>MIDI.org</p>
<p>Quaternions from Wolfram MathWorld</p>
<p>Exponential Map from Wolfram MathWorld</p>
<p>Spline Curves and Surfaces</p>
<p>Game AI Resources: Pathfinding</p>
<p>Warping and Morphing of Graphical Objects by J. Gomes, L. Darsa, and  L. Velho, Morgan-Kaufmann Publishers</p>
<p>Chris Welman&#8217;s Master&#8217;s thesis, Inverse Kinematics and Geometric  Constraints for Articulated Figure Manipulation &#8211; PDF</p>
<p>Paul Nylander&#8217;s Physics</p>
<p>Robot Dynamics: Equations and Algorithms by Roy Featherstone and  David Orin &#8211; PDF</p>
<p>Spacetime constraints by Adrew Witkin and Michael Kass &#8211; PDF</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.keremcaliskan.com%2Fa-tutorial-on-computer-animation-ii-2%2F&amp;linkname=A%20Tutorial%20on%20Computer%20Animation%20%26%238211%3B%20II"><img src="http://www.keremcaliskan.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.keremcaliskan.com/a-tutorial-on-computer-animation-ii-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Tutorial on Computer Animation &#8211; I</title>
		<link>http://www.keremcaliskan.com/a-tutorial-on-computer-animation-1/</link>
		<comments>http://www.keremcaliskan.com/a-tutorial-on-computer-animation-1/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 12:22:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Animasyon]]></category>
		<category><![CDATA[Computer Animation]]></category>
		<category><![CDATA[Computer Graphics]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=58</guid>
		<description><![CDATA[Tutorial on Computer Animation Kerem Caliskan Abstract This tutorial heavily depends on &#8220;Computer Animation &#8211; Algorithms &#38; Techniques&#8221; book by Rick Parent and the book slides. One can also find definitions from Oxford Dictionary, Wikipedia and many chapter related data from different tutorials / presentations. This tutorial focuses on explaining computer animation and technical algorithm [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h1>Tutorial  on Computer Animation</h1>
<h1>Kerem  Caliskan</h1>
<h1>Abstract</h1>
<p><em> </em></p>
<div align="justify">
<div><em>This  tutorial heavily depends on &#8220;Computer Animation &#8211; Algorithms &amp;  Techniques&#8221; book by Rick Parent and the book slides. One can also find  definitions from Oxford Dictionary, Wikipedia and many chapter related  data from different tutorials / presentations.</em></p>
<p><em>This  tutorial focuses on explaining computer animation and technical  algorithm infrastructure it makes use of. The tutorial will cover main  topics in Computer animation like :</em></p>
<p><em>-  Keyframing, story-boarding, </em></p>
<p><em>-  Kinematics, physically based dynamics modeling, </em></p>
<p><em>-  Motion capture, </em></p>
<p><em>-  Scene composition, lighting, and sound track generation </em></p>
<p><em> This tutorial will teach the readers about current techniques in  computer animation. By the end of the tutorial, the reader should: </em></p>
<p><em>-  have learned the computational methods for modeling of motions in the  physical and virtual world, </em></p>
<p><em>- be  able to understand how to storyboard, light, compose, and render an  animated sequence, </em></p>
<p><em>-  and be able to read and critically evaluate the current literature in  computer animation. </em></p>
<h1>Introduction</h1>
<p>Computer  animation refers to any computer-based computation used for generating  images that creates the perception of motion. Besides position and  orientation of an object, its shape, shading parameters, camera  parameters, lighting, its texture coordinates can also be animated.</p>
<p>For  many of the people around the world Computer Animation is just a part of  the funny new generation cartoons and movies. It&#8217;s true that Hollywood  is one of the biggest sector that makes use of computer animation but  one should know that most of the computer animation done in the world  has nothing to do with movies. Computer game industry has always been  one of the most challenging industries that completely relied on  computer animation. They&#8217;re now also taking the chance of being animated  MUDs (Multi User Dungeons). Majority of the games are played online and  they use the experience coming from both Computer Animation and MUD  infrastructure. Computer games take advantage of state of the art  technologies for exploiting both CPU and GPU in order to render more  realistic figures.<br />
Real-time performance driven computer animation has already appeared at  every realistic application that needs to render more information.  Virtual reality especially augmented reality makes use of computer  animation for connecting real time images and computer generated images.  Computer animation is getting a part of our life as both CPU and GPU  manufacturers embed more power on their chips. So what is the main  difference between flight simulators, electronic warfare simulators,  nuclear reactor simulators, weapon simulators and standard computer  games? Cost, inter process communication and distributed communication  structure, generated image quality and real time issues are the most  important differentiators between these two groups.</p>
<p><img title="Daha fazla..." src="http://localhost/keremcaliskan/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<h2>•          Perception:</h2>
<p>In  philosophy, psychology, and the cognitive sciences, perception is the  process of attaining awareness or understanding of sensory information.  It is a task far more complex than was imagined in the 1950s and 1960s,  when it was predicted that building perceiving machines would take about  a decade, a goal which is still very far from fruition. The word comes  from the Latin words <em>perceptio, percipio,</em> and means &#8220;receiving,  collecting, action of taking possession, apprehension with the mind or  senses.&#8221;. The notion that perception is a requisite property of animate  action; without perception action would not be guided and without action  perception would be pointless.<br />
It&#8217;s well known that when a series of images are displayed in a rapid  succession, they&#8217;re perceived as a moving image by an observer. This is  possible because the eye-brain complex has the ability, under sufficient  viewing conditions and within certain playback rates, to create a  sensation of continuous imagery from such a sequence of still images.  This experience is due to <em>persistence of vision</em> where eye retains  a visual imprint of an image for a brief instant once the stimulus is  removed. These imprint known as <em>positive afterimages </em>fill in the  gaps between the images to produce the perception of a continuously  changing image.  Persistence of vision is not the same as perception of  motion. Rotating a light source with high frequency may result in a  stationary ring image. Although this effect can be attributed to  persistence of vision, the result is static. Recently, the causality of  the ( physiological ) persistence of vision mechanism has been called  into question and the perception of motion has been attributed to a (  psychological ) mechanism known as <em>phi phenomenon</em>; the apparent  motion is referred to as <em>beta motion</em>. A critical part of  understanding these visual perception phenomena is that the eye <em>is  not a camera</em>: there is no &#8220;frame rate&#8221; or &#8220;scan rate&#8221; in the eye;  instead, the eye/brain system has a combination of motion detectors,  detail detectors and pattern detectors, of which each output is combined  to create the visual experience. In order to persuade the observer to  the continuous imagery image sequences should be shown on decent  frequencies. When the observer loses her perception of continuous  imagery the display is said to <em>flicker</em>. This may change owing to  observer distance, lighting etc. so the frequency depends on some  external factors. This rate is referred as <em>critical flicker frequency</em>.   There is also an upper frequency limit for the eye to respond  accurately enough for the brain to distinguish sharply defined,  individual detail. As a result <em>motion blur</em> occurs.<br />
For a true perception of image motion we should also understand other  technical constraints which depend on standards used for displaying the  images.<em> Update rate </em>depends on the number of images that is shown  per second whereas <em>display rate </em>is dependent on the ability of  your display hardware to show images per second.<br />
In hand-drawn animation, fast moving objects are typically stretched in  the direction of travel so that the object’s images overlap.</p>
<h2>•          Principles of Computer Animation</h2>
<p><strong>•  Simulating Physics</strong></p>
<p>• <em>Squash  &amp; Stretch</em> : defining the rigidity and mass of an object by  distorting its shape during an action</p>
<div>
<dl id="attachment_108">
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image002.gif"><img title="Squash Stretch" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image002.gif" alt="Squash Stretch" width="296" height="136" /></a></dt>
<dd>Squash Stretch</dd>
</dl>
</div>
<p>•<em>Timing</em> : Spacing actions to define the weight and size of objects and the  personality of characters. Weight, size, and personality of an object  should determine  how the actions are spaced through time. Light objects  move quickly, whereas heavier ones move slower.</p>
<div>
<dl id="attachment_108">
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image004.gif"><img title="Animation Timing" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image004.gif" alt="Animation Timing" width="296" height="136" /></a></dt>
<dd>Animation Timing</dd>
</dl>
</div>
<p>• <em>Slow  in &amp; slow out</em>: The spacing of the in-between frames to achieve  subtlety of timing and movement. Inertia, friction, and viscosity should  be taken into account.  Rather than having a uniform velocity for an  object, it is more appealing, and sometimes more realistic, to have the  velocity vary at the extremes.</p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image006.gif"><img title="Slow In &amp; Slow Out" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image006.gif" alt="Slow In &amp; Slow Out" width="296" height="136" /></a></dt>
<dd>Slow In &#8211; Slow Out</dd>
</dl>
</div>
<p>• <em>Arcs</em>:  Objects should follow an arc rather than a straight line. Independent  curves should be used for position interpolation and speed control.</p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image008.gif"><img title="Arcs" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image008.gif" alt="Arcs" width="209" height="129" /></a></dt>
<dd>Arcs</dd>
</dl>
</div>
<p>• <em>Secondary actions</em>:  The action of an object resulting from another action. They’re like a  chain reaction and should follow the main action.</p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image010.gif"><img title="Secondary Actions" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image010.gif" alt="Secondary Action" width="295" height="139" /></a></dt>
<dd>Secondary Actions</dd>
</dl>
</div>
<p><strong>•  Designing Aesthetic Actions</strong></p>
<ol>
<li><em>Exaggeration :</em> Accentuating the essence of an idea via the       design and the action. Draws attention to the action.</li>
<li><em>Appeal :</em> Creating a design or an action that the audience       enjoys watching.</li>
</ol>
<ol>
<li><em>Follow Through/Overlapping Action</em>: <em>Follow through</em> is  the termination part of an action. <em>Overlapping</em> establishes the  next action&#8217;s relationship by starting it before the first action has  completely finished. This keeps the interest of the viewer, since there  is no dead time between actions.</li>
</ol>
<p><em>Follow  through:</em></p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image012.gif"><img title="Follow Through" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image012.gif" alt="Follow Through" width="297" height="116" /></a></dt>
<dd>Follow Through</dd>
</dl>
</div>
<p><em>Overlapping  Action:</em></p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image014.gif"><img title="Secondary Actions" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image014.gif" alt="Overlapping Action" width="296" height="174" /></a></dt>
<dd>Overlapping Action</dd>
</dl>
</div>
<p><em><br />
</em></p>
<p><strong>•  Effective Presentation of Actions</strong></p>
<ol>
<li><em>Anticipation:</em> Preparation for an action</li>
<li><em>Staging</em>: Presenting an idea so that it is unmistakably clear.  This idea can be an action, a personality, an expression, or a mood. An  important objective of staging is to lead the viewers eye to where the  action will occur so that they do not miss anything. Action environment  has to be set up so that it is not missed by the audience.</li>
</ol>
<p><em>Anticipation:</em> An upcoming action should be set up so that audience knows it is  coming. An action breaks down into:</p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image016.gif"><img title="Anticipation" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image016.gif" alt="Anticipation" width="124" height="152" /></a></dt>
<dd>Anticipation</dd>
</dl>
</div>
<p>– <em>Anticipation</em></p>
<p>– <em>Action</em></p>
<p>– <em>Reaction</em></p>
<p>• <em>Anatomical  motivation</em>: a muscle must extend before it can contract. Prepares  audience for action so they know what to expect.  Directs audience’s  attention. Amount of anticipation can affect perception of speed and  weight.</p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image018.gif"><img title="Anatomical motivation I" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image018.gif" alt="Anatomical motivation I" width="124" height="152" /></a></dt>
<dd>Anatomical motivation I</dd>
</dl>
</div>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image020.gif"><img title="Anatomical motivation II" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image020.gif" alt="Anatomical motivation II" width="124" height="152" /></a></dt>
<dd>Anatomical motivation II</dd>
</dl>
</div>
<ul>
<li><em>Timing</em> : Appropriate duration for the action should be given  so that the intended effect reaches the audience.</li>
<li><strong>Production Technique</strong></li>
</ul>
<ol>
<li><em>Straight Ahead Action:</em> In hand drawn animation  when the  animator starts at the first drawing in a scene and then draws all of  the subsequent frames until he reaches the end of the scene. This  creates very spontaneous and zany looking animation and is used for  wild, scrambling action.</li>
<li><em>Pose to Pose Action:</em> When the animator carefully plans out  the animation, draws a sequence of poses, i.e., the initial, some  in-between, and the final poses and then draws all the in-between frames  (or another artist or the computer draws the inbetween frames). This is  used when the scene requires more thought and the poses and timing are  important.</li>
</ol>
<p><strong>Animation  Four-level hierarchy: </strong></p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image022.gif"><img title="Four-level hierarchy" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image022.gif" alt="Four-level hierarchy" width="296" height="114" /></a></dt>
<dd>Four-level hierarchy</dd>
</dl>
</div>
<p>-  Production: The entire animation</p>
<p>- <em>Sequence</em>:  A major episode with an associated staging area</p>
<p>- <em>Shot</em>:  A continuous camera recording</p>
<p>- <em>Individual  frames</em>: A single recorded image.</p>
<p>!!! A  production usually consists of one to dozen sequences .</p>
<ul>
<li><strong>Animation Production Steps: </strong></li>
</ul>
<p>A  preliminary story with a script is decided on</p>
<p>•A <em>storyboard</em> is developed</p>
<p>- It  lays out the action scenes by sketching representative frames.</p>
<div>
<dl>
<dt><a href="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image024.jpg"><img title="Storyboard" src="http://www.keremcaliskan.com/wp-content/uploads/2009/06/image024.jpg" alt="Storyboard" width="297" height="175" /></a></dt>
<dd>Storyboard</dd>
</dl>
</div>
<p>•A <em>model sheet</em> is  developed that lists the characters in various poses.</p>
<p>• The <em>exposure  sheet</em> records information for each frame such as camera moves,  sound track cues.</p>
<p>• The <em>route  sheet</em> records the statistics and responsibility of each scene.</p>
<p><em>Animatic</em>:  Also called a <em>story reel</em>. A prototype animation that helps to  work on timing, revise storyboard, etc. To sum up, it is a storyboard  with timing.</p>
<p>• Once  the <em>storyboard</em> has been decided on a detailed story is developed.</p>
<p>• Key  frames are produced by master animators</p>
<p>• <em>In-betweening</em>:  Associate and assistant animators produce the frames between the keys</p>
<p><strong>Sound </strong></p>
<p>• In  lip-synched animation, sound-track is created first and then animation  is produced to fit the sound-track.</p>
<p>• Music</p>
<p>•  Special effects</p>
<p>• Voice</p>
<ul>
<li><strong>Conventional vs. computer animation </strong></li>
</ul>
<p>Computer  animation borrows a lot of ideas from conventional animation in terms  of production approaches.</p>
<p>•  However, there are <strong>differences</strong>:</p>
<p>– The  lighting, camera models, motion can be <strong>reused</strong> easily in computer  animation</p>
<p>–  Multiple detailed models can be used in computer animation</p>
<p>• <em>Test  shot</em>: short high quality rendering</p>
<p>• <em>Pencil  test</em>: low quality models and approximate motions</p>
<p>Editing  for introducing special affects:</p>
<p><em>Linear</em>-<em>nonlinear</em> editing possible. <em>Timeline</em> for non-linear editing, we need  digital video for non-linear editing</p>
</div></div>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.keremcaliskan.com%2Fa-tutorial-on-computer-animation-1%2F&amp;linkname=A%20Tutorial%20on%20Computer%20Animation%20%26%238211%3B%20I"><img src="http://www.keremcaliskan.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.keremcaliskan.com/a-tutorial-on-computer-animation-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
