04_Practical animation technique2. A. Background
basic
±âº»ÀûÎ Á¤¡ º¯ÈÀÇ ´Ü°è
º¯È Çà·ÄÀ ±¸¼º
È®´ë/Ãà¼Ò º¯È
ȸÀü º¯È
À̵¿ º¯È
Çà·Ä°ú ÁÂÇ¥°è
°èÃþÀû ±¸¼º
2
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. º¯È Çà·ÄÀ ±¸¼º 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. º¯È Çà·ÄÀ ±¸¼º 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
f
5
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. °èÃþÀû ¿ÀºêÁ§Æ® ±¸Á¶
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. 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
quaternion
8
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. Å°ÇÁ·¹ÀÓ ¾Ö´Ï¸ÞÀ̼Ç
keyframe animation
* ¾Ö´Ï¸ÞÀÌ¼Ç Á¤º¸ = °¢ ¿ÀºêÁ§Æ®Ç ¾Ö´Ï¸ÞÀÌ¼Ç Å°(½Ã°£, º¯È)ÀÇ Á¤º¸
- ½Ã°£¿¡ ¸Â´ °¢ ¿ÀºêÁ§Æ®Ç ·ÎÄà º¯È °ªÀ» ¼ÆÃ
* Å° Á¤º¸
- ¾Ö´Ï¸ÞÀÌÅÍ°¡ ÀÛ¾÷ÇÑ Å° Á¤º¸¦ ÀͽºÆ÷®
- spline interpolationÀ¸·Î ¾Ö´Ï¸ÞÀÌ¼Ç Å°
ÀÛ¾÷» ÇÑ °ÍÀ» °ÔÀÓ¿¡¼- linear interpolation
ÇÏ¸é ´Ù¸¥ °áú¡ ³ª¿È
- ÀûýÇÑ »ùÇøµÀ·Î ÇØ°á °¡´É
10
11. º¸°£
interpolation
* ÀÚ¿øÇ ÇÑ°è·Î ÀúåµÇ´Â ¾Ö´Ï¸ÞÀÌ¼Ç Å°ÀÇ ¼ö´Â À¯ÇÑ
* ÀÓÇ ½Ã°£¿¡ ¾Ö´Ï¸ÞÀÌ¼Ç Å°¡ ¾ø´Â °æ¿ì Å° Áß¿¡ ÀÓÇ ½Ã°£º¸´Ù ¾ÕÀÇ
Å° Áß¿¡¼- °¡Àå °¡±î¿ Å°¿Í, ½Ã°£º¸´Ù µÚÀÇ Å° Áß¿¡ °¡Àå °¡±î¿ Å°¸¦
¾òÀº ÈÄ ±× Å°µéÀÇ »çÀÌ °ªÀ¸·Î ¾Ö´Ï¸ÞÀÌ¼Ç Å°¸¦ ±¸ÇÑ´Ù.
* µÎ °ªÀÇ »çÀÌ °ªÀ» ±¸ÇÏ´Â °ÍÀ» º¸°£(interpolation)À̶ó°í ÇÑ´Ù.
* ¾Ö´Ï¸ÞÀ̼ǿ¡- »ç¿ëÇÏ´Â º¸°£À Spline Interpolation, Linear interpolation
µîÀÌ ÀÖ´Ù.
11
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. ±¸é º¸°£ (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. ÀÚ¿¬½º·¯î ¸ð¼Ç Àüȯ
motion blending
* ÛÀ¿µ ý¯ÈüÀ Àë´ (ÛÀ¿µ A¦¸ Ù´ÏÇëà ÛÀ¿µ B¦¸ ´ÏÇëà )
ì¿æ°
- η¸Àû£°ø¼ ÛÀ¿µ Bη ÌÀü ´ǵ ì¿æ°
- µ¿ÀÛ B¿Í Áö¸·¿¡¶ ÃëÇÑ µ¿ÀÛ A¸¦ ÀüÌ (transition) ÇÏ´Â °æ¿ì
- µ ¿À Û B¿ Í µ À¿ Û AÀ Ç ¼ ¯´  (blending) ¾çÀ» Á¶ÀýÇÏ¿© ÀüȯÇÏ´Â °æ¿ì
* ¹æýÀû¸·Î´Â ¾Ö´Ï¸ÞÀ̼ǽà Ű º¸°£ ÇÏ´Â °Íú µ¿ÀÏ
* °ÔÀÓ ³» ÀÚ¿¬½º·¯î µ¿ÀÛ ÀüÈ¯Ì °¡´ÉÇÔ
* µ¿ÀÛ¡ µû¶ó¼± Àü̵Ǵ ½Ã°£µ Á¶ÀýÇÒ ÇÊ¿ä ÀÖ½
14
15. ¿ªîµÇÐ
inverse kinematics
* IK ýë¿ç» ¡ÁåÀ
- IÂ ´ K Î · ¸ À û ¿ µ » À Ç ¼ Ì Þ ¸ Ï ´ Ö ¾ º ¼ ý »
- ÁÖº¯ ¿ÀºêÁ§Æ®ÍÇ »óÈ£ÀÛ¿ë °¡´É
- ¾Ö´Ï¸ÞÀ̼ǻ dzºÎÏ°Ô
* ³-Á¡
- ´ÏÇð¸Ò¼ CPU ¡¿øÚÀ ØÇñº ÎÀû¦Áǽ ¡°ú¿È Ô°©Å
³ªÁö ¾ÊÀ» ¼ö ÀÖ´Ù
- ConstrainµîÀ» ¼¶ÇÏÁö ÇÏÁö¾ÊÀ¸é ÀÌ»óÇÑ ¸ð¼ÇÀÌ
à ëÇ ØÁ ú ¼ ö À Ö´ Ù
(¬¿Ã½)
15
16. ¿ªîµÇÐ – Àç±Íû Á¢±Ù
inverse kinematics solver
* ¼öÄ¡ÀûÎ ÇØ°áÀº ¿¬»ê·®ÀÌ ¸¹Àç, IK Ư¼º»ó Á¤È®ÇÑ ÇØ´Â Á¸ÀçÇÏö ¾Ê´ÂÙ
* Àûº °è»êÀ¸·Î Á¡øÀû, Àç±Íû¸·Î ±Ù»çÀû¸·Î Çظ¦ ¾ò´Â ¹æý ¼Ò°³
* Àç±Íû ·çƾ
- ÇÏÀ§ ¿ÀºêÁ§Æ®(ȤÀº Bone)ºÎÅÍ EndEffect °¡
¸ñÇ¥Á¡ÀÌ ³ª¶õÇÏ°Ô µÇ·Ï ȸÀü
(À ÏÁ ÷¼ ±À Ï ¶ § ° ¡À å EndEfect° ¡ ¸ Çñ ¥Á ¡À Ì
°¡Àå °¡±î¿ì¹Ç·Î ȸÀüÇϱâ Àüº¸´Ù Ç×»ó
EndEfect°¡ ú°¡Á¥Çñ¸ .) f Ù´øÁö¿î±¡°
- ´ÙÀ½ ¿ÀºêÁ§Æ®¡ ´ëÇؼ- ´Ù½Ã ¹Ýº
- ChainRoot ±îÁö ¹Ýº
- ChainRoot¿¡¼- EndEffect ÂÊÀ¸·Î ÁøÇàص
µÈ´Ù. (ÀÌ °æ¿ì¡ Á» ´õ °áú¡ Á´Ù.)
16
17. ¿ªîµÇÐ – Á¡øÀû ÇØ°á
inverse kinematics solver
* ¿¬»êÀ ¹ÝºÇÒ ¼ö·Ï Á¡Â÷ ÇØ´ä¿¡ °¡±î¿öÁø´Ù
* ¾î´À ¼ø°£¿¡ ÇØ´äÀ» ¾òÀ» ¼ö ÀÖ´Ù
17
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. ¿ªîµÇÐ - ±¸¼Ó
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 G
19
20. °-ü ¹°¸®ÇÐ
rigid body physics
* Çϵå¿þ¾î °¡¼ÓÀ» °í·ÁÇÒ °æ¿ì ¹öÅؽº ½Ã¹Ä·À̼Ǻ ÃÖÀûÌ ¾Æ´Ô
* ·»´õ¸µÀÇ °¡¼ÓÀ» °í·ÁÇϸé TM ·¹º§¿¡¼-ÀÇ ¿ÀºêÁ§Æ®Ç ¹°¸®ÇÐ Àû¿ëÌ À¯¸®
- ±âº»À TM ·¹º§¸ÀÎ Àû¿ë °¡´ÉÇÑ ¹°¸®Çп¡ ´ëÇؼ- ½ÃµÇÑ´Ù
- °¢ Á¶ÀÎÆ®¸¦ ÆļŬ·Î °£ÁÖÇÏí ¹°¸®ÇÐ Àû¿ëÇϵ, ±æÀÌ´Â º¯ÇÏÁö ¾Êµ·Ï Çؼ-
ȸÀü ¼ºÐ¸ ³²±ä´Ù
- IK¿Í ¸¶Âù°¡Áö·Î ÆļŬÀÇ À̵¿È À§Ä¡¸¦ ÀÌ¿ë ȸÀü TMÀ» ±¸ÇÑ´Ù
* ¼è»ç½, Æ÷´Ï Å×ÀÏ µîÀÇ °-ü ¹°¸®¿¡ Àû´ç
* dzºÎÏ°í ÀÎÅÍ·ºÆ¼êÇÑ ¾Ö´Ï¸ÞÀÌ¼Ç °¡´ÉÇØÁøÙ
(¬¿Ã½)
20
21. ÃÄ´Ùº¸±â
looking up at face
* È¿°ú
- ¾Ö´Ï¸ÞÀÌ¼Ç Ç³ºÎÒ ¼ö·Ï ±â°èÀû̶õ
´ À³ ¦À » ´ ú Á Ø´ Ù
- °ÔÀÓ¿¡¼- ÃÄ´Ùº¸±â 󸮴 ij¸¯ÅÍ¿¡
»ý¸í·ÂÀ ÁÖ´Â °¡Àå ½±°í È¿°úÀûÎ ¹æý
* ±¸Çö
- ¾ÆÁÖ Á¦ÇÑÀûÌ°í ¿¹Ãø°¡´ÉÇϱ⠶§¹®¿¡
¸Ó® ¿ÀºêÁ§Æ®¡ ´ëÇؼ- ¿ÀÏ·¯ ȸÀü»
Àû¿ëÇÏ´Â °Íµ ¹«³-
- °¡ÁßÄ(Weight)¸¦ Áشٰųª, ½ºÅÄ´Ùµå
ÇÏ°Ô ÀÛ¼ºÇÏ·Á¸é ¾Õ¼- ´Ù·é ÄõÅʹϾðÀ»
ÀÌ¿ë
21
22. ¹Ì²ô·¯Áü ¾ø´Â À̵¿
movement based animation
* ¾Ö´Ï¸ÞÀ̼ǰú »ó°ü¾øÀÌ ÀÏÁ¤ÇÑ ¼Óµ·Î ÁÂÇ¥¸¦ °»½ÅÇÒ °æ¿ì ¹Ì²ô·¯Áü Çö»ó
¹ß»ý
* À̵¿°ú ¾Ö´Ï¸ÞÀÌ¼Ç Á¤Ã¥
- Á¦ÀÛÇÏ´Â ¾Ö´Ï¸ÞÀÌ¼Ç ÀÚü°¡ Á¦ÀÚ¸® °ÉÀ½Ì ¾Æ´Ï¶ó ¹Ì²ô·¯Áü ¾øÀÌ
À̵¿ÇÏ· °³¹ß
- ÃÖ»óÀ§ º»ÀÇ À̵¿Ä¡¸¦ ±âÁØÀ¸·Î ó¸®
- ·»´õ¸µ ÇÒ ¶§ À̵¿ÇÒ ÃàÀÇ °ªÀ» °-Á¦·Î 0 À¸·Î ¼Æà (Á¦ÀÚ¸® °ÉÀ½Çϵ·)
- ·çÆ®º» À̵¿ º¤ÅÍ ±¸ÇÏ´Â ÇÔ¼ö°¡ p ¸é p(n) - p(n-1) ÀÇ º¤ÅÍ Áß À̵¿Ãà
¼ºÐ¸ ¾òî¼- À̵¿
- ¸ð¼Ç ºí·£µù Áß¿¡´Â À̵¿Ä¡ °¡ÁßÄ¿ µû¶ó ó¸®
22
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