04_Practical animation technique

347 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
347
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

04_Practical animation technique

  1. 1. Practical Animation Techniques ±è¼ºÀÍ(noerror@hitel.net) 2004.07.04 http:www.digibath.com/noerror /1
  2. 2. A. Background basic ±âº»ÀûÎ Á¤¡ º¯ÈÀÇ ´Ü°è º¯È Çà·ÄÀ ±¸¼º È®´ë/Ãà¼Ò º¯È ȸÀü º¯È À̵¿ º¯È Çà·Ä°ú ÁÂÇ¥°è °èÃþÀû ±¸¼º2
  3. 3. ±âº»ÀûÎ Á¤¡ º¯ÈÀÇ ´Ü°è vertex transformations pipeline LOCAL LOCAL TRANSFORM TRANSFORM INPUT X X CAMERA -1 VERTEX ¡¦ TRANSFORM ¡¦ DATA X (view X matrix) WORLD WORLD TRANSFORM TRANSFORM VIEWPORT -1 CAMERA RESULT PROJECTED TRANSFORM VERTEX VERTEX (projection matrix) (view matrix) DATA DATA - 3Â÷¿ø Æú¸®°ï ±×·¡ÇÈ¿¼- “¾Ö´Ï¸ÞÀÌ¼Ç => ¹öÅؽºÀÇ ¿òÁ÷ÀÓ ” - ÀÔ·Â ¹öÅؽº ·¹º§ÀÇ ¾Ö´Ï¸ÞÀ̼ǿ¡Â ¹°¸®ÀûÎ Á¦¾àÀÌ µû¸§ - ¾Ö´Ï¸ÞÀ̼ǻ Çϱâ À§Çؼ± Æ®·£½º Æû ¸ÅÆ®¯½º¦ È°¿ë - Æ®·£½º Æû ¸ÅÆ®¯½º¦ °è»êÇÏ´Â °úÁ¤Àº Çϵå¿þ¾îÀ °¡¼Ó ´ë»óÀÌ ¾Æ´Ô3
  4. 4. º¯È Çà·ÄÀ ±¸¼º 1 compounding transformations * ÀϹÝûÎ °-üº¯È (Rigidbody Transform) ÀÇ ±¸¼º¿äÒ - Ò¼àÃ/ë´®È (scale) - È ¸À ü (rotation) - À ̵ ¿ (translation) * °¢ ¿ä¼Ò´Â Çà·Ä (Matrix) · Î Ç ¥Ç ö ° ¡´ É * È®´ë/Ãà¼Ò º¯È (scale transformation) V input = (x, ,y )z V output = V input x M scale = (x * x ’, y * y ’, z * z ’) M scale = | x’ 0 |0 |0 y ’ |0 |0 0 z ’|4
  5. 5. º¯È Çà·ÄÀ ±¸¼º 2 compounding transformations * ȸÀü º¯È (rotate transformation) - ȸÀü Çà·ÄÀº ±âº» XÃà, YÃà, ZÃàÀÌ È¸ÀüÇÏ¿© º¯Èµ ÁÂÇ¥·Î ±¸¼º - Çà·ÄÀ» º¸°í ¸ð¾çÀ» Àл ¼ö ÀÖ½ V input = (x, ,y ) z V output = V input x M rotation = (V input * V x, V input * V y ,V input *V z ) M rotation = | V x.x V x.y V x.z | | V .x V .y y y V .z y | | V .x V .y z z V .zz | * À̵¿ º¯È (translate transformation) V input = (x, ,y ) z V output = V input + V oset f5
  6. 6. Çà·Ä°ú ÁÂÇ¥°è local coordinate system * È®´ë/Ãà¼Ò, ȸÀü°ú À̵¿» µ¿½Ã¡ Ç¥öϱâ À§ÇØ Direct3D´Â 4X4 Çà·Ä»ç¿ë V input = (x, ,y ,z 1) V output = (x ’, y ’, z ’, 1) M rotation+oset f = | V x.x V x.y V x.z 0 | | V .x y V .yy V .z y 0 | | V .x z V .y z V .zz 0 | | V o.x f V o.y V o.z 1 f f | * º¤ÅÍ x º¯È Çà·Ä = º¯È Çà·Ä Î ±¸¼ºµÈ ÁÂÇ¥°è·Î º¯È * ȸÀü Çà·ÉÀº »ç¿ø¼ö (Quaternion) À¸·Î º¯È°¡´É * OpenGLÀÇ Çà·ÄÀº DIrect3DÀÇ ÀüÄ¡ (Tranpose) Ç Ñ Ç üÅ Â6
  7. 7. °èÃþÀû ¿ÀºêÁ§Æ® ±¸Á¶ hierarchical structures - °¢ ¿ÀºêÁ§Æ® º¯ÈÀ» »óÀ§ ¿ÀºêÁ§Æ®¡ ±¸¼ÓµÇ´Â °èÃþÀûÎ ÇüÅ·Π±¸¼º - ¿ÀºêÁ§Æ®³¢¸ ºÎ¸ð (parent) -ÀÚ½Ä (chid) l À Ç ¸ µÅ © ± ¸Á ¶ - È¿À²ûÎ ¾Ö´Ï¸ÞÀÌ¼Ç °¡´É - ÃÖÁ¾ Çà·Ä = ÀÚ½ÅÇ ·ÎÄà Çà·Ä x ºÎ¸ð ¿ÀºêÁ§Æ®Ç Çà·Ä - ¾Ö´Ï¸ÞÀÌ¼Ç Á¤º¸ = ¿ÀºêÁ§Æ® ·ÎÄà Çà·Ä - ·ÎÄà Çà·ÄÀ À̵¿¼ºÐ = ºÎ¸ð ¿ÀºêÁ§Æ® ÁÂÇ¥°è¿¡¼-À Ǻ¿À§Ä¡ void CMeshOjectRender(const Matrix& parentmat) b : { Matrix mat = m_LocalMat * parentmat; RenderMesh(mat); or(i0; imChidN; i) f = < _ l + mMeshOji-Render(mat); _ b[] > }7
  8. 8. B. Animation techniques Basic Game issue orward kinematics f rigid body physics inverse kinematics ÃÄ´Ùº¸±â linear interpolation ¹Ì²ô·¯Áü ¾ø´Â À̵¿ spherical inear interpoation l l ÄõÅʹϾð ¾ÐÃà keyframe animation motion transition Advanced inverse kinematics solver inverse kinematics – constrains quaternion8
  9. 9. ±âÃÊ basic technique * Forward Kinematics - ¾Ö´Ï¸ÞÀÌ¼Ç Á¤º¸´Â °¢ ¿ÀºêÁ§Æ® Ç ÃÖÁ¾ º¯È (ȸÀü, À̵¿, ½ºÄÉÀÏ) µ¥ÀÌŸ - ÇÏÀ§ ¿ÀºêÁ§Æ® (ȤÀº one) b Àº »óÀ§ ¿ÀºêÁ§Æ®Ç ¿µÇâÀ» ¹Þ´ÂÙ - »óÀ§ ¿ÀºêÁ§Æ®´Â ÇÏÀ§ ¿ÀºêÁ§Æ® ¾Ö´Ï¸ÞÀÌ¼Ç ¿µÇâÀ» ¹ÞÁö ¾Ê´ÂÙ. - ¾Ö´Ï¸ÞÀÌ¼Ç Àû¿ë ¹æÇâÀº »óÀ§ ¿ÀºêÁ§Æ®¡¼- ÇÏÀ§ ¿ÀºêÁ§Æ®·Î Àü°³ÇÑ´Ù. * Inverse Kinematics - ǼÌÀ޸ϴ־ ´¸º¤Á ¤Á¯Æ (End Eector)¡° ÒÇøµ ÇÀÓ ¡Ä§À ®Æ§ÁêºÀ¿ f - End EectorÍÅκ §Àó» Chain Root ÇÀöÁî± ¡°©Åµ¸ »Àâǵ¿ . f Ù´Â Þ¹ - End Eector §Àó» ºÀ鵮ƧÁê¿ End EectorÇÀ ¡¿Ä§À »Àâǵ¿ Ù´ÂÞ¹ f f - End Eector¡° ÇÀÓ ¡°Ä§À ,´ǵ ¢° ÇÀ®Æ§Á꺿 ¯Èº (sove)´ f ØÇ l À¯ÏÇÁö ¾ÊÀ¸ç ¹«ÇÑÈ÷ ¸¹À» ¼ö ÀÖ´Ù. - ´ äÀ Ì ¾ øÀ » ¼ öµ µ À Ö´ Ù9
  10. 10. Å°ÇÁ·¹ÀÓ ¾Ö´Ï¸ÞÀÌ¼Ç keyframe animation * ¾Ö´Ï¸ÞÀÌ¼Ç Á¤º¸ = °¢ ¿ÀºêÁ§Æ®Ç ¾Ö´Ï¸ÞÀÌ¼Ç Å°(½Ã°£, º¯È)ÀÇ Á¤º¸ - ½Ã°£¿¡ ¸Â´ °¢ ¿ÀºêÁ§Æ®Ç ·ÎÄà º¯È °ªÀ» ¼Æà * Å° Á¤º¸ - ¾Ö´Ï¸ÞÀÌÅÍ°¡ ÀÛ¾÷ÇÑ Å° Á¤º¸¦ ÀͽºÆ÷® - spline interpolationÀ¸·Î ¾Ö´Ï¸ÞÀÌ¼Ç Å° ÀÛ¾÷» ÇÑ °ÍÀ» °ÔÀÓ¿¡¼- linear interpolation ÇÏ¸é ´Ù¸¥ °áú¡ ³ª¿È - ÀûýÇÑ »ùÇøµÀ·Î ÇØ°á °¡´É10
  11. 11. º¸°£ interpolation * ÀÚ¿øÇ ÇÑ°è·Î ÀúåµÇ´Â ¾Ö´Ï¸ÞÀÌ¼Ç Å°ÀÇ ¼ö´Â À¯ÇÑ * ÀÓÇ ½Ã°£¿¡ ¾Ö´Ï¸ÞÀÌ¼Ç Å°¡ ¾ø´Â °æ¿ì Å° Áß¿¡ ÀÓÇ ½Ã°£º¸´Ù ¾ÕÀÇ Å° Áß¿¡¼- °¡Àå °¡±î¿ Å°¿Í, ½Ã°£º¸´Ù µÚÀÇ Å° Áß¿¡ °¡Àå °¡±î¿ Å°¸¦ ¾òÀº ÈÄ ±× Å°µéÀÇ »çÀÌ °ªÀ¸·Î ¾Ö´Ï¸ÞÀÌ¼Ç Å°¸¦ ±¸ÇÑ´Ù. * µÎ °ªÀÇ »çÀÌ °ªÀ» ±¸ÇÏ´Â °ÍÀ» º¸°£(interpolation)À̶ó°í ÇÑ´Ù. * ¾Ö´Ï¸ÞÀ̼ǿ¡- »ç¿ëÇÏ´Â º¸°£À Spline Interpolation, Linear interpolation µîÀÌ ÀÖ´Ù.11
  12. 12. ¼±Çü º¸°£ (LERP) linear interpolation * ¼±Çü º¸°£À º¯È-·®ÀÌ ÀÏÁ¤ÇÑ º¸°£¹ýÀÌ´Ù - ¸¾à P(0) = p0, P(1) = p1 À̶ó°í °¡Á¤ - 0 <= t <= 1 - P(t) = p0 + (p1 - p0) * t - º ¤Å Í´  ° ¢ ¿ ä¼ Ò º °· Î ¼ ±Ç ü º ¸° £ ° ¡´ É - Çà·ÄÀ ¼±Çü º¸°£À ȸÀüÇ º¸°£ú´Â ´Ù¸¥ ÀÇ¹Ì - ¿ÀÏ·¯°¢¸Î »çÀÌ °ªÀ» ±¸ÇÒ °æ¿ì °¢µ¸¦ ¼±Çüº¸°£ °¡´É ÇÏÁö¸ Ç×»ó °áú¡ η봦Á ´À¿ª³ ºÀÍ° ,ηǹϴƾ η¸ÀûÑǦÁ . (imal Lock ) ٴȵë¿ç» G b ý»ß¹ - ȸÀüÇ º¸°£À» À§Çؼ± »ç¿ø¼ö¸¦ »ç¿ëÇÑ´Ù - »ç¿ø¼ö´Â spherical linear interpolationÀ» »ç¿ëÇÑ´Ù12
  13. 13. ±¸é º¸°£ (SLERP) spherical linear interpolation * ±¸é º¸°£À º¤ÅÍ P0 °¡ ±æÀ̸¦ À¯ÁöÇÑ Ã¤·Î ȸÀüÇؼ- P1°¡ µÇ¾ú´Ù°í ÇßÀ» ¶§ ȸÀüÇÑ ±× »çÀÌ°ª º¸°£ÇÏ´Â ¹æý - |P(0)| = |P(1)| - 0 <= t <= 1 - rad = acos(dotproduct(P(0), P(1))) - P(t) = a(t) P(0) + b(t) P(1) - a(t) = sin( rad * (1-t)) / sin( rad ) - (t) = sin( b rad * t) / sin ( rad ) * ȸÀü ¼ºÐÀ» º¸°£Çϱâ À§Çؼ- »ç¿ø¼ö¡ ´ëÇؼ- °¢ ¼ºÐÀ» ±¸é º¸°£ÇÑ´Ù13
  14. 14. ÀÚ¿¬½º·¯î ¸ð¼Ç Àüȯ motion blending * ÛÀ¿µ ý¯ÈüÀ Àë´ (ÛÀ¿µ A¦¸ Ù´ÏÇëà ÛÀ¿µ B¦¸ ´ÏÇëà ) ì¿æ° - η¸Àû£°ø¼ ÛÀ¿µ Bη ÌÀü ´ǵ ì¿æ° - µ¿ÀÛ B¿Í Áö¸·¿¡¶ ÃëÇÑ µ¿ÀÛ A¸¦ ÀüÌ (transition) ÇÏ´Â °æ¿ì - µ ¿À Û B¿ Í µ À¿ Û AÀ Ç ¼ ¯´  (blending) ¾çÀ» Á¶ÀýÇÏ¿© ÀüȯÇÏ´Â °æ¿ì * ¹æýÀû¸·Î´Â ¾Ö´Ï¸ÞÀ̼ǽà Ű º¸°£ ÇÏ´Â °Íú µ¿ÀÏ * °ÔÀÓ ³» ÀÚ¿¬½º·¯î µ¿ÀÛ ÀüÈ¯Ì °¡´ÉÇÔ * µ¿ÀÛ¡ µû¶ó¼± Àü̵Ǵ ½Ã°£µ Á¶ÀýÇÒ ÇÊ¿ä ÀÖ½14
  15. 15. ¿ªîµÇÐ inverse kinematics * IK ýë¿ç» ¡ÁåÀ - I ´ K Î · ¸ À û ¿ µ » À Ç ¼ Ì Þ ¸ Ï ´ Ö ¾ º ¼ ý » - ÁÖº¯ ¿ÀºêÁ§Æ®ÍÇ »óÈ£ÀÛ¿ë °¡´É - ¾Ö´Ï¸ÞÀ̼ǻ dzºÎÏ°Ô * ³-Á¡ - ´ÏÇð¸Ò¼ CPU ¡¿øÚÀ ØÇñº ÎÀû¦Áǽ ¡°ú¿È Ô°©Å ³ªÁö ¾ÊÀ» ¼ö ÀÖ´Ù - ConstrainµîÀ» ¼¶ÇÏÁö ÇÏÁö¾ÊÀ¸é ÀÌ»óÇÑ ¸ð¼ÇÀÌ Ã ëÇ ØÁ ú ¼ ö À Ö´ Ù (¬¿Ã½)15
  16. 16. ¿ªîµÇÐ – Àç±Íû Á¢±Ù inverse kinematics solver * ¼öÄ¡ÀûÎ ÇØ°áÀº ¿¬»ê·®ÀÌ ¸¹Àç, IK Ư¼º»ó Á¤È®ÇÑ ÇØ´Â Á¸ÀçÇÏö ¾Ê´ÂÙ * Àûº °è»êÀ¸·Î Á¡øÀû, Àç±Íû¸·Î ±Ù»çÀû¸·Î Çظ¦ ¾ò´Â ¹æý ¼Ò°³ * Àç±Íû ·çƾ - ÇÏÀ§ ¿ÀºêÁ§Æ®(ȤÀº Bone)ºÎÅÍ EndEffect °¡ ¸ñÇ¥Á¡ÀÌ ³ª¶õÇÏ°Ô µÇ·Ï ȸÀü (À ÏÁ ÷¼ ±À Ï ¶ § ° ¡À å EndEfect° ¡ ¸ Çñ ¥Á ¡À Ì °¡Àå °¡±î¿ì¹Ç·Î ȸÀüÇϱâ Àüº¸´Ù Ç×»ó EndEfect°¡ ú°¡Á¥Çñ¸ .) f Ù´øÁö¿î±¡° - ´ÙÀ½ ¿ÀºêÁ§Æ®¡ ´ëÇؼ- ´Ù½Ã ¹Ýº - ChainRoot ±îÁö ¹Ýº - ChainRoot¿¡¼- EndEffect ÂÊÀ¸·Î ÁøÇàص µÈ´Ù. (ÀÌ °æ¿ì¡ Á» ´õ °áú¡ Á´Ù.)16
  17. 17. ¿ªîµÇÐ – Á¡øÀû ÇØ°á inverse kinematics solver * ¿¬»êÀ ¹ÝºÇÒ ¼ö·Ï Á¡Â÷ ÇØ´ä¿¡ °¡±î¿öÁø´Ù * ¾î´À ¼ø°£¿¡ ÇØ´äÀ» ¾òÀ» ¼ö ÀÖ´Ù17
  18. 18. ¿ªîµÇÐ – ÄõÅʹϾð Àû¿ë inverse kinematics – making quaternion * ½ÇÁ¦Àû¸·Î Àû¿ëÇϱâ À§Çؼ± 3D»ó ȸÀü» Àû¿ëÇØ¾ß ÇÔ * ÄõÅʹϾðÀÇ ¼ºÁúÀ» ÀÌ¿ë - ÁÂÇ¥°è ³»ÀÇ v1ÀÌ v2°¡ µÇ·Ï ȸÀüÇÒ °æ¿ì - x, y, z, w ÀÇ x, y, z ´Â v1 x v2 ¹æÇâ - ÁÖ¸ÔÀ·Î Ç¥öϸé x, y, z °¡ ¾öÁ ¼Õ°¡¶ô(ȸÀüÃà), w°¡ ȸÀü·® - v1°ú v2°¡ ÀÌ·ç´Â °¢ÀÌ rad À̸é x, y, z ÀÇ Å©±â´Â sin(rad * 0.5) - w ´  cos(rad * 0.5) - Áï, v1°ú v2ÀÇ ¹Ý°¢À» ÀÌ·ç´Â º¤Å͸¦ v3 ¶ó°í Çϸé (rad * 0.5 ÀÇ Æ¯¼º ÀÌ¿ë) - x, y, z ´Â v1 °ú v3ÀÇ Å©·Î½º ÇÁ·Î´öÆ®, w ´Â µÆ® ÇÁ·Î´öÆ® - P 1 = Normalize(·ÎÄà ÁÂÇ¥°è¿¡¼-À EndEffector ÀÇ À§Ä¡) - P 2 = Normalize(·ÎÄà ÁÂÇ¥°è¿¡¼-À ¸ñÇ¥Á¡À À§Ä¡) - P 3 = Normalize(p1 + p2) - x, ,y z = CrossProduct(p1, p3), w = DotProduct(p1, p3)18
  19. 19. ¿ªîµÇÐ - ±¸¼Ó inverse kinematics - constrains * ÀϹÝû¸·Î IK´Â ȸÀü TM¸¸À·Î Á¦ÇÑ´Ù * ȸÀü¿¡µ Á¦¾à(Constrain) À » Á Ù ¼ ö À Ö´ Ù * ȸÀü°¢ Å©±â Á¦ÇÑ - ȸÀü°¢º µÆ® ÇÁ·Î´öÆ® ½±°Ô ±¸ÇÒ ¼ö ÀÖ¸ç, ¸¾à ÃÖ´ëÄ¡º¸Ù °¢µ¡ Å« °æ¿ì¡´Â ȸÀü ÄõÅʹϾðÀ» º¸Á¤ÇÑ´Ù. - x, y, z ÀÇ Å©±â´Â sin(rad*0.5) À̹ǷΠsi n(MAX*0.5) / sin(rad*0.5) °öÇØÁÜ - w ÀÇ Å©±â´Â cos(rad*0.5) À̹ǷΠcos(MAX*0.5)·Î ¼öÁ¤ (ºÎÈ£ ÁÖÀÇ) * ȸÀüÃà Á¦ÇÑ - ƯÁ¤ ÃàÀ¸·Î ȸÀüÇϵ· ±¸¼ÓµÇ¾î ÀÖ´Ù¸é ·ÎÄà ÁÂÇ¥°è¿¡¼- ±¸ÇÑ EndEectorÍ¿ oal ¡¿ ȵӼ¸± ÇÀàà »Àк¼ Ù´ÑÇÅ°¦Á f G19
  20. 20. °-ü ¹°¸®ÇÐ rigid body physics * Çϵå¿þ¾î °¡¼ÓÀ» °í·ÁÇÒ °æ¿ì ¹öÅؽº ½Ã¹Ä·À̼Ǻ ÃÖÀûÌ ¾Æ´Ô * ·»´õ¸µÀÇ °¡¼ÓÀ» °í·ÁÇϸé TM ·¹º§¿¡¼-ÀÇ ¿ÀºêÁ§Æ®Ç ¹°¸®ÇÐ Àû¿ëÌ À¯¸® - ±âº»À TM ·¹º§¸ÀÎ Àû¿ë °¡´ÉÇÑ ¹°¸®Çп¡ ´ëÇؼ- ½ÃµÇÑ´Ù - °¢ Á¶ÀÎÆ®¸¦ ÆļŬ·Î °£ÁÖÇÏí ¹°¸®ÇÐ Àû¿ëÇϵ, ±æÀÌ´Â º¯ÇÏÁö ¾Êµ·Ï Çؼ- ȸÀü ¼ºÐ¸ ³²±ä´Ù - IK¿Í ¸¶Âù°¡Áö·Î ÆļŬÀÇ À̵¿È À§Ä¡¸¦ ÀÌ¿ë ȸÀü TMÀ» ±¸ÇÑ´Ù * ¼è»ç½, Æ÷´Ï Å×ÀÏ µîÀÇ °-ü ¹°¸®¿¡ Àû´ç * dzºÎÏ°í ÀÎÅÍ·ºÆ¼êÇÑ ¾Ö´Ï¸ÞÀÌ¼Ç °¡´ÉÇØÁøÙ (¬¿Ã½)20
  21. 21. ÃÄ´Ùº¸±â looking up at face * È¿°ú - ¾Ö´Ï¸ÞÀÌ¼Ç Ç³ºÎÒ ¼ö·Ï ±â°èÀû̶õ ´ À³ ¦À » ´ ú Á Ø´ Ù - °ÔÀÓ¿¡¼- ÃÄ´Ùº¸±â 󸮴 ij¸¯ÅÍ¿¡ »ý¸í·ÂÀ ÁÖ´Â °¡Àå ½±°í È¿°úÀûÎ ¹æý * ±¸Çö - ¾ÆÁÖ Á¦ÇÑÀûÌ°í ¿¹Ãø°¡´ÉÇϱ⠶§¹®¿¡ ¸Ó® ¿ÀºêÁ§Æ®¡ ´ëÇؼ- ¿ÀÏ·¯ ȸÀü» Àû¿ëÇÏ´Â °Íµ ¹«³- - °¡ÁßÄ(Weight)¸¦ Áشٰųª, ½ºÅÄ´Ùµå ÇÏ°Ô ÀÛ¼ºÇÏ·Á¸é ¾Õ¼- ´Ù·é ÄõÅʹϾðÀ» ÀÌ¿ë21
  22. 22. ¹Ì²ô·¯Áü ¾ø´Â À̵¿ movement based animation * ¾Ö´Ï¸ÞÀ̼ǰú »ó°ü¾øÀÌ ÀÏÁ¤ÇÑ ¼Óµ·Î ÁÂÇ¥¸¦ °»½ÅÇÒ °æ¿ì ¹Ì²ô·¯Áü Çö»ó ¹ß»ý * À̵¿°ú ¾Ö´Ï¸ÞÀÌ¼Ç Á¤Ã¥ - Á¦ÀÛÇÏ´Â ¾Ö´Ï¸ÞÀÌ¼Ç ÀÚü°¡ Á¦ÀÚ¸® °ÉÀ½Ì ¾Æ´Ï¶ó ¹Ì²ô·¯Áü ¾øÀÌ À̵¿ÇÏ· °³¹ß - ÃÖ»óÀ§ º»ÀÇ À̵¿Ä¡¸¦ ±âÁØÀ¸·Î ó¸® - ·»´õ¸µ ÇÒ ¶§ À̵¿ÇÒ ÃàÀÇ °ªÀ» °-Á¦·Î 0 À¸·Î ¼Æà (Á¦ÀÚ¸® °ÉÀ½Çϵ·) - ·çÆ®º» À̵¿ º¤ÅÍ ±¸ÇÏ´Â ÇÔ¼ö°¡ p ¸é p(n) - p(n-1) ÀÇ º¤ÅÍ Áß À̵¿Ãà ¼ºÐ¸ ¾òî¼- À̵¿ - ¸ð¼Ç ºí·£µù Áß¿¡´Â À̵¿Ä¡ °¡ÁßÄ¿ µû¶ó ó¸®22
  23. 23. ÄõÅʹϾð ¾ÐÃà compressing quaternion * ¾Ö´Ï¸ÞÀÌ¼Ç µ¥ÀÌÅÍ°¡ ¸¹¾ÆÁöé ¸Þð® »ç¿ë·®ÀÌ ¸¹¾Æ * ¸Þ𮠾]º°¡ ¸¹°í, ¹ÝºÀûÎ ºÎÐÀÌ Àû¸ç, µ¥ÀÌÅÍ·® ¸¹¾Æ¼- ¸Þ𮠴뿪ÆøÀÇ ¿µÇâÀ» ¹ÞÀ½ * Å° º¸°£À» À§Çؼ- ´ëºÎÐ ¿¬¼ÓµÈ µÎ°³ÀÇ µ¥ÀÌÅ͸¦ Àоîß ÇÔ * ÄõÅʹϾðÀÇ Æ¯¼ºÀ» ÀÌ¿ë - x, ,y z ´ -1-¼¡¿ +1 »Àª°Ìç üÁ¡° - x, ,y ,z w ¡¿ Î𵸠¦¸ö¼½À µØÇëà üÀ¸È к¼ -ȯº ½Àø¾ (w ÇÀª° ¦¸§Àü¹ 0 -¼¡¿ 1»çÀÌ·Î ¸µå´Â °Íµ °¡´É) - °ªÀÇ ¹üÀ§°¡ Á¦Çѵ¹·Î ÃæºÐÇÑ À¯È¿ ÀÚ¸®¼ö¦ È®º¸Çؼ- Fixed Point ·Î º¯È °¡´É * x, y, z, w ¸¦ °¢ 2 byte fixed point ·Î º¯ÈÇÒ °æ¿ì ¸Þ𮦠Àý¹Ý¸ Â÷Áö23
  24. 24. Áú¹® question24

×