Object Oriented Bounding Box ¸¦ ÀÌ¿ëÇÑ Collision Detection
96419-044
Ãâó; http://mimosa.snu.ac.kr/~rabbit2/
<¸ñÂ÷>
1. ¼Ò°³±Û
Áö±Ý±îÁö ¸®¼Ä¡ ÁÖÁ¦·Î BSP tree ¶ó´øÁö bounding
sphere¿¡ ÀÇÇÑ collision detection(ÀÌÇÏ CD)Àº ¸¹ÀÌ ÀÖ¾ú´Âµ¥, ±×¿¡ ºñÇØ
bounding box¿¡ ÀÇÇÑ CD¿¡ ´ëÇÑ ±ÛÀº ¾ø¾ú´ø °Í °°´Ù. ¹°·Ð, bounding sphere¿¡ ÀÇÇÑ CDÀÇ ¾²ÀÓ»õµµ ¸¹Áö¸¸(¿¹¸¦ µé¾î ´ç±¸°ø¿¡ ÀÇÇÑ CD¶ó´øÁö), »ý°¢ÇØ º¸¸é ¿ì¸® ÁÖÀ§¿¡ ÀÖ´Â ¹°Ã¼ Áß¿¡¼ µÕ±Ù °Íº¸´Ù´Â
³×¸ð³ °ÍÀÌ ÈξÀ ´õ ¸¹´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¸¸ÀÏ Á÷À°¸éü¿¡ °¡±î¿î ¹°Ã¼¸¦ bounding sphere·Î ¸ðµ¨¸µÇÏ°Ô µÇ¸é, ¹Ø¿¡ ±×¸²¿¡¼ º¼ ¼ö ÀÖµíÀÌ ¸¹Àº °ø°£ÀÌ ³²°Ô µÇ°í, ÀÌ °ø°£À»
ÁÙÀ̱â À§Çؼ´Â depth°¡ ¿©·¯ ·¹º§ÀÎ sphere tree¸¦
±¸¼ºÇÒ ¼ö ¹Û¿¡ ¾ø´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í bounding sphere°¡
³Î¸® ÀÌ¿ëµÇ´Â °¡Àå Å« ÀÌÀ¯´Â, bounding sphere°¡ ±¸ÇöÇϱⰡ °¡Àå ½±±â ¶§¹®ÀÎ °Í °°´Ù. Bounding sphere·Î ÀÏ´Ü ¸ðµ¨¸µÇÏ°í ³ª¸é CD¸¦ Çϱâ
À§Çؼ ´Ü¼øÈ÷ µÎ ±¸ »çÀÌÀÇ °Å¸®¸¦ ÃøÁ¤Çؼ °¢ ±¸ÀÇ ¹ÝÁö¸§ÀÇ ÇÕ°ú ºñ±³Çϱ⸸ ÇÏ¸é µÈ´Ù.
Bounding box¿¡ ÀÇÇÑ ¸ðµ¨¸µÀº axis-aligned bounding box(ÀÌÇÏ AABB)¿Í object-oriented bounding box(ÀÌÇÏ OBB) µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. AABB´Â bounding box¸¦ ÀâÀ» ¶§ Ç×»ó world coordinate
systemÀÇ 3°³ÀÇ Ãà°ú ÆòÇàÇÑ ¹æÇâÀ¸·Î¸¸ Àâ´Â °ÍÀÌ°í,
ÀÌ°ÍÀº bounding sphere¿Í ¸¶Âù°¡Áö·Î ±¸ÇöÇϱâ´Â ¸Å¿ì ½¬¿ì³ª, ¿ª½Ã ¹°Ã¼°¡ world coordinate system Ãà°ú ´Ù¸¥
¹æÇâÀ¸·Î ³õÀÌ°Ô µÇ¸é ¸¹Àº ºó°ø°£ÀÌ »ý±â°Ô µÇ¾î È¿À²ÀÌ ±Þ°ÝÇÏ°Ô ¶³¾îÁö°Ô µÈ´Ù. ´ç¿¬È÷ Á÷À°¸éü ¸ð¾çÀÇ ¹°Ã¼¸¦ °¡Àå È¿À²ÀûÀ¸·Î ¸ðµ¨¸µÇϱâ À§Çؼ´Â
±× ¹°Ã¼°¡ ³õ¿© ÀÖ´Â ¹æÇâÀ¸·Î bounding box¸¦ Àâ´Â °ÍÀε¥,
ÀÌ°ÍÀÌ ¹Ù·Î OBBÀÌ´Ù. ÇÏÁö¸¸ OBB´Â ±¸ÇöÇϱⰡ ºñ±³Àû ³ÇØÇϹǷΠÁö±Ý±îÁö ¸®¼Ä¡°¡ ¾È µÇ¾ú¾ú´ø °Í °°Àºµ¥,
ÇÊÀÚ´Â ÃÖ´ëÇÑ Àß ¼³¸íÇÏ·Á°í ³ë·ÂÇÏ°Ú´Ù -_-;;;
|
<bounding sphere> Á÷À°¸éüÀÇ ¹°Ã¼¸¦ ¸ðµ¨¸µÇϱâ À§Çؼ´Â ¿©·¯ °³ÀÇ ±¸°¡ ÇÊ¿äÇÏ°í, ±¸¿¡ ºó°ø°£ÀÌ »ý°Ü¼ Á¤È®È÷ ¸ðµ¨¸µÀÌ µÇÁö ¾Ê´Â´Ù. |
|
|
|
<axis-aligned bounding box> ¹°Ã¼°¡ world coordinate axis¿Í ´Ù¸¥ ¹æÇâÀ¸·Î ³õ¿© ÀÖÀ» ¶§ È¿À²ÀÌ ±Þ°ÝÇÏ°Ô ¶³¾îÁø´Ù. |
|
|
|
<object-oriented bounding box> ¹°Ã¼ÀÇ ¹æÇâÀ» Áß½ÉÀ¸·Î bounding box¸¦ Àâ±â ¶§¹®¿¡, Á÷À°¸éü ¸ð¾çÀÇ ¹°Ã¼¸¦ °¡Àå È¿À²ÀûÀ¸·Î ¸ðµ¨¸µÇÒ ¼ö ÀÖ´Ù. |
Mesh¸¦ »ý¼ºÇÒ ¶§ bounding boxµµ °°ÀÌ »ý¼ºÇÏ¿©, mesh¸¦ transform ÇÒ ¶§ bounding boxµµ °°ÀÌ transformÀ» ÇØ ÁÖ¸é Ç×»ó ¸ðµç mesh¿¡ ´ëÇØ OBB¸¦ À¯ÁöÇÒ ¼ö°¡ ÀÖ´Ù. ±×·¸´Ù¸é ¿ì¸®´Â ÀÌÁ¦ mesh°¡ ¿òÁ÷ÀÌ¸é¼ °°ÀÌ µ¹¾Æ´ó±â´Â ¿©·µÀÇ OBB¸¦ °®°í ÀÖ´Ù. ÀÌ ¶§, OBB°¡ ¼·Î Ãæµ¹Çß´ÂÁö´Â ¾î¶»°Ô °¨ÁöÇÒ ¼ö°¡ ÀÖÀ»±î? °¡Àå ¹«½ÄÇÑ ¹æ¹ýÀº µÎ °³ÀÇ OBBÀÇ ¸ðµç ¸é°ú ¸ðµç edge¿¡ ´ëÇؼ ¸éÀ» Åë°úÇÏ´Â edge°¡ ÀÖ´ÂÁö °Ë»çÇÏ´Â ¹æ½ÄÀÏ °ÍÀÌ´Ù. ±×·±µ¥ ÀÌ ¹æ½ÄÀº 144¹øÀÇ ºñ±³°¡ ÇÊ¿äÇÏ°í, »ó´çÈ÷ ºñ½Ñ Å×½ºÆ®ÀÌ´Ù. ¿©±â¼´Â ÈξÀ ´õ È¿À²ÀûÀÎ 'axial projection'À» ÀÌ¿ëÇÑ Å×½ºÆ®¸¦ ¼Ò°³ÇÑ´Ù.
Axial projection À̶õ ¹«¾ùÀΰ¡?
µÎ °³ÀÇ OBB°¡ ¼·Î ºÐ¸®µÇ¾î ÀÖ´ÂÁö¸¦ ¾Ë±â À§ÇÑ ½¬¿î ¹æ¹ý Áß Çϳª´Â, °¢ OBB¸¦ °ø°£»óÀÇ ¾î¶² Ãà(¹Ýµå½Ã x,y,zÃàÀÏ ÇÊ¿ä´Â ¾ø´Ù)¿¡ Åõ¿µÇÏ´Â °ÍÀÌ´Ù. ÀÌ Åõ¿µÀ» 'axial projection'À̶ó°í Çϸç, ÀÌ Åõ¿µÀ» ÅëÇØ °¢ OBB´Â Ãà »ó¿¡ ¾î¶² intervalÀ» Çü¼ºÇÑ´Ù. ¸¸ÀÏ ÀÌ·¸°Ô Çü¼ºµÈ 2°³ÀÇ intervalÀÌ ¼·Î °ãÄ¡Áö ¾ÊÀ¸¸é 2°³ÀÇ OBB´Â ¼·Î ºÐ¸®µÇ¾î ÀÖ´Â °ÍÀÌ È®½ÇÇϸç, À̶§ ÀÌ ÃàÀ» 'separating axis'¶ó°í ÇÑ´Ù. ¸¸ÀÏ 2°³ÀÇ intervalÀÌ ¼·Î °ãÄ£´Ù¸é 2°³ÀÇ OBB´Â ¼·Î ºÐ¸®µÇ¾î ÀÖÀ» ¼öµµ ÀÖ°í ¾Æ´Ò ¼öµµ Àֱ⠶§¹®¿¡ ´õ ¸¹Àº °Ë»ç°¡ ÇÊ¿äÇÏ´Ù.
2°³ÀÇ OBB°¡ Ãæµ¹Çß´ÂÁö ¾Ë±â À§Çؼ´Â axial projectionÀ» ¸î ¹ø ÇØ¾ß Çϴ°¡?
(°ø¸®)
°ø°£»óÀÇ 2°³ÀÇ ºÐ¸®µÈ convexÇÑ ´Ù°¢¸éü´Â 1) µÎ °³ÀÇ ´Ù°¢¸éü
Áß ÇϳªÀÇ ¾î´À ¸é°ú ÆòÇàÀÎ ¸é, ¶Ç´Â 2) µÎ °³ÀÇ ´Ù°¢¸éü °¢°¢¿¡¼ ÇϳªÀÇ edge¿Í ÆòÇàÇÑ ¸é¿¡ ÀÇÇØ ºÐ¸®µÉ ¼ö
ÀÖ´Ù.
ÀÌ °ø¸®¸¦ Áõ¸íÇÑ ³í¹®µµ ÀÖ±ä ÇÏÁö¸¸, ±×°ÍÀº °ü½ÉÀÖ´Â
ºÐÀº ã¾Æ º¸½Ã°í. ¾î·µç ÀÌ °ø¸®ÀÇ °á°ú·Î¼, ¿ì¸®´Â ´ÙÀ½À»
¾Ë ¼ö ÀÖ´Ù:
°ø°£»óÀÇ 2°³ÀÇ convexÇÑ ´Ù°¢¸éü°¡ ºÐ¸®µÇ±â À§ÇÑ ÇÊ¿äÃæºÐ Á¶°ÇÀº, 1) µÎ °³ÀÇ ´Ù°¢¸éü Áß ÇϳªÀÇ ¾î´À ¸é°ú ¼öÁ÷ÀÎ separating axis°¡
Á¸ÀçÇϰųª, 2) µÎ °³ÀÇ ´Ù°¢¸éü °¢°¢¿¡¼ ÇϳªÀÇ edge¿Í ¼öÁ÷ÀÎ separating axis°¡ Á¸ÀçÇÏ´Â °ÍÀÌ´Ù.
°¢ OBB´Â 3°³ÀÇ uniqueÇÑ ¸é ¹æÇâÀÌ ÀÖ°í, 3°³ÀÇ uniqueÇÑ edge ¹æÇâÀÌ ÀÖ´Ù. µû¶ó¼ À§ÀÇ Á¶°ÇÀ» °Ë»çÇϱâ À§Çؼ´Â 15°³ÀÇ separating axis¸¦ °Ë»çÇØ¾ß ÇÑ´Ù.(ÇϳªÀÇ OBB¿¡¼ 3°³ÀÇ ¸é, ´Ù¸¥ OBB¿¡¼ 3°³ÀÇ ¸é, 9°³ÀÇ 2°³ÀÇ OBB¿¡¼ edgeµéÀÇ Á¶ÇÕ) ¸¸ÀÏ 2°³ÀÇ OBB°¡ ¼·Î ºÐ¸®µÇ¾î ÀÖ´Ù¸é(Ãæµ¹ÇÏÁö ¾Ê¾Ò´Ù¸é) separating axis°¡ ¹Ýµå½Ã Á¸ÀçÇØ¾ß ÇÏ°í À§¿¡¼ ¾ð±ÞÇÑ 15°³ÀÇ axis Áß Çϳª°¡ ±× axis°¡ µÇ¾î¾ß ÇÑ´Ù. ¸¸ÀÏ OBBµéÀÌ Ãæµ¹Çß´Ù¸é separating axis°¡ Á¸ÀçÇÏÁö¸¦ ¾ÊÀ» °ÍÀÌ´Ù. µû¶ó¼, 2°³ÀÇ OBBÀÇ Ãæµ¹ ¿©ºÎ¸¦ °Ë»çÇϱâ À§Çؼ´Â 15°³ÀÇ seperating axisÀÇ °Ë»ç·Î ÃæºÐÇÏ´Ù.
Separating axis °Ë»ç´Â ¾î¶² ¹æ½ÄÀ¸·Î ÇÒ ¼ö°¡ Àִ°¡?
ÀÌ °Ë»ç¸¦ ÇÏ´Â ±âº»ÀûÀÎ Àü·«Àº ´ÙÀ½°ú °°´Ù:
1) °¢ OBBÀÇ Áß½ÉÀ» ÇØ´ç axis¿¡ Åõ¿µÇÑ´Ù.
2) °¢ OBB°¡ ÇØ´ç axis¿¡ Åõ¿µµÇ¾úÀ» intervalÀÇ radius(±æÀÌÀÇ ¹Ý)À» °è»êÇÑ´Ù.
3) ¸¸ÀÏ ÇØ´ç axis¿¡ Åõ¿µÇßÀ» ¶§ OBBÀÇ
Á᫐ »çÀÌÀÇ °Å¸®°¡ °¢ OBBÀÇ interval radiusÀÇ
ÇÕº¸´Ù Å©¸é, µÎ °³ÀÇ OBB´Â ºÐ¸®µÈ °ÍÀ¸·Î º¼ ¼ö ÀÖ´Ù.
¹Ø¿¡ ÀÖ´Â ±×¸²À» º¸¸é ÀÌÇØ°¡ ´õ ½±°Ô °¥ °ÍÀÌ´Ù. ±×¸²¿¡¼ A¿Í B´Â °¢°¢ OBBÀÌ°í B´Â A·ÎºÎÅÍ rotation R°ú translation T¸¸Å À̵¿ÇÑ À§Ä¡¿¡ ÀÖ´Ù. A¿Í BÀÇ half dimension(¶Ç´Â radius) ´Â °¢°¢ ai, bi·Î Ç¥±âÇÑ´Ù(i=1,2,3). A¿Í B¿¡¼ °¢ edge¿Í ÆòÇàÀ» ÀÌ·ç´Â axisÀÇ ´ÜÀ§ º¤Å͸¦ °¢°¢ Ai¿Í Bi¶ó°í Ç¥±âÇÑ´Ù(i=1,2,3). ÀÌ·¸°Ô Çؼ »ý±ä 6°³ÀÇ ´ÜÀ§ º¤Å͸¦ box axis¶ó°í ÇÏÀÚ. ¿©±â¼ ÁÖ¸ñÇÒ °ÍÀº AÀÇ box axis¸¦ basis·Î »ç¿ëÇϸé, ȸÀü ¸ÅÆ®¸¯½º RÀÇ 3°³ÀÇ columnµé(Áï, x,y,z ´ÜÀ§º¤Å͸¦ transform ÇßÀ» ¶§ ³ª¿À´Â º¤ÅÍ)ÀÌ 3°³ÀÇ Bi axis º¤ÅÍ¿Í °°´Ù´Â »ç½ÇÀÌ´Ù.
<¿©±â¼ A¿Í B¸¦ L¿¡ Åõ¿µÇÏ¸é ¼·Î ºÐ¸®µÈ intervalÀÌ µÇ¹Ç·Î LÀº OBB A¿Í B¿¡ ´ëÇÑ separating axisÀÌ´Ù.>
º¸´Ù½ÃÇÇ °¢ OBBÀÇ Áß½ÉÀº Åõ¿µµÈ intervalÀÇ
Áß°£¿¡ Åõ¿µµÈ´Ù. °¢ box radius¸¦ axis L¿¡ Åõ¿µÇÏ°í Åõ¿µµÈ ±æÀÌÀÇ ÇÕÀ» ±¸ÇÔÀ¸·Î½á ¿ì¸®´Â °¢ OBBÀÇ
Åõ¿µµÈ intervalÀ» ±¸ÇÒ ¼ö°¡ ÀÖ´Ù. À§¿¡¼ OBB AÀÇ intervalÀÇ
radius´Â ´ÙÀ½°ú °°´Ù:
OBB B¿¡ ´ëÇؼµµ ºñ½ÁÇÑ ½ÄÀ» ¼¼¿ï ¼ö°¡ ÀÖ´Ù. Seperating
axisÀÇ À§Ä¡´Â °Ë»ç¿¡ ¾Æ¹«·± ¿µÇâÀ» ³¢Ä¡Áö ¾ÊÀ¸¹Ç·Î ¿ì¸®´Â axis°¡ AÀÇ Áß½ÉÀ» Åë°úÇÑ´Ù°í °¡Á¤ÇÑ´Ù. ÀÌ ¶§, 2°³ÀÇ interval »çÀÌÀÇ °Å¸®´Â °¡ µÈ´Ù(±×¸² Âü°í). µû¶ó¼, 2°³ÀÇ interval
ºÐ¸®µÇ¾î ÀÖ±â À§ÇÑ ÇÊ¿äÃæºÐ Á¶°ÇÀº ´ÙÀ½°ú °°´Ù:
ÀÌ ½ÄÀº ¾×¸éÀ¸·Î´Â º¹ÀâÇÏÁö¸¸, 15°³ÀÇ
separating axis¿¡ Àû¿ëÇÏ°Ô µÇ¸é LÀÌ box
axisÀ̰ųª box axisÀÇ cross product°¡
µÇ±â ¶§¹®¿¡ ¸¹ÀÌ ´Ü¼øÈ µÈ´Ù. ¿¹¸¦ µé¾î, À̶ó°í ÇÏÀÚ. À§ÀÇ ½Ä¿¡¼ ù ¹ø° summationÀÇ µÎ ¹ø° Ç×Àº ´ÙÀ½°ú °°ÀÌ ´Ü¼øÈ µÈ´Ù.
¸¶Áö¸· ´Ü°è´Â Àü¿¡ ¾ð±ÞÇßµíÀÌ BÀÇ box axis´Â A¿¡ ´ëÇÑ BÀÇ rotation
matrix RÀÇ column¿¡ ÇØ´çÇÑ´Ù´Â »ç½ÇÀ» ÀÌ¿ëÇÑ °ÍÀÌ´Ù. ÀÌ·± ½ÄÀ¸·Î ¸ðµç Ç×µéÀº ´Ü¼øÈµÇ°í ¶§·Î´Â °ªÀÌ 0ÀÌ µÇ¾î ¾ø¾îÁö±âµµ
ÇÑ´Ù. ÀÌ·¸°Ô ´Ü¼øÈÇÑ ÀÌÈÄÀÇ À§ÀÇ seperating axis L¿¡ ´ëÇÑ °Ë»ç´Â ´ÙÀ½°ú °°ÀÌ µÈ´Ù:
¸ðµç 15°³ÀÇ seperating
axis¿¡ ´ëÇÑ °Ë»ç´Â ÀÌ·± ¹æ½ÄÀ¸·Î ´Ü¼øȵǸç, ÀÌ °Ë»çÀÇ °úÁ¤¿¡¼ matrix RÀÇ °¢ Ç×Àº 4¹ø¾¿ »ç¿ëÀÌ µÇ¹Ç·Î ¸ðµç °Ë»ç¸¦ ½ÃÀÛÇϱâ
Àü¿¡ matrix RÀ» ¹Ì¸® °è»êÇØ ³õ´Â´Ù. ¸¸ÀÏ ÀÌ °Ë»ç
µµÁß ½ÄÀÌ ¸¸Á·ÀÌ µÇ¸é, seperating axis¸¦
¹ß°ßÇÑ °ÍÀÌ°í, ±×·¸´Ù¸é 2°³ÀÇ OBB´Â ¼·Î ºÐ¸®µÇ¾î ÀÖÀ½À» ¹àÈù °ÍÀÌ µÇ±â ¶§¹®¿¡ ³ª¸ÓÁö °Ë»ç´Â ÇÒ ÇÊ¿ä°¡ ¾ø¾îÁø´Ù. ¾Æ·¡ÀÇ Ç¥´Â 15°³ÀÇ seperating axis¿¡ ´ëÇÑ ½ÄÀ» Á¤¸®ÇÑ °ÍÀÌ´Ù:
* ¿©±â¼ R0 Ç׸ñÀº OBB AÀÇ interval radius, R1 Ç׸ñÀº OBB BÀÇ interval radius, R Ç׸ñÀº 2°³ÀÇ OBBÀÇ Á᫐ °£ÀÇ Åõ¿µµÈ °Å¸®¸¦ ³ªÅ¸³½´Ù.
* D º¤ÅÍ´Â 2°³ÀÇ OBBÀÇ Áß½ÉÀ» ÀÕ´Â º¤Å͸¦
³ªÅ¸³½´Ù.
* Cij ´Â rotation matrix R¿¡¼ÀÇ (i,j) Ç×À» ³ªÅ¸³½´Ù.
<½ÇÇà¹æ¹ý>
±×³É °¡¸¸È÷ ½ÇÇà½ÃÅ°°í ±â´Ù¸®°í ÀÖÀ¸¸é Â÷°¡ °Ç¹°¿¡ °¡¼ Äô.. ÇÏ°í ¹Ú´Â´Ù -_-
È»ìÇ¥·Î ½ÃÁ¡À» ¾à°£ º¯È½Ãų ¼ö ÀÖ´Ù.
<Äڵ弳¸í>
CBox Ŭ·¡½º
CBox |
Object oriented bounding box¸¦ Ç¥ÇöÇϴ Ŭ·¡½º |
CBox::center[3] |
Bounding boxÀÇ Á᫐ ÁÂÇ¥ |
CBox::axis[3][3] |
Bounding boxÀÇ 3 ¹æÇâÀ¸·ÎÀÇ axis º¤ÅÍ |
CBox::extent[3] |
Bounding boxÀÇ °¢ axis º¤ÅÍ ¹æÇâÀ¸·ÎÀÇ radius |
int
BoxBoxIntersectionTest(const CBox&
box0,const CBox& box1)
box0 ¿Í box1ÀÌ ¼·Î ±³Â÷ÇÏ´ÂÁö °Ë»ç¸¦ Çؼ ±³Â÷¸¦ Çϸé 1, ±×·¸Áö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. ÇÔ¼öÀÇ µ¿ÀÛ¹æ½ÄÀº À§ÀÇ Ç¥¿¡ ÀÖ´Â 15°³ÀÇ seperating axis¸¦ Çϳª¾¿ °Ë»çÇÏ´Â ¹æ½ÄÀÌ´Ù. ÁÖ¼®À» º¸°í Ç¥¸¦ Âü°íÇϸé ÀÌÇØÇϴµ¥ ¾Æ¹«·± ¾î·Á¿òÀÌ ¾øÀ» °ÍÀÌ´Ù.
D3DXMATRIX* GetBoxTransform(D3DXMATRIX *pMat,
CBox* pBox)
pBoxÀÇ transformÀ» D3DXMATRIX ÇüÅ·Πº¯È¯½ÃÄÑ ÁÖ´Â ÀÏÁ¾ÀÇ wrapper ÇÔ¼öÀÌ´Ù.
void SetBoxTransform(const
D3DXMATRIX* pMat, CBox* pBox)
À§ ÇÔ¼ö¿Í ½ÖÀ» ÀÌ·ç´Â, À̹ø¿¡´Â pMatÀÇ transformÀ» pBoxÀÇ axis º¤ÅÍ·Î
º¯È¯À» ÇØ ÁÖ´Â ÇÔ¼öÀÌ´Ù.
void initBox(CBox *pBox, const
D3DXVECTOR3& vecMin, const D3DXVECTOR3& vecMax)
Mesh·ÎºÎÅÍ ±¸ÇØ ¿Â bounding boxÀÇ
minimum ÁÂÇ¥, maximum ÁÂÇ¥¸¦ ¹Þ¾Æ¼ pBoxÀÇ center¿Í extent¸¦ °è»êÇÏ°í axis¸¦ ÃʱâÈÇÑ´Ù.
void moveBox(CBox *pBox, const D3DXMATRIX&
mat)
pBox¸¦ mat¿¡ ÀÇÇØ ¿òÁ÷ÀδÙ. ÀÏ´Ü 3°³ÀÇ axisµéÀ»
º¯È¯ÇÑ ÀÌÈÄ¿¡ center¸¦ º¯ÈÇÏ´Â ¹æ½ÄÀ¸·Î µÇ¾î ÀÖ´Ù.
ÀÌ ÇÔ¼öµéÀ» ÀÌ¿ëÇؼ ÄÚµå´Â ´ÙÀ½ ¼ø¼·Î µ¿ÀÛÇÏ¸é µÈ´Ù:
5. À¥ÆäÀÌÁö ´Ù¿î·Îµå