SlideShare a Scribd company logo
°ÔÀÓ¿¡¼-Ç Àå¸é °ü¸®
                          ÇÁ·Î±×¡¹Ö °³¿ä



                                           ÚÀ¥Çß¹ : ÍÀº¼è± (noerror@itel.net)
                                                                    h
                                           ÏÀ¥Çß¹ : 2004.10.10



1
I. INTRODUCTION
                                                 é¸åÀ ®¸ü°                          (Scene Managing) °³¿ä
+ °ÔÀÓ¿¡¼- ó¸®ÇÏ´Â °³Ã¼ ö ¡ ¸¹¾ÆÁö                                                         + °³Ã¼ ¼ö = ¾À¿¡ 1000°³ÀÇ ¿ÀºêÁ§Æ®°¡
 °Å³ª, Ç¥ ö ¿µ ªÀÌ ³Ð¾îÁú °æ¿ì, ·»´õ¸µ,                                                      Àִµ¥, ½ÇÁ¦·Î Æò±ÕÀû ¸·Î È-¸é¿¡ ·»
 Ãæµ¹ üũ µîÀÇ Áö¿ªÀûΠ󸮿¡ Á» ´õ                                                         ´õ¸µ µÇ´Â °ÍÀÌ 50°³ Á¤µ¶ó°í Çϸé Àå
     È¿À²ûÎ Á¢±ÙÀÌ ÇÊ¿äÏ´Ù.                                                                  ¸é °ü¸®¡ ÇÊ¿äÏ´Ù                                       ° í Ç Ò ¼ ö À Ö´ Ù.
                                                                                                    + ¿µªÀÇ ³ÐÀÌ = 1Km ¿¡ ¿ÀºêÁ§Æ®µéÌ
                                                                                            î¾Çµ÷Æк »ÀÖ §¶ ßþ½ ¡°®¸Å 10M ó¶
                                                                                                     ¸é ¸ðµç ¿ÀºêÁ§Æ®Ç ´Ü¼ø ºä Äøµº´Ù
                                                                                                       È¿À²ûÎ ¹æýÀÌ ÇÊ¿äÏ´Ù.
                                                                                            + °ÔÀÓ¿¡¼- °³Ã¼¸¦ °Ë»öÇÒ ÇÊ¿ä°¡ ÀÖ´Â
                                                                                             ¸¹Àº ºÐ¾ß¿¡¼- Àå¸é °ü¸®¡ ÇÊ¿äÏ´Ù.
                                                                                                                        ¿ÀºêÁ§Æ® ·»´õ¸µ, Ãæµ¹ ³¸®
                                                                                                          ¿µÇâÁÖ´Â ¶óÀÌÆà °Ë»ç
                                                                                                                  ±ÙÁ¢ÇÑ ¿ÀºêÁ§Æ® ¸®½ºÆ
                                          GTA3       – r S t u d i aR o s c k
2
é¸åÀ ®¸ü° ÒǪ¿

·»´õ¸µ °üÁ¡                                                                                          + Àå¸é°ü ® => ÃÖ¼ÒÀÇ Å½»öÀ¸·Î Ãæµ¹
                                                                                                      °¡´É¼º ÀÖ´Â ¿ÀºêÁ§Æ®¸ °Ë»ö
+ °ÔÀÓ¿¡¼-´Â ·»´õ¸µ ¼Óµ °¡ Å« ¿µÇâÀ»
 Á Ü >= "                                  °¡Àå ºü¸¥ ·»´õ¸µÀº ±×¸®Áö ¾Ê                              Á¤¸®ÇÏé
  ´Â°Í                                 “
                                                                                                     + ¸¹Àº ¿ÀºêÁ§Æ®µé Áß¿¡¼- ó¸®ÇÏ°íÀÚ
+ Àå¸é °ü¸®´Â È-¸é¿¡ ·»´õ¸µ µÈ °¡´É                                                                   ÇÏ´Â ¿µ ª ¡ Æ÷ÇÔµÈ, °á ú¿¡ ¿µÇâÀ» ÁÙ
 ¼ºÀÌ ÀÖ´Â °Íµé¸ ÃÖ¼ÒÀÇ Å½»öÀ¸·Î ºü                                                                   °¡´É¼ºÀÌ ÀÖ´Â °³Ã¼¸ ºü¸£°Ô °Ë»öÇÏ´Â
     ¸£°Ô °Ë»ö                                                                                                °ÍÀÌ Àå¸é °ü¸®ÀÇ ±âº»
Ãæµ¹³¸® °üÁ¡                                                                                         °ÔÀÓ¿¡¼- ¸¹ÀÌ »ç¿ë µÇ´Â ±â¹ý
+ ÇÑ ÇÁ·¹ÀÓ¿¡ N°³ÀÇ ¿ÀºêÁ§Æ®¡ ¹°¸®                                                                   + ÄõµåÆ®¸
 ¸¦ Àû¿ëÇÒ °æ¿ì ¿ÀºêÁ§Æ®°£Ç Ãæµ¹ °Ë                                                                   + ¿ÁÆ®¸
   »ç N x (N-1) ¹ø ÀϾ°Ô µÊ >=                                                          “°¡         + k-d ®¸Æ
   Àå ÁÀº °ÍÀº Ãæµ¹ °¡´É¼ºÀÌ ¾ø´Â ¿Àºê                                                                  + BSP
     Á§Æ®µé°ú´Â Ãæµ¹ °Ë»ç¸¦ ÇÏÁö ¾Ê´Â °Í                                                         ”

 3
II. ÀϹÝûÎ Àå¸é °ü¸® ±â¹ý
ÀϹÝûÎ Àå¸é °ü¸® ±â¹ýµéÀÇ °øÅëÁ¡                               °øÅëÀûÎ ¼öµÄÚå (Pseudo Code)
+ °èÃþÀû ¸·Î °ø £À» ºÐÇÒ ±¸¼ºÇÏ¿© °³                             (,åµë³ ) {
                                                                 ö»½Å ª¿µ ç»Ë°
 ü ¸®½ºÆ¦ °ü¸®ÇÑ´Ù.                                                       or(i=0; i<;ö¼Ä½ÚÀ
                                                                           f                                                                                 i+) {
                                                                                                                                                               +
                                                                                 if ((.i.,åµî¿Ù¹ )) {
                                                                                     ÔÇ÷Æ åµë³ [ĽÚÀ ] ª¿µ ç» Ë°
+ ¸ðµÎ Æ®¸ ±¸Á¶·Î µÇ¾î ÀÖ´Ù.                                                              if (.i].º¼Ó = ) {
                                                                                              åµë³ [ĽÚÀ Á®Ç¸
                                                                                                    or(j0; .i].;ö¼ÛÅÌÀƾ ) {
                                                                                                    f = å µ ë ³ < j [ Ä ½ Ú À j+
+ ƯÁ¤ ³ëµå(ºÎ¸ð)ÀÇ ÇÏÀ§ ³ëµå(ÀÚ½Ä)°¡                                                                                if ((.i.,]jÛ[ÅÌÀƾ ))
                                                                                                                         ÔÇ÷Æ åµë³ [ĽÚÀ ] ª¿µ ç»Ë°
 Test¿¡ Åë°úÇÏÁö ¾Ê´Â ´Ù¸é ±× ÀÌÇÏ´Â                                                                                           (.i.)
                                                                                                                               ®¸³Ã åµë³ Ä[½ÚÀ ] ]j[ÛÅÌÀƾ

 °Ë»çÇÒ ÇÊ¿ä°¡ ¾ø´Ù.                                                                                }
                                                                                          } else
+ Àç±Í û ΠŽ»ö¿¡ ÀûÇÕ Ñ ÇüÅ´Ù.                                                                    (.i,] )
                                                                                                    ö»½Å åµë³ [ĽÚÀ ª¿µ ç»Ë°
                                                                                 }
+ ¾Ë°í¸®ÁòÀû Î Á¢±ÙÀÌ â ¶§¹®¿¡ ¿µ ª                                        }
 ÀÇ Å©±â¿Í ¿ë·®ÀÌ ºñ·ÊÇÏÁö ¾Ê´ÂÙ.                                }




 4
1. ÄõµåÆ®¸   (Quadtree)
+ µÎ °¡Áö Ãà(ÀϹÝû¸·Î X, Y)·Î °¢ ³ë                + °ÔÀÓ¿¡¼- ³ôÀÌÃà Ç ¿µÇâÀ» Àû°Ô ¹Þ´Â
 µå¸¦ °è¼ÓÇØ- 4ºÐÇÒ ÇÏ´Â ¹æ½Ä                       °æ¿ì ¸¹ÀÌ »ç¿ëµÈ´Ù.
                                                      + ŸÀÏ º£À̽ ¿Í ºñ±³ÇÏ¸é ¿µ ªÀÇ Å©±â
                                                       ¿¡ µû¶ó °Ë»ö ¼ÓµÀÇ ¿µÇâÀ» Àû°Ô ¹ÞÀ¸
                                                   ç¸ (ÇÀ¼Ã³° ¡°ö¼ é¸Ù´° 1kʸm             ÷Èø¼Ü´
                                                    ú° 100km ºÀʸ «Å ¡°ÌÀ÷ .), ®·ë¿              Ù´ø¾
                                                         ¿ª½Ã ¿µÇâÀ» ¹ÞÁö ¾Ê´ÂÙ.
                                                   + ÀÌ»óûÎ Æ®¸ÀÎ °æ¿ì ±íÀÌ´Â log                        4N
                                                    À¸·Î 6¸¸°³ÀÇ °³Ã¼ÀÏ °æ¿ì¡µ ±íÀÌ°¡
                                                        4 ·¹º§ Á¤µ ·Î Àû´Ù
                                                   + °ø £ ±âÁØÀ¸·Î Æ®¸ ¦ ±¸¼ºÇÒ °æ¿ì ¡
                                                    ´Â È¿°úÀû ¸·Î º¹ÀâÇÑ °÷Àº ±íÀÌ, ¾Æ´Ñ
                                                    °÷Àº ³·°Ô ¼³Á¤µÈ´Ù.

5
®¸ Æ º¼ý»                                  (1)

Æ®¸ ¸µé±â
+ ÇöÀç ³ëµå¿¡ Æ÷ÇÔµÈ ¸ðµç ¾ÆÀÌÅÛµé »
Á߽ɡ                                                À» ±âºÐÀ¸·Î °¢ ¿µª¡ Æ÷ÇÔµÈ
°Íµé·Î ³ª´«Ù. (Áß½ÉÁ¡ÀÇ °áÁ¤¿¡ µû¶ó
Æ®¸ ÀÇ ¸ð¾çÀÌ ´Þ¶óÁø Ù.)
+ °¢ ¿µ ª ¡ Æ÷ÇÔµÈ °Íµé·Î Æ®¸ ¦ ¸
 µé¾îÆ®¸ÀÇ ÃÖ»óÀ§ ³ëµå¸¦ Àڽĸ·Î ºÙ
          ÀδÙ.
                                                                                              Æ®¸¦ ³ª´©Â Á߽ɡ
+ Æ®¸ÀÇ                         ±íÀÌ°¡ ³Ê¹« ±í¾îÁö°Å³ª ¿Àºê
 Á§Æ®¼ö°¡ Àû´çÇÑ      ¼ö ÀÌÇÏÎ °æ¿ì ´õ ÀÌ                                                     + Æ®¸¦ ±¸¼ºÇÒ ¶§ °¡Àå ¿µÇâÀ» ¸¹ÀÌ
         »ó ³ª´©Áö              ¾ÊÀ¸ç, ÀÌ ³ëµå¸¦ ¸®ÇÁ(Leaf)                                    ÁÖ´Â ºÎÐÀ¸· °¡Àå ±ÕÇü ÀâÈù Æ®¸¦
         ¶ó°í ºÎ¸£ç     ¾ÆÀÌÅÛµé ¸®½ºÆ¦ °¡Áöí                                                      À§Çؼ-´Â Æ÷ÇÔµÈ ¾ÆÀÌÅÛ» 4µîºÐÇÒ ¼ö
             ÀÖ´Ù.                                                                                         ÀÖ´Â Áö¡ÀÌ´Ù.

        6
®¸ Æ º¼ý»                                                  (2)

+ ÀÏ¹Ý û ¸·Î´Â °ø £À» ±ÕÀÏÇ °Ô ºÐÇÒ                            + ³ëµå¿¡ ¾ÆÀÌÅÛ » Æ÷ÇÔ½ÃÅ° í ÇÏÀ§ ³ë
 ÇÑ´Ù. => ºñ±³Àû °øÆòÇÑ °á ú ¡ ³ª¿À¸ç,                          µå¿¡ ³ÖÁö ¾Ê´ÂÙ.
 µ¿ÀûÎ °³Ã¼ À§Ä¡ À̵¿ µîÀ¸·Î Æ®¸ÀÇ
                                                                                     ¸®ÇÁ¿¡ Áߺ¹µÇ¾î µî·Ï ÇÁö ¾ÊÀ¸³ª, »ó
      ¸ð¾çÀÌ Àß ±úÁö ¾Ê´ÂÙ.
                                                               À§¿¡ µî·ÏÉ °æ¿ì ½ÇÁ¦ °áú¿Í »ó°ü¾ø
³ª´©Â ¿µª¡ ¾ÆÀÌÅÛ °ãÄ¡´Â °æ¿ì                                      ÀÌ °Ë»öµÇ±â ¶§¹®¿¡ ¼ö°¡ ¸¹Àé È¿À²
                                                                     ÀÌ ¶³¾îÁú ¼ö ÀÖ´Ù.
+ °ãÄ¡´Â ¸ðµç ³ëµå¿¡ Æ÷ÇÔ½ÃŲ´Ù.
                                                               + ´À½¼ÇÑ ³ëµå¸¦ ¸ µç´Ù.
               Æ®¸ÀÇ ³ëµå ¼ö°¡ ¾à°£ Áõ°¡ÇÒ ¼ö ÀÖ
À¸³ª, °Ë»ö¿¡ Å« ¹«¸®´Â ¾ø´Ù.                                                      °ãÄ¡´Â °æ¿ì 4 ¿µª Áß ÀÓÇ ÇϳªÀ
                                                               ¿µª¡ Æ÷ÇÔ½ÃŲ´Ù.
             ÇϳªÀ ¾ÆÀÌÅÛ(°³Ã¼)ÀÇ ¿©·¯ °³ÀÇ ¸®ÇÁ
¿¡ Æ÷ÇÔµ±â ¶§¹®¿¡ ÇϳªÀ ¾ÆÀÌÅÛ                                                    ¸®ÇÁ¿¡ Áߺ¹ µî·ÏÇÁö ¾Ê´ÂÙ
  ¿©·¯ °³ °Ë»ö µÉ ¼ö ÀÖ¸¹Ç·Î Áߺ¹ °Ë»ö
                                                                            ÇÏÀ§ ³ëµå´Â Æ÷ÇÔÑ ¾ÆÀÌÅÛµé·Î ¹Ù¿î
      ¿¡ ´ëÇÑ Ã³¸®°¡ ÇÊ¿äÏ´Ù.
                                                               µå ¿µªÀ» »õ·Î ±¸ÇÑ ÈÄ ÀúåÇÑ´Ù.

 7
®¸ Æ º¼ý»                        (3)

CQuadTree:_NODE * CQuadTree : BuildTree(RECT *rectlist, int * itemid               x, int           if (n = 0)
num, const RCT &bound, int l)
            E               v                                                                       { / null node
{                                                                                                       node->child[side] = NU;L
    int * temp = new int [num;]                                                                     } else
    int i, n, side;                                                                                 if (l+v1 >= _MXA_DEPTH | n <= _MAITM)
                                                                                                                                     X_ E
    _NODE * node;                                                                                   { / leaf
                                                                                                        int * leaf = new int n1];
                                                                                                                             [ +
    node = new _NODE;                                                                                   or(i=0; i<n; i+)
                                                                                                        f
    memset(node, 0, sizeof(_NOD));
                               E                                                                            leafi] = temp[i;]
                                                                                                                [
                                                                                                        lea[fi] = -1;
    node->pivot.x = (bound.let + bound.right) / 2;
                             f                                                                          node->child[side] = lea;f
    node->pivot.y = (bound.top + bound.botto) / 2;
                                            m                                                           node->ask |= 1<side;
                                                                                                              m
                                                                                                    } else
    for(side=0; side4; side+)
                    <                                                                               { / node
    {                                                                                                   node->child[side] = BuildTree(rectlist, tep, n, localbound, l1);
                                                                                                                                                  m                  v+
        RECT localound = Diide(ound, node->piot, side);
                  b        v   b             v                                                      }
                                                                                                }
        for(i0, n0; i<num; i+)
             = =                                                                                delete ][ tep;
                                                                                                            m
           if (ContactTest(rectlist[itemidx[i], localbound) = true)                             return node;
               tempn+] = itemidxi;]
                   [            [                                                           }




    8
®¸ ÆåµõÄ ö»½Å                                             (1)

                                                                                                                                          {
Ž»ö ¾Ë°í¸®Áò                                                                                                                                 int * leaf = (int) node->child[side], i;
                                                                                                                                                               *
                                                                                                                                              for(i=0; leaf[i] => 0; i+)
+ ¾Õ¼- ¼Ò°³ÇÑ Å½»ö ¼öµ ÄÚ å¿Í ° ´Ù.                                                                                                           {
                                                                                                                                                  if (m_UpdateCntist[leai] != _UpdateCnt)
                                                                                                                                                                 L      f[ m

+ ÇÏÀ§ ³ëµå°¡ ¹Ù¿îµå ¡ ¼ÓÇÏ´Â Áö °Ë                                                                                                               {
                                                                                                                                                      if (ContactTest(m_RCT, gTestistleaf[i]) = true)
                                                                                                                                                                         E    _   L [
 »çÇÏ°í, ¼ÓÇÏ´Â °æ¿ì ÇÏÀ§ ³ëµå°¡ ¸®ÇÁ                                                                                                                 {

 ÀÎÁö °Ë»çÇؼ- ¸®ÇÁÀÎ °æ¿ì ±×¸® â, ¾Æ                                                                                                                      FillRect(mDC, &g_Testist[leai,] NU);
                                                                                                                                                                     _H         L      f[    L
                                                                                                                                                           m_UpdateCntist[leai] = UpdateCnt;
                                                                                                                                                                      L      f[ m_
 ´Ï¸é ´Ù½Ã Àç±Íû¸·Î °Ë»öÇÑ´Ù.                                                                                                                         }
                                                                                                                                                  }
void plorer(const RCT & rect, NODE * node)
     Ex            E          _
                                                                                                                                              }
{
                                                                                                                                          } else
                for(int side0; side<4; side+)
                            =
                                                                                                                                              Explorer(rect, (_NODE*) node-child[side]);
                                                                                                                                                                           >
                {
                                                                                                                                      }
                    if (node->child[side] != NUL)
                                                                                                                                  }
                    {
                                                                                                                              }
                         if ((side=0&rect.let=<node-piot.x&rect.top=<node->pivot.y)
                                            f       > v                                                         |
                                                                                                                          }
                                  (side=1&rect.right>node->pivot.&rect.top<node->piot.y) |
                                                     =            x        =       v
                                  (side=2&rect.left=<node->pivot.x&rect.botto>m=node->pivot.)
                                                                                            y                       |
                                  (side=3&rect.right>node->pivot.&rect.bottom>node-piot.y)
                                                     =            x           =    > v                               ){
                                  if (node->ask&(1<side))
                                            m



    9
®¸ ÆåµõÄ ö»½Å                                          (2)

ÇÏÀ§³ëµå°¡ °Ë»ö ¿µª°ú °ãÄ¡´Â Áö °Ë                                                 + ºñÆ® ¸¶½ºÆ® ¦ ÀÌ¿ëÇÑ Á᫐ ¡°ú ¿µ ª
          »çÇÏ´Â ¹æý                                                               °Ë»ç
                                                                                                   µÎ ¹ø° ¿¬»ê ¹æ½ÄÀ» ºñÆ® ¼ÆÃÀ» ÀÌ
+ ¼-ºê ¹Ù¿îµå¸¦ ±¸Çؼ- ¿µ ª°ú °Ë»ç
                                                                                   ¿ëÇؼ- ¹æ ýÀ¸·Î 󸮰¡ °£´ÜÇØÁø Ù.
                  °Ë»ç ¼Óµ ´Â ´À¸®Áö , ºä ÇÁ·¯½ºÅÒ
                                                                                   (¼ÀÇà _OPTIMIZE Àü󸮱â ÀÌ¿ëÇÑ
 Äøµ½¿¡´Â ÀÌ ¹æý¸ À¯È¿ÇÑ´Ù
                                                                                   ºÎÐ ÂüÁ¶)
     + Á᫐ ¡°ú ¿µ ª°ú °Ë»ç
                                                                                   ÀÌ¿ë °¡´ÉÇÑ Æ¯¼º
                      ¾Æ·¡ 0¹ø Æò¸éÀÇ °æ¿ì Á߽ɡ°ú °Ë»ö
ÇÀª¿µ let, topη¸À ÜÇ´Æ .   f                           Ù´ÏÇÉ ¡°                   + ³ëµå°¡ ¿ÏÀüÈ÷ °Ë»ç ¿µ ª¾È ¡ ÀÖ´Ù¸é
                                                                                    ÇÏÀ§ ³ëµå´Â ¸ðµÎ ¿µª¾È¡ Æ÷ÇԵȴÙ.
                                                                                   + ¸®ÇÁ°¡ °Ë»ç ¿µ ª¾È ¡ ÀÖ´Ù¸é »óÀ§
                                                                                    ¸ðµç ³ëµå´Â ¿µªÀ» Æ÷ÇÔÑ´Ù
                                                                                   + ºÐÇÒ Áö ¡ÀÌ ¿µ ª ¾È¿¡ ÀÖ´Ù¸é ¸ðµç
                                                                                    Àڽĺ ¿µªÀ» Æ÷ÇÔÑ´Ù.

 10
®¸ ÆåµõÄ ÃÇù»

»ùÇà ¾îÇø®ÄÉÀ̼
+ È-¸é »ó¿¡ ÀÓ Ç Å©±âÀÇ ¸¹Àº ¼öÀÇ
 °³Ã¼µé ºÐÆ÷µÇ¾î ÀÖ» ¶§ ÀÓÇ ¿µª
       À Ç ° ³Ã ¼¸ ¦ ¼ ±Å ÃÇ Ò ° æ¿ ì ´ Ü ¸ î ¹ øÀ Ç Å ½» ö
        À¸·Î ¿µª¡ Æ÷ÇÔµ´Â °³Ã¼¸¦ ¾òÀ» ¼ö
            ÀÖ´Ù.
+ ¼±Åà ¿µ ª : º¸¶ó»ö
+ ¿µ ª ¾È¿¡ ÀÖ´Â ¸®ÇÁ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ :
 ¹é»ö °³Ã¼, ¹é»ö ¾Æ¿ô¶óÀÎ °³Ã¼
+ ÃÖÁ¾ ¼±Åà ¿µ ª¾È ¡ ÀÖ´Â °³Ã¼ : ¹é»ö
ttpdigiat.conoerrordonloa
h /:   b h /m      / w
 d2duadtree.ip
  / q         z

  11
2. ¿ÁÆ®¸     (Octree)
+ X, Y, ZÃàÀÇ 3°¡Áö Ãà ¼º ÐÀ¸·Î °ø £                   + °ø£À» 8µîºÐÇϱ⠶§¹®¿¡ Ž»ö º¹Àâ
 À» ºÐÇÒÑ´Ù.                                            µ ´Â ÈξÀ ÀÛ¾ÆÁø´Ù. ÀÌ»ó û Î °æ¿ì
                                                         O(log 8N).
+ ÄõµåÆ®¸ ¿Í °ÅÀÇ ´ëºÎ ÐÀÇ Æ¯¼ºÀÌ µ¿
 ÀÏÇ´Ù.                                                + ÄõµåÆ®¸ ¿Í ¸¶Âù°¡Áö·Î ±ÕÀÏÇÑ Å©±â
                                                        ·Î ³ëµå¸¦ ºÐÇÒ ÇÒ °æ¿ì À¯¿¬ÇÏ°Ô µ¿Àû
+ QuadTree ¡¿ ÌàÀà ªÏ³Ç ȵ¡°ßà ÂÅüÇ
                                                          ÀÎ °³Ã¼ °ü¸®µ °¡´ÉÇÏÙ
 ¶ó°í º¼ ¼ö ÀÖ´Ù.
+ °ø £Àû ¸·Î °ñ í·ç ºÐÆ÷µÈ ÇüÅÂÀ ¾À
 ¿¡ ÀûÇÕÏ´Ù.
      + ¿¹¸¦ µé¾î ¸Þ½ÃÀÇ »ï°¢Çü ´ÜÀ§ Ç Ãæ
       µ¹ µðÅ×ÀÏ» °¡Áø´Ù¸é ³»ºÎÀû¸·´Â °¢
ÌÀó¶®Æ »ÀéµÞ¾ Octree ηÂÅüÇ í°öÁ¡
         ÀÖ¸é È¿À²ûÌ´Ù.


 12
3. k-d Tree
+ ¿ÁÆ®¸ ³ª Äõµå Æ®¸ ÀÇ °æ¿ì ¾ÆÀÌÅÛµé                                    + ¿ÁÆ®¸ ³ª Äõµå Æ®¸ ¿¡ ºñÇØ ¾ÆÀÌÅÛ Ç
 ÀÌ ÇÑ ¶óÀλ ÀÌ·ç°Å³ª ÇÑ Æò¸é¿¡ À§Ä¡                                     º ÐÆ ÷¿ ¡ Å « ¿ µÇ â ¾ øÀ Ì ± ÕÇ ü À Ö´ Â Æ ®¸ ®° ¡
   ÇÒ °æ¿ì ºñÈ¿À²û¸·Î Æ®¸°¡ ±¸¼ºµÈ´Ù.                                     ±¸¼ºµÈ´Ù.
                                Äõµå Æ®¸ÀÇ °¡Áö 2°³ÀΠä·Î °è¼Ó         + ¾ÆÀÌÅÛ ÀÚÁÖ ¿Å°Ü ´Ù Ò °æ¿ì Æ®¸
±¸¼ºµÈ´Ù°Å³ª, ¿ÁÆ®¸ ¡¼- ¾ÆÀÌÅÛ Ç Y                                       ± ÕÇ üÀ » ± ý ¼ ö À Ö± â                              ¶§¹®¿¡, µ¿Àû Î °³Ã¼
°ªÀÌ ¸ðµÎ 0À̶ó°Å³ª ÇÏ´Â ½ÄÀ¸·Î.                                          º¸´Ù Á¤ÀûÎ °³Ã¼¿¡ ÀûÇÕÏ´Ù.
+ k-d ´®¸Æ ÇÀ³°Îµ ¦¸öÁ¡° øÁÌÀ ®¸Æ
 ÀÇ ÀÏÁ¾¸·Î ³ëµåÀÇ ¾ÆÀÌÅÛ» À̺ÐÇÒ
   Çϱâ ÁÀº ÃàÀ» ¼±ÅÃÇØ- Æ®¸¦ »ý¼º
       ÇÑ´Ù.
+ ³ª´©Â ÃàÀº ÇÑ°¡Áö ¿ä¼Ò (x, y, ÁßÀÇz
 Çϳª) ¸ À ·Î ºÐÇÒ µÇ±â ¶§¹®¿¡ Ž»ö ¿¬
 »êÀÌ Àû°í, °£´ÜÇÏ Ù.

 13
4. BSP
+ ±âº»Àû Î Æ®¸ ÀÇ ¼Ó ºÀ ÀÌ ü Ç Æ®¸                + Æ®¸ ¦ »ý¼ºÇÏ´Â ½Ã°£ÀÌ ¸¹ÀÌ °É¸ ´Ù.
 µé°ú µ¿ÀÏÇ´Ù.                                     (°¢ ³ëµå¸¦ ±ÕÇü ÀÖ°Ô À̺ÐÇÏ´Â Æò¸éÀ»
                                                   ±¸ÇÏ â°¡ ½±Áö ¾Ê´Ù.)
+ k-d Í¿®¸Æ ηöÁ¡°ù¶¸ ÇÀ³°Îµ öÁ¡°
 ¸¦ °¡Áö´Â ÀÌÁø Æ®¸ÀÇ ÇüŸ¦ °¡Áø´Ù.              ÄùÀÌÅ©Ç »ç·Ê
+ ºÐÇÒ Ï´Â Æò¸éÀº Ãà¿¡ °íÁ¤µÇ¾î ÀÖ´Â              + Æú¸®°ïÀ ·Î Æ®¸ ¦ ±¸¼ºÇßÀ ç, ³ëµå
 °ÍÀÌ ¾Æ´Ï¶ó ÀÓÇ Æò¸éÀÌ µÈ´Ù. (Áï,                 ¿¡ ÆäÀ̽º ¸®½ºÆ °¡ ÀÖ°í, ¸®ÇÁ´Â °ø £
 ¾ÆÀÌÅÛ» ³ª´- ¶§ ÇüÅÂÀ ¿µÇâÀ» ´ú ¹Þ                À» ³ªÅ¸½´Ù.
        °Ô µÇ¸ç, ³ª´©  Æò¸é¿¡ °ãÄ¡´Â °æ¿ì¸¦
                                                  + °ãÄ¡´Â Æú¸®°ïÀÌ »ý±æ °æ¿ì ½ÇÁ¦·Î
        ÁÙÀÏ ¼öµ ÀÖ´Ù.)
                                                   Æú¸®°ïÀ» ºÐÇÒؼ- Á¤È®ÇÏ°Ô ³ëµå¿¡ ¼Ó
+ Á¤Àû Î °³Ã¼µé¿¡ ´ëÇؼ- ±ÕÇü ÀâÈù                         Çϵ· µÇ¾îÀÖ´Ù.
 Æ®¸¦ ±¸¼ºÇÏ´Â °ÍÀÌ ÀϹÝûÌ¸ç µ¿Àû
                                                  + ºä ÄøµÀÇ °æ¿ì Ä«¸Þ¶óÀÇ À§Ä¡¿Í ³ë
     ÀÎ °³Ã¼ °ü¸®¿¡´Â ÀûÇÕÏÁö ¾Ê´Ù.
                                                   µåÀÇ ºÐÇÒ Æò¸é°úÀÇ À§Ä¡·Î Ž»öÇÑ´Ù.
                                                  + Ãæµ¹ bspƯ¡À» ÀÌ¿ëÇؼ- ÃÖÀûÇ
 14                                                Ž»öÀÌ °¡´ÉÇÏÙ
III. ·»´õ¸µ ÄøµÀ» À§ÇÑ
                                                            Àå¸é °ü¸® ±â¹ý
+ ´Ü¼øÈ÷ ¿µ ª °Ë»ç³ª ºä ÄøµÀ» ÀÌ¿ë                                          + ½Ç³» ÁöÇü¿¡´Â Æ÷Å»ÀÌ ÀûÇÕ Ï´Ù.
 ÇÑ Àå¸é °ü¸® ±â¹ýÀÌ ¾Æ´Ï¶ó ±âÇÏÀûÎ
                                                                             + °Å´ëÇÑ °³Ã¼ ¡ Çʵå»ó¿¡ Á¸ÀçÇÏ´Â ¤¡
   Ư¼ºÀ» ÀÌ¿ëÇÏ´Â Àå¸é °ü¸® ±â¹ý.
                                                                              ¿©ì¡´Â ¿ÀÄ÷çÁ¯ ÄøµÀÌ µ¿òÀÌ µÈ´Ù.
+ ±âÇÏÀû Î ¿¬»êÀÌ µé¾î°¡±â ¶§¹®¿¡ Ž
                                                                             + ´ÝÈù ÁöÇüÀ̰ųª, ¾ð´ö, ¼º ®µîÀÇ Æ¯
 »öÀÌ ÀϹÝûΠŽ»öº¸´Ù ºÎ´ã½·¯¿ï
                                                                              ¡ ÀÖ´Â ÁöÇü¿¡¼-´Â PVS°¡ µ¿òÀÌ µÈ
     ¼ ö À Ö± â ¶ §¹ ®¿ ¡ · »´ õ¸ µ Ç Ò ¶ § Á Ö· Î » ç¿ ë
                                                                              ´Ù.
      µÈ´Ù.
+ Æ÷Å»Àº Ưº°ÇÑ ÇüÅÂÀ Àå¸é °ü¸® ±â
 ¹ýÀÌ´Ù.
+ ¿ÀÄ÷çÁ¯ Äøµ, PVS´Â µ¶¸³È Àå¸é
 °ü¸® ±â¹ýÀº ¾Æ´ÏÁö¸ Àå¸é °ü¸® ±â¹ý
     ¿¡ ºÙ¾î¼- °ÀÌ »ç¿ëµÇ´Â ±â¼úÀÌ´Ù.


15
1. Æ÷Å»   (portal)
Ư¡                                                  + Æ÷Å»À ÅëÇؼ- º¸ÀÎ ³ëµå¿¡¼- ´ÙÀ½
                                                       ³ëµå·Î ¿¬°á °Ë»çÇÒ ¶§´Â »óÀ§ Æ÷Å»À
+ ³ëµå´Â Æ®¸ ±¸¼ºÀÌ ¾Æ´Ñ ¿¬°áÀÌ ÀÚ
                                                             ÅëÇؼ- º¸ÀÌ´Â Áö °Ë»çÇÑ´Ù.
 À¯·Î¿î ±×·¡ÇÁÎ ±¸¼ºµÈ´Ù.
                                                      ·»´õ¸µ ¼öµ ÄÚµå
+ ±âº»Àû ¸·Î ³ëµå´Â ±âÇÏÀû ¸·Î ±¸¼º
 µÇ¾î Àֱ⠶§¹®¿¡ °³Ã¼ ¼öÀÇ ¿µÇâÀ» ¹Þ                        () {
                                                             ö»½Å åµë³

     Áö ¾ÊÀ¸ ç, °³Ã¼ÀÇ À̵¿ ¡ µû¶ó ³ëµå°¡                                (å)
                                                                         Ù´°¸×± µ ë³
                                                                         or(i=0; i<;ö¼Ä½ÚÀ
                                                                         f                                                              i+) {
                                                                                                                                          +
     ¹Ù²îÁö ¾ÊÀ¸¹Ç·Î µ¿Àû¸·Î ó¸® °¡´ÉÇÏ                                               if (.i.ª³ûÇÝ´ = alse) {
                                                                                           åµë³ [ĽÚÀ ] f
           ´Ù.                                                                              if (È(.i.)) {
                                                                                                ª³ÌÀ¸º¡¿é - åµë³ [ĽÚÀ ] »Å÷Æ
                                                                                                                   (.i)
                                                                                                                   ö»½Å åµë³ [ ĽÚÀ ]
±âº» ¿øÄ¢                                                                                   }
                                                                                       }
+ °¢ ³ëµå´Â ƯÁ¤ ¿µ ªÀ¸·Î ±¸¼ºµÇ ç
                                                                         }
 ³ëµåÀÇ ¿¬°áºÎ´Â Æ÷Å»ÀÌ Á¸ÀçÇÑ´Ù.                            }

+ ÀÓ Ç ³ëµå¿¡¼- Æ÷Å»ÀÌ º¸ÀÌÁö ¾ÊÀ»
 °æ¿ì ¿¬°áµÈ ³ëµå´Â ¾È º¸ÀδÙ.
       16
Æ÷Å»   (2)

±âŸ
+ ¿¬°áµÈ ³ëµå°¡ ÀÛ º Æ÷Å»À ÅëÇØ º¸
 ÀÏ °æ¿ì ¹Ì¸® ·»´õ¸µÈ À̹Áö·Î ó¸®
   ·Î ó¸® °¡´ÉÇÏÙ.
+ °ÔÀÓ ³»¿¡¼- ¹®À̳ª µ ±¸·Î Æ÷Å»À
 °¡¸± °æ¿ì Æ÷Å» ±¸Á¶¿Í ¿¬µÇؼ- ¿¬°á
     µÈ ³ëµå¸¦ ·»´õ¸µÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù
+ Ưº°ÇÑ ÇüÅ·ΠÁöÇüÀÌ ±¸¼ºµÇ¾î ß ÇÏ
 ¸ç, Æ÷Å»ÀÇ ¼³Á¤, ³ëµå °áÁ¤ µîÀÇ µ¥ÀÌ
 ÅÍ ¼öÁý ¾î·Á¿òÀ¸Î ½±°Ô Àû¿ëÇϱâ Èû
   µé´Ù.
+ ½Ç³» ÁöÇü¿¡ ÀûÇÕ Ï´Ù.
                                                 ttp.cs.irginia.edulue
                                                 h w /: v          ~/    kepulicationsportals.tl
                                                                         b / b        /       hm



       17
2. ¿ÀÄ÷çÁ¯¸µ
                                            (occlusion culling)
+ ¾ÕÀÇ °³Ã¼¿¡ ÀÇ Ø µÚÀÇ ¿ÀºêÁ§Æ®°¡                    + Çϵå¿þ¾îÀû Î ¹æ ý : ½ÇÁ¦·Î ÀÛ º(!)
 ¿ÏÀüÈ÷ °¡·Á ö´Â Áö °Ë»çÇÏ´Â ¹æ½Ä =>                   ºä¿¡ °¡¸®´Â ¿ÀºêÁ§Æ®¸¦ ·»´õ¸µÇÑ ÈÄ
 “°¡Àå ºü¸¥ °ÍÀº ±×¸®Áö ¾Ê´Â °Í                  ”         ·»´õ¸µÇÒ °èü¸¦ ±× ºä¿¡ ½ÇÁ¦·Î ·£´õ
                                                                   ¸µÇؼ- È-¸é¿¡ ÂïÈù Çȼ¿ ¼ö¸¦ ¼¾î-
±¸Çö¹æý
                                                                         0ÀÎ °æ¿ì ¿ÏÀüÈ÷ °¡·È´Ùí ÆÇ´ÜÑÙ.
+ ±âÇÏÀû Î ¹æ ý : ±âÇÏÀû Î ¿¬»êÀ¸·Î
                                                      ±âŸ
 °¡¸®´Â ¿ÀºêÁ§Æ®¡ ÀÇØ ·»´õ¸µÇÒ °³Ã¼
       ÀÇ ¹Ù¿îµå°¡ ¿ÏÀüÈ÷ °¡·Áö´Â Áö °Ë»ç                    + ¿¬»ê·®ÀÌ Àû º ÆíÀº ¾Æ´Ï¹Ç·Î, Àû ý
         ÇÑ´Ù.                                                ÇÑ ¼³Á¤ÀÌ ÇÊ¿ä ϸç, ½ÇÁ¦·Î ÁöÇü»ó ¸¹
                                                              Àº °É °¡·ÁÖ´Â °Å´ëÇÑ °³Ã¼¡ Á¸ÀçÇØ
                                                                ¾ß È¿°ú¡ ÀÖ´Ù.




          18
3. PVS
PVS(Potentially Visible Set)                  + ¹Ì¸® °è»êÇÏ´Â °ªÀ̱⠶§¹®¿¡ ºôµå
                                               ŸÀÓÇ ¿µÇâÀ» °ÅÀÇ ¾È ¹ÞÀ¸Ç·Î ºÎ¸£
+ º¸ÀÏ °¡´É¼ºÀÌ ÀÖ´Â ÁýÇÕÀ̶õ ÀǹÌ.
                                            »Å º÷½Æ (Brutal orce          òÁ®¸í°Ë¾       F
+ ÄõµåÆ®¸, ¿ÁÆ®¸, BSP¿¡ »ó°ü¾øÀÌ            lgorithmA                                      – °¡´ÉÇÑ ¸¹Àº °æ¿ì¸¦ Á÷¢
 ÀÓÇ ¸®ÇÁ¿¡¼- º¸ÀÏ °¡´É¼ºÀÌ ÀÖ´Â                      ´ëÀÔÇÏ¿© È®·üÀû ¸ Î ÇØ°á)À» È°¿ëÇÒ
    ¸®ÇÁÀ ¸®½ºÆ¦ ¾Ë ¼ö ÀÖ´Ù.                          ¼ö ÀÖ´Ù.
+ º¸ÀÏ °¡´É¼ºÀÌ ÀÖ´Â ¸®ÇÁÀ ¸®½ºÆ ´Â         + Á¤Àû Î µ¥ÀÌÅÍ´Ù.
 ½Çð£À¸·Î °è»êÇÑ µ¥ÀÌÅÍ°¡ ¾Æ´Ñ ¹Ì¸®
                                            ÄùÀÌÅ© »ç·Ê
          °è»êµÈ °ªÀ» »ç¿ëÇÑ´Ù.
                                            + ÀÓÇ ¸®ÇÁ¿¡ ÀÖ» ¶§ º¸ÀÏ °¡´É¼º
  + ±¸¼º»ó ÀÏ°ý û Î ±âÇÏÀû Ư¼ºÀÌ ¾øÁö
                                             ÀÖ´Â ¸ðµç ¸®ÇÁÀ Á¤º¸¦ RLE + ºñÆ®µ¥
,¸ ,¾Å ÇÀîµê» ¦¸ß¾Ã½ ¦¸öÁ¡° ÌÀéµÍ°
                                             ÀÌŸ·Î °¡Áöí ÀÖ´Ù.
   ÀÖ» ¶§ ±×· °Íµé¿¡ ÀÇØ Àý´ë·Î º¼ ¼ö
      ¾ø´Â ¸®ÇÁ¦ ã´Â °Í


 19

More Related Content

What's hot

Thamirabarani- The Lab Journal
Thamirabarani- The Lab JournalThamirabarani- The Lab Journal
Thamirabarani- The Lab Journal
Sundararaman Velayutham
 
20040129102905468 Db98 15865 A 1 Ib R
20040129102905468 Db98 15865 A 1 Ib R20040129102905468 Db98 15865 A 1 Ib R
20040129102905468 Db98 15865 A 1 Ib Rguestb34ac2
 
深化读者服务提高业务素质
深化读者服务提高业务素质深化读者服务提高业务素质
深化读者服务提高业务素质sugeladi
 
Συνέντυεξη Venter 2
Συνέντυεξη Venter 2Συνέντυεξη Venter 2
Συνέντυεξη Venter 2ionpapado
 
Koppal dist model sci_qp
Koppal dist model sci_qpKoppal dist model sci_qp
Koppal dist model sci_qp
ShivashankarAJ28 Banakar
 
Competitions world april-11-new
Competitions world april-11-newCompetitions world april-11-new
Competitions world april-11-new
Vamshi Krishna
 
xaidelbergi
xaidelbergixaidelbergi
xaidelbergipptsmps
 
xristougenna.2006
xristougenna.2006xristougenna.2006
xristougenna.2006pptsmps
 
Mm Technocity June 17 2009 V 2
Mm Technocity June 17 2009 V 2Mm Technocity June 17 2009 V 2
Mm Technocity June 17 2009 V 2
Ajay Prasad
 
korinthia.panamas
korinthia.panamaskorinthia.panamas
korinthia.panamaspptsmps
 
Modelos de formatos inventario y balance
Modelos de formatos inventario y balanceModelos de formatos inventario y balance
Modelos de formatos inventario y balance
marvin aredo
 
Press release on krishnagiri by sreyamskumar mla
Press release on krishnagiri by sreyamskumar mlaPress release on krishnagiri by sreyamskumar mla
Press release on krishnagiri by sreyamskumar mlakeralawatchnews
 
โบรชัวร์ Catalog ikea thailand - matteresses 2012
โบรชัวร์ Catalog ikea thailand - matteresses 2012โบรชัวร์ Catalog ikea thailand - matteresses 2012
โบรชัวร์ Catalog ikea thailand - matteresses 2012
โปรโมชั่นทูยู
 
หลักการเทียบภาษาไทยเป้นภาษาอังกฤษ
หลักการเทียบภาษาไทยเป้นภาษาอังกฤษหลักการเทียบภาษาไทยเป้นภาษาอังกฤษ
หลักการเทียบภาษาไทยเป้นภาษาอังกฤษ
Nattapong Boonpong
 

What's hot (18)

Thamirabarani- The Lab Journal
Thamirabarani- The Lab JournalThamirabarani- The Lab Journal
Thamirabarani- The Lab Journal
 
20040129102905468 Db98 15865 A 1 Ib R
20040129102905468 Db98 15865 A 1 Ib R20040129102905468 Db98 15865 A 1 Ib R
20040129102905468 Db98 15865 A 1 Ib R
 
milos
milosmilos
milos
 
深化读者服务提高业务素质
深化读者服务提高业务素质深化读者服务提高业务素质
深化读者服务提高业务素质
 
Συνέντυεξη Venter 2
Συνέντυεξη Venter 2Συνέντυεξη Venter 2
Συνέντυεξη Venter 2
 
Koppal dist model sci_qp
Koppal dist model sci_qpKoppal dist model sci_qp
Koppal dist model sci_qp
 
Competitions world april-11-new
Competitions world april-11-newCompetitions world april-11-new
Competitions world april-11-new
 
xaidelbergi
xaidelbergixaidelbergi
xaidelbergi
 
paiko
paikopaiko
paiko
 
xristougenna.2006
xristougenna.2006xristougenna.2006
xristougenna.2006
 
Mm Technocity June 17 2009 V 2
Mm Technocity June 17 2009 V 2Mm Technocity June 17 2009 V 2
Mm Technocity June 17 2009 V 2
 
korinthia.panamas
korinthia.panamaskorinthia.panamas
korinthia.panamas
 
لا حياة بلا تميز
لا حياة بلا تميزلا حياة بلا تميز
لا حياة بلا تميز
 
Modelos de formatos inventario y balance
Modelos de formatos inventario y balanceModelos de formatos inventario y balance
Modelos de formatos inventario y balance
 
Press release on krishnagiri by sreyamskumar mla
Press release on krishnagiri by sreyamskumar mlaPress release on krishnagiri by sreyamskumar mla
Press release on krishnagiri by sreyamskumar mla
 
โบรชัวร์ Catalog ikea thailand - matteresses 2012
โบรชัวร์ Catalog ikea thailand - matteresses 2012โบรชัวร์ Catalog ikea thailand - matteresses 2012
โบรชัวร์ Catalog ikea thailand - matteresses 2012
 
หลักการเทียบภาษาไทยเป้นภาษาอังกฤษ
หลักการเทียบภาษาไทยเป้นภาษาอังกฤษหลักการเทียบภาษาไทยเป้นภาษาอังกฤษ
หลักการเทียบภาษาไทยเป้นภาษาอังกฤษ
 
Janata ka aai_4dec
Janata ka aai_4decJanata ka aai_4dec
Janata ka aai_4dec
 

Viewers also liked

Vangelo-del-giorno
Vangelo-del-giornoVangelo-del-giorno
Vangelo-del-giorno
Cristiani Cattolici
 
演示文稿1
演示文稿1演示文稿1
演示文稿1lovejay
 
Week 13 (u)
Week 13 (u)Week 13 (u)
Week 13 (u)
Liana Arfesha
 
Presentatie Glenn Rayp
Presentatie Glenn RaypPresentatie Glenn Rayp
Presentatie Glenn Rayp
ABVV
 
Liara ozola prezentacija par-izglitibu
Liara ozola   prezentacija par-izglitibuLiara ozola   prezentacija par-izglitibu
Liara ozola prezentacija par-izglitibukarlis133
 
NEWBIE BROKER INVESTIMENTOS
NEWBIE BROKER INVESTIMENTOSNEWBIE BROKER INVESTIMENTOS
NEWBIE BROKER INVESTIMENTOS
Marco Coghi
 
Bibliotheken op Wikipedia en Wiki's: een pleidooi
Bibliotheken op Wikipedia en Wiki's: een pleidooiBibliotheken op Wikipedia en Wiki's: een pleidooi
Bibliotheken op Wikipedia en Wiki's: een pleidooiEdwin Mijnsbergen
 
Polynésie française
Polynésie françaisePolynésie française
Polynésie françaiseFabienRiviere
 
手机客户端产品设计的10条法则
手机客户端产品设计的10条法则手机客户端产品设计的10条法则
手机客户端产品设计的10条法则also24
 
интерактивные методы обучения
интерактивные методы обученияинтерактивные методы обучения
интерактивные методы обученияSwetlana Terentjeva Svetlana
 
放射性物質食べても大丈夫?
放射性物質食べても大丈夫?放射性物質食べても大丈夫?
放射性物質食べても大丈夫?Naoki Kato
 
Apresentação PET Conexões educação
Apresentação PET Conexões educaçãoApresentação PET Conexões educação
Apresentação PET Conexões educação
Leticiacs10
 
Low presentatie 2011 alg
Low presentatie 2011 algLow presentatie 2011 alg
Low presentatie 2011 algmslotman
 
Planilla de power point
Planilla de power pointPlanilla de power point
Planilla de power pointpaoloink
 

Viewers also liked (20)

Vangelo-del-giorno
Vangelo-del-giornoVangelo-del-giorno
Vangelo-del-giorno
 
Chambar
ChambarChambar
Chambar
 
演示文稿1
演示文稿1演示文稿1
演示文稿1
 
Week 13 (u)
Week 13 (u)Week 13 (u)
Week 13 (u)
 
Presentatie Glenn Rayp
Presentatie Glenn RaypPresentatie Glenn Rayp
Presentatie Glenn Rayp
 
Liara ozola prezentacija par-izglitibu
Liara ozola   prezentacija par-izglitibuLiara ozola   prezentacija par-izglitibu
Liara ozola prezentacija par-izglitibu
 
NEWBIE BROKER INVESTIMENTOS
NEWBIE BROKER INVESTIMENTOSNEWBIE BROKER INVESTIMENTOS
NEWBIE BROKER INVESTIMENTOS
 
Bibliotheken op Wikipedia en Wiki's: een pleidooi
Bibliotheken op Wikipedia en Wiki's: een pleidooiBibliotheken op Wikipedia en Wiki's: een pleidooi
Bibliotheken op Wikipedia en Wiki's: een pleidooi
 
Polynésie française
Polynésie françaisePolynésie française
Polynésie française
 
手机客户端产品设计的10条法则
手机客户端产品设计的10条法则手机客户端产品设计的10条法则
手机客户端产品设计的10条法则
 
интерактивные методы обучения
интерактивные методы обученияинтерактивные методы обучения
интерактивные методы обучения
 
Mayan culture
Mayan cultureMayan culture
Mayan culture
 
Recepta2
Recepta2Recepta2
Recepta2
 
放射性物質食べても大丈夫?
放射性物質食べても大丈夫?放射性物質食べても大丈夫?
放射性物質食べても大丈夫?
 
Apresentação PET Conexões educação
Apresentação PET Conexões educaçãoApresentação PET Conexões educação
Apresentação PET Conexões educação
 
Kr ut träff 5 3 entreprenörskap och lup
Kr ut träff 5   3 entreprenörskap och lupKr ut träff 5   3 entreprenörskap och lup
Kr ut träff 5 3 entreprenörskap och lup
 
Prezenz
PrezenzPrezenz
Prezenz
 
Historia de la computación
Historia de la computaciónHistoria de la computación
Historia de la computación
 
Low presentatie 2011 alg
Low presentatie 2011 algLow presentatie 2011 alg
Low presentatie 2011 alg
 
Planilla de power point
Planilla de power pointPlanilla de power point
Planilla de power point
 

More from noerror

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
noerror
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
noerror
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
noerror
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
noerror
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법noerror
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문noerror
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
noerror
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법noerror
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법noerror
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrainsnoerror
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드noerror
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기noerror
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강noerror
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개noerror
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문noerror
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개noerror
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editornoerror
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개noerror
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁noerror
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성noerror
 

More from noerror (20)

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrains
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editor
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 

04_장면 관리 개요

  • 1. °ÔÀÓ¿¡¼-Ç Àå¸é °ü¸® ÇÁ·Î±×¡¹Ö °³¿ä ÚÀ¥Çß¹ : ÍÀº¼è± (noerror@itel.net) h ÏÀ¥Çß¹ : 2004.10.10 1
  • 2. I. INTRODUCTION é¸åÀ ®¸ü° (Scene Managing) °³¿ä + °ÔÀÓ¿¡¼- ó¸®ÇÏ´Â °³Ã¼ ö ¡ ¸¹¾ÆÁö + °³Ã¼ ¼ö = ¾À¿¡ 1000°³ÀÇ ¿ÀºêÁ§Æ®°¡ °Å³ª, Ç¥ ö ¿µ ªÀÌ ³Ð¾îÁú °æ¿ì, ·»´õ¸µ, Àִµ¥, ½ÇÁ¦·Î Æò±ÕÀû ¸·Î È-¸é¿¡ ·» Ãæµ¹ üũ µîÀÇ Áö¿ªÀûΠ󸮿¡ Á» ´õ ´õ¸µ µÇ´Â °ÍÀÌ 50°³ Á¤µ¶ó°í Çϸé Àå È¿À²ûÎ Á¢±ÙÀÌ ÇÊ¿äÏ´Ù. ¸é °ü¸®¡ ÇÊ¿äÏ´Ù ° í Ç Ò ¼ ö À Ö´ Ù. + ¿µªÀÇ ³ÐÀÌ = 1Km ¿¡ ¿ÀºêÁ§Æ®µéÌ î¾Çµ÷Æк »ÀÖ §¶ ßþ½ ¡°®¸Å 10M ó¶ ¸é ¸ðµç ¿ÀºêÁ§Æ®Ç ´Ü¼ø ºä Äøµº´Ù È¿À²ûÎ ¹æýÀÌ ÇÊ¿äÏ´Ù. + °ÔÀÓ¿¡¼- °³Ã¼¸¦ °Ë»öÇÒ ÇÊ¿ä°¡ ÀÖ´Â ¸¹Àº ºÐ¾ß¿¡¼- Àå¸é °ü¸®¡ ÇÊ¿äÏ´Ù. ¿ÀºêÁ§Æ® ·»´õ¸µ, Ãæµ¹ ³¸® ¿µÇâÁÖ´Â ¶óÀÌÆà °Ë»ç ±ÙÁ¢ÇÑ ¿ÀºêÁ§Æ® ¸®½ºÆ GTA3 – r S t u d i aR o s c k 2
  • 3. é¸åÀ ®¸ü° ÒǪ¿ ·»´õ¸µ °üÁ¡ + Àå¸é°ü ® => ÃÖ¼ÒÀÇ Å½»öÀ¸·Î Ãæµ¹ °¡´É¼º ÀÖ´Â ¿ÀºêÁ§Æ®¸ °Ë»ö + °ÔÀÓ¿¡¼-´Â ·»´õ¸µ ¼Óµ °¡ Å« ¿µÇâÀ» Á Ü >= " °¡Àå ºü¸¥ ·»´õ¸µÀº ±×¸®Áö ¾Ê Á¤¸®ÇÏé ´Â°Í “ + ¸¹Àº ¿ÀºêÁ§Æ®µé Áß¿¡¼- ó¸®ÇÏ°íÀÚ + Àå¸é °ü¸®´Â È-¸é¿¡ ·»´õ¸µ µÈ °¡´É ÇÏ´Â ¿µ ª ¡ Æ÷ÇÔµÈ, °á ú¿¡ ¿µÇâÀ» ÁÙ ¼ºÀÌ ÀÖ´Â °Íµé¸ ÃÖ¼ÒÀÇ Å½»öÀ¸·Î ºü °¡´É¼ºÀÌ ÀÖ´Â °³Ã¼¸ ºü¸£°Ô °Ë»öÇÏ´Â ¸£°Ô °Ë»ö °ÍÀÌ Àå¸é °ü¸®ÀÇ ±âº» Ãæµ¹³¸® °üÁ¡ °ÔÀÓ¿¡¼- ¸¹ÀÌ »ç¿ë µÇ´Â ±â¹ý + ÇÑ ÇÁ·¹ÀÓ¿¡ N°³ÀÇ ¿ÀºêÁ§Æ®¡ ¹°¸® + ÄõµåÆ®¸ ¸¦ Àû¿ëÇÒ °æ¿ì ¿ÀºêÁ§Æ®°£Ç Ãæµ¹ °Ë + ¿ÁÆ®¸ »ç N x (N-1) ¹ø ÀϾ°Ô µÊ >= “°¡ + k-d ®¸Æ Àå ÁÀº °ÍÀº Ãæµ¹ °¡´É¼ºÀÌ ¾ø´Â ¿Àºê + BSP Á§Æ®µé°ú´Â Ãæµ¹ °Ë»ç¸¦ ÇÏÁö ¾Ê´Â °Í ” 3
  • 4. II. ÀϹÝûÎ Àå¸é °ü¸® ±â¹ý ÀϹÝûÎ Àå¸é °ü¸® ±â¹ýµéÀÇ °øÅëÁ¡ °øÅëÀûÎ ¼öµÄÚå (Pseudo Code) + °èÃþÀû ¸·Î °ø £À» ºÐÇÒ ±¸¼ºÇÏ¿© °³ (,åµë³ ) { ö»½Å ª¿µ ç»Ë° ü ¸®½ºÆ¦ °ü¸®ÇÑ´Ù. or(i=0; i<;ö¼Ä½ÚÀ f i+) { + if ((.i.,åµî¿Ù¹ )) { ÔÇ÷Æ åµë³ [ĽÚÀ ] ª¿µ ç» Ë° + ¸ðµÎ Æ®¸ ±¸Á¶·Î µÇ¾î ÀÖ´Ù. if (.i].º¼Ó = ) { åµë³ [ĽÚÀ Á®Ç¸ or(j0; .i].;ö¼ÛÅÌÀƾ ) { f = å µ ë ³ < j [ Ä ½ Ú À j+ + ƯÁ¤ ³ëµå(ºÎ¸ð)ÀÇ ÇÏÀ§ ³ëµå(ÀÚ½Ä)°¡ if ((.i.,]jÛ[ÅÌÀƾ )) ÔÇ÷Æ åµë³ [ĽÚÀ ] ª¿µ ç»Ë° Test¿¡ Åë°úÇÏÁö ¾Ê´Â ´Ù¸é ±× ÀÌÇÏ´Â (.i.) ®¸³Ã åµë³ Ä[½ÚÀ ] ]j[ÛÅÌÀƾ °Ë»çÇÒ ÇÊ¿ä°¡ ¾ø´Ù. } } else + Àç±Í û ΠŽ»ö¿¡ ÀûÇÕ Ñ ÇüÅ´Ù. (.i,] ) ö»½Å åµë³ [ĽÚÀ ª¿µ ç»Ë° } + ¾Ë°í¸®ÁòÀû Î Á¢±ÙÀÌ â ¶§¹®¿¡ ¿µ ª } ÀÇ Å©±â¿Í ¿ë·®ÀÌ ºñ·ÊÇÏÁö ¾Ê´ÂÙ. } 4
  • 5. 1. ÄõµåÆ®¸ (Quadtree) + µÎ °¡Áö Ãà(ÀϹÝû¸·Î X, Y)·Î °¢ ³ë + °ÔÀÓ¿¡¼- ³ôÀÌÃà Ç ¿µÇâÀ» Àû°Ô ¹Þ´Â µå¸¦ °è¼ÓÇØ- 4ºÐÇÒ ÇÏ´Â ¹æ½Ä °æ¿ì ¸¹ÀÌ »ç¿ëµÈ´Ù. + ŸÀÏ º£À̽ ¿Í ºñ±³ÇÏ¸é ¿µ ªÀÇ Å©±â ¿¡ µû¶ó °Ë»ö ¼ÓµÀÇ ¿µÇâÀ» Àû°Ô ¹ÞÀ¸ ç¸ (ÇÀ¼Ã³° ¡°ö¼ é¸Ù´° 1kʸm ÷Èø¼Ü´ ú° 100km ºÀʸ «Å ¡°ÌÀ÷ .), ®·ë¿ Ù´ø¾ ¿ª½Ã ¿µÇâÀ» ¹ÞÁö ¾Ê´ÂÙ. + ÀÌ»óûÎ Æ®¸ÀÎ °æ¿ì ±íÀÌ´Â log 4N À¸·Î 6¸¸°³ÀÇ °³Ã¼ÀÏ °æ¿ì¡µ ±íÀÌ°¡ 4 ·¹º§ Á¤µ ·Î Àû´Ù + °ø £ ±âÁØÀ¸·Î Æ®¸ ¦ ±¸¼ºÇÒ °æ¿ì ¡ ´Â È¿°úÀû ¸·Î º¹ÀâÇÑ °÷Àº ±íÀÌ, ¾Æ´Ñ °÷Àº ³·°Ô ¼³Á¤µÈ´Ù. 5
  • 6. ®¸ Æ º¼ý» (1) Æ®¸ ¸µé±â + ÇöÀç ³ëµå¿¡ Æ÷ÇÔµÈ ¸ðµç ¾ÆÀÌÅÛµé » Á߽ɡ À» ±âºÐÀ¸·Î °¢ ¿µª¡ Æ÷ÇÔµÈ °Íµé·Î ³ª´«Ù. (Áß½ÉÁ¡ÀÇ °áÁ¤¿¡ µû¶ó Æ®¸ ÀÇ ¸ð¾çÀÌ ´Þ¶óÁø Ù.) + °¢ ¿µ ª ¡ Æ÷ÇÔµÈ °Íµé·Î Æ®¸ ¦ ¸ µé¾îÆ®¸ÀÇ ÃÖ»óÀ§ ³ëµå¸¦ Àڽĸ·Î ºÙ ÀδÙ. Æ®¸¦ ³ª´©Â Á߽ɡ + Æ®¸ÀÇ ±íÀÌ°¡ ³Ê¹« ±í¾îÁö°Å³ª ¿Àºê Á§Æ®¼ö°¡ Àû´çÇÑ ¼ö ÀÌÇÏÎ °æ¿ì ´õ ÀÌ + Æ®¸¦ ±¸¼ºÇÒ ¶§ °¡Àå ¿µÇâÀ» ¸¹ÀÌ »ó ³ª´©Áö ¾ÊÀ¸ç, ÀÌ ³ëµå¸¦ ¸®ÇÁ(Leaf) ÁÖ´Â ºÎÐÀ¸· °¡Àå ±ÕÇü ÀâÈù Æ®¸¦ ¶ó°í ºÎ¸£ç ¾ÆÀÌÅÛµé ¸®½ºÆ¦ °¡Áöí À§Çؼ-´Â Æ÷ÇÔµÈ ¾ÆÀÌÅÛ» 4µîºÐÇÒ ¼ö ÀÖ´Ù. ÀÖ´Â Áö¡ÀÌ´Ù. 6
  • 7. ®¸ Æ º¼ý» (2) + ÀÏ¹Ý û ¸·Î´Â °ø £À» ±ÕÀÏÇ °Ô ºÐÇÒ + ³ëµå¿¡ ¾ÆÀÌÅÛ » Æ÷ÇÔ½ÃÅ° í ÇÏÀ§ ³ë ÇÑ´Ù. => ºñ±³Àû °øÆòÇÑ °á ú ¡ ³ª¿À¸ç, µå¿¡ ³ÖÁö ¾Ê´ÂÙ. µ¿ÀûÎ °³Ã¼ À§Ä¡ À̵¿ µîÀ¸·Î Æ®¸ÀÇ ¸®ÇÁ¿¡ Áߺ¹µÇ¾î µî·Ï ÇÁö ¾ÊÀ¸³ª, »ó ¸ð¾çÀÌ Àß ±úÁö ¾Ê´ÂÙ. À§¿¡ µî·ÏÉ °æ¿ì ½ÇÁ¦ °áú¿Í »ó°ü¾ø ³ª´©Â ¿µª¡ ¾ÆÀÌÅÛ °ãÄ¡´Â °æ¿ì ÀÌ °Ë»öµÇ±â ¶§¹®¿¡ ¼ö°¡ ¸¹Àé È¿À² ÀÌ ¶³¾îÁú ¼ö ÀÖ´Ù. + °ãÄ¡´Â ¸ðµç ³ëµå¿¡ Æ÷ÇÔ½ÃŲ´Ù. + ´À½¼ÇÑ ³ëµå¸¦ ¸ µç´Ù. Æ®¸ÀÇ ³ëµå ¼ö°¡ ¾à°£ Áõ°¡ÇÒ ¼ö ÀÖ À¸³ª, °Ë»ö¿¡ Å« ¹«¸®´Â ¾ø´Ù. °ãÄ¡´Â °æ¿ì 4 ¿µª Áß ÀÓÇ ÇϳªÀ ¿µª¡ Æ÷ÇÔ½ÃŲ´Ù. ÇϳªÀ ¾ÆÀÌÅÛ(°³Ã¼)ÀÇ ¿©·¯ °³ÀÇ ¸®ÇÁ ¿¡ Æ÷ÇÔµ±â ¶§¹®¿¡ ÇϳªÀ ¾ÆÀÌÅÛ ¸®ÇÁ¿¡ Áߺ¹ µî·ÏÇÁö ¾Ê´ÂÙ ¿©·¯ °³ °Ë»ö µÉ ¼ö ÀÖ¸¹Ç·Î Áߺ¹ °Ë»ö ÇÏÀ§ ³ëµå´Â Æ÷ÇÔÑ ¾ÆÀÌÅÛµé·Î ¹Ù¿î ¿¡ ´ëÇÑ Ã³¸®°¡ ÇÊ¿äÏ´Ù. µå ¿µªÀ» »õ·Î ±¸ÇÑ ÈÄ ÀúåÇÑ´Ù. 7
  • 8. ®¸ Æ º¼ý» (3) CQuadTree:_NODE * CQuadTree : BuildTree(RECT *rectlist, int * itemid x, int if (n = 0) num, const RCT &bound, int l) E v { / null node { node->child[side] = NU;L int * temp = new int [num;] } else int i, n, side; if (l+v1 >= _MXA_DEPTH | n <= _MAITM) X_ E _NODE * node; { / leaf int * leaf = new int n1]; [ + node = new _NODE; or(i=0; i<n; i+) f memset(node, 0, sizeof(_NOD)); E leafi] = temp[i;] [ lea[fi] = -1; node->pivot.x = (bound.let + bound.right) / 2; f node->child[side] = lea;f node->pivot.y = (bound.top + bound.botto) / 2; m node->ask |= 1<side; m } else for(side=0; side4; side+) < { / node { node->child[side] = BuildTree(rectlist, tep, n, localbound, l1); m v+ RECT localound = Diide(ound, node->piot, side); b v b v } } for(i0, n0; i<num; i+) = = delete ][ tep; m if (ContactTest(rectlist[itemidx[i], localbound) = true) return node; tempn+] = itemidxi;] [ [ } 8
  • 9. ®¸ ÆåµõÄ ö»½Å (1) { Ž»ö ¾Ë°í¸®Áò int * leaf = (int) node->child[side], i; * for(i=0; leaf[i] => 0; i+) + ¾Õ¼- ¼Ò°³ÇÑ Å½»ö ¼öµ ÄÚ å¿Í ° ´Ù. { if (m_UpdateCntist[leai] != _UpdateCnt) L f[ m + ÇÏÀ§ ³ëµå°¡ ¹Ù¿îµå ¡ ¼ÓÇÏ´Â Áö °Ë { if (ContactTest(m_RCT, gTestistleaf[i]) = true) E _ L [ »çÇÏ°í, ¼ÓÇÏ´Â °æ¿ì ÇÏÀ§ ³ëµå°¡ ¸®ÇÁ { ÀÎÁö °Ë»çÇؼ- ¸®ÇÁÀÎ °æ¿ì ±×¸® â, ¾Æ FillRect(mDC, &g_Testist[leai,] NU); _H L f[ L m_UpdateCntist[leai] = UpdateCnt; L f[ m_ ´Ï¸é ´Ù½Ã Àç±Íû¸·Î °Ë»öÇÑ´Ù. } } void plorer(const RCT & rect, NODE * node) Ex E _ } { } else for(int side0; side<4; side+) = Explorer(rect, (_NODE*) node-child[side]); > { } if (node->child[side] != NUL) } { } if ((side=0&rect.let=<node-piot.x&rect.top=<node->pivot.y) f > v | } (side=1&rect.right>node->pivot.&rect.top<node->piot.y) | = x = v (side=2&rect.left=<node->pivot.x&rect.botto>m=node->pivot.) y | (side=3&rect.right>node->pivot.&rect.bottom>node-piot.y) = x = > v ){ if (node->ask&(1<side)) m 9
  • 10. ®¸ ÆåµõÄ ö»½Å (2) ÇÏÀ§³ëµå°¡ °Ë»ö ¿µª°ú °ãÄ¡´Â Áö °Ë + ºñÆ® ¸¶½ºÆ® ¦ ÀÌ¿ëÇÑ Á᫐ ¡°ú ¿µ ª »çÇÏ´Â ¹æý °Ë»ç µÎ ¹ø° ¿¬»ê ¹æ½ÄÀ» ºñÆ® ¼ÆÃÀ» ÀÌ + ¼-ºê ¹Ù¿îµå¸¦ ±¸Çؼ- ¿µ ª°ú °Ë»ç ¿ëÇؼ- ¹æ ýÀ¸·Î 󸮰¡ °£´ÜÇØÁø Ù. °Ë»ç ¼Óµ ´Â ´À¸®Áö , ºä ÇÁ·¯½ºÅÒ (¼ÀÇà _OPTIMIZE Àü󸮱â ÀÌ¿ëÇÑ Äøµ½¿¡´Â ÀÌ ¹æý¸ À¯È¿ÇÑ´Ù ºÎÐ ÂüÁ¶) + Á᫐ ¡°ú ¿µ ª°ú °Ë»ç ÀÌ¿ë °¡´ÉÇÑ Æ¯¼º ¾Æ·¡ 0¹ø Æò¸éÀÇ °æ¿ì Á߽ɡ°ú °Ë»ö ÇÀª¿µ let, topη¸À ÜÇ´Æ . f Ù´ÏÇÉ ¡° + ³ëµå°¡ ¿ÏÀüÈ÷ °Ë»ç ¿µ ª¾È ¡ ÀÖ´Ù¸é ÇÏÀ§ ³ëµå´Â ¸ðµÎ ¿µª¾È¡ Æ÷ÇԵȴÙ. + ¸®ÇÁ°¡ °Ë»ç ¿µ ª¾È ¡ ÀÖ´Ù¸é »óÀ§ ¸ðµç ³ëµå´Â ¿µªÀ» Æ÷ÇÔÑ´Ù + ºÐÇÒ Áö ¡ÀÌ ¿µ ª ¾È¿¡ ÀÖ´Ù¸é ¸ðµç Àڽĺ ¿µªÀ» Æ÷ÇÔÑ´Ù. 10
  • 11. ®¸ ÆåµõÄ ÃÇù» »ùÇà ¾îÇø®ÄÉÀ̼ + È-¸é »ó¿¡ ÀÓ Ç Å©±âÀÇ ¸¹Àº ¼öÀÇ °³Ã¼µé ºÐÆ÷µÇ¾î ÀÖ» ¶§ ÀÓÇ ¿µª À Ç ° ³Ã ¼¸ ¦ ¼ ±Å ÃÇ Ò ° æ¿ ì ´ Ü ¸ î ¹ øÀ Ç Å ½» ö À¸·Î ¿µª¡ Æ÷ÇÔµ´Â °³Ã¼¸¦ ¾òÀ» ¼ö ÀÖ´Ù. + ¼±Åà ¿µ ª : º¸¶ó»ö + ¿µ ª ¾È¿¡ ÀÖ´Â ¸®ÇÁ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ : ¹é»ö °³Ã¼, ¹é»ö ¾Æ¿ô¶óÀÎ °³Ã¼ + ÃÖÁ¾ ¼±Åà ¿µ ª¾È ¡ ÀÖ´Â °³Ã¼ : ¹é»ö ttpdigiat.conoerrordonloa h /: b h /m / w d2duadtree.ip / q z 11
  • 12. 2. ¿ÁÆ®¸ (Octree) + X, Y, ZÃàÀÇ 3°¡Áö Ãà ¼º ÐÀ¸·Î °ø £ + °ø£À» 8µîºÐÇϱ⠶§¹®¿¡ Ž»ö º¹Àâ À» ºÐÇÒÑ´Ù. µ ´Â ÈξÀ ÀÛ¾ÆÁø´Ù. ÀÌ»ó û Î °æ¿ì O(log 8N). + ÄõµåÆ®¸ ¿Í °ÅÀÇ ´ëºÎ ÐÀÇ Æ¯¼ºÀÌ µ¿ ÀÏÇ´Ù. + ÄõµåÆ®¸ ¿Í ¸¶Âù°¡Áö·Î ±ÕÀÏÇÑ Å©±â ·Î ³ëµå¸¦ ºÐÇÒ ÇÒ °æ¿ì À¯¿¬ÇÏ°Ô µ¿Àû + QuadTree ¡¿ ÌàÀà ªÏ³Ç ȵ¡°ßà ÂÅüÇ ÀÎ °³Ã¼ °ü¸®µ °¡´ÉÇÏÙ ¶ó°í º¼ ¼ö ÀÖ´Ù. + °ø £Àû ¸·Î °ñ í·ç ºÐÆ÷µÈ ÇüÅÂÀ ¾À ¿¡ ÀûÇÕÏ´Ù. + ¿¹¸¦ µé¾î ¸Þ½ÃÀÇ »ï°¢Çü ´ÜÀ§ Ç Ãæ µ¹ µðÅ×ÀÏ» °¡Áø´Ù¸é ³»ºÎÀû¸·´Â °¢ ÌÀó¶®Æ »ÀéµÞ¾ Octree ηÂÅüÇ í°öÁ¡ ÀÖ¸é È¿À²ûÌ´Ù. 12
  • 13. 3. k-d Tree + ¿ÁÆ®¸ ³ª Äõµå Æ®¸ ÀÇ °æ¿ì ¾ÆÀÌÅÛµé + ¿ÁÆ®¸ ³ª Äõµå Æ®¸ ¿¡ ºñÇØ ¾ÆÀÌÅÛ Ç ÀÌ ÇÑ ¶óÀλ ÀÌ·ç°Å³ª ÇÑ Æò¸é¿¡ À§Ä¡ º ÐÆ ÷¿ ¡ Å « ¿ µÇ â ¾ øÀ Ì ± ÕÇ ü À Ö´ Â Æ ®¸ ®° ¡ ÇÒ °æ¿ì ºñÈ¿À²û¸·Î Æ®¸°¡ ±¸¼ºµÈ´Ù. ±¸¼ºµÈ´Ù. Äõµå Æ®¸ÀÇ °¡Áö 2°³ÀΠä·Î °è¼Ó + ¾ÆÀÌÅÛ ÀÚÁÖ ¿Å°Ü ´Ù Ò °æ¿ì Æ®¸ ±¸¼ºµÈ´Ù°Å³ª, ¿ÁÆ®¸ ¡¼- ¾ÆÀÌÅÛ Ç Y ± ÕÇ üÀ » ± ý ¼ ö À Ö± â ¶§¹®¿¡, µ¿Àû Î °³Ã¼ °ªÀÌ ¸ðµÎ 0À̶ó°Å³ª ÇÏ´Â ½ÄÀ¸·Î. º¸´Ù Á¤ÀûÎ °³Ã¼¿¡ ÀûÇÕÏ´Ù. + k-d ´®¸Æ ÇÀ³°Îµ ¦¸öÁ¡° øÁÌÀ ®¸Æ ÀÇ ÀÏÁ¾¸·Î ³ëµåÀÇ ¾ÆÀÌÅÛ» À̺ÐÇÒ Çϱâ ÁÀº ÃàÀ» ¼±ÅÃÇØ- Æ®¸¦ »ý¼º ÇÑ´Ù. + ³ª´©Â ÃàÀº ÇÑ°¡Áö ¿ä¼Ò (x, y, ÁßÀÇz Çϳª) ¸ À ·Î ºÐÇÒ µÇ±â ¶§¹®¿¡ Ž»ö ¿¬ »êÀÌ Àû°í, °£´ÜÇÏ Ù. 13
  • 14. 4. BSP + ±âº»Àû Î Æ®¸ ÀÇ ¼Ó ºÀ ÀÌ ü Ç Æ®¸ + Æ®¸ ¦ »ý¼ºÇÏ´Â ½Ã°£ÀÌ ¸¹ÀÌ °É¸ ´Ù. µé°ú µ¿ÀÏÇ´Ù. (°¢ ³ëµå¸¦ ±ÕÇü ÀÖ°Ô À̺ÐÇÏ´Â Æò¸éÀ» ±¸ÇÏ â°¡ ½±Áö ¾Ê´Ù.) + k-d Í¿®¸Æ ηöÁ¡°ù¶¸ ÇÀ³°Îµ öÁ¡° ¸¦ °¡Áö´Â ÀÌÁø Æ®¸ÀÇ ÇüŸ¦ °¡Áø´Ù. ÄùÀÌÅ©Ç »ç·Ê + ºÐÇÒ Ï´Â Æò¸éÀº Ãà¿¡ °íÁ¤µÇ¾î ÀÖ´Â + Æú¸®°ïÀ ·Î Æ®¸ ¦ ±¸¼ºÇßÀ ç, ³ëµå °ÍÀÌ ¾Æ´Ï¶ó ÀÓÇ Æò¸éÀÌ µÈ´Ù. (Áï, ¿¡ ÆäÀ̽º ¸®½ºÆ °¡ ÀÖ°í, ¸®ÇÁ´Â °ø £ ¾ÆÀÌÅÛ» ³ª´- ¶§ ÇüÅÂÀ ¿µÇâÀ» ´ú ¹Þ À» ³ªÅ¸½´Ù. °Ô µÇ¸ç, ³ª´©  Æò¸é¿¡ °ãÄ¡´Â °æ¿ì¸¦ + °ãÄ¡´Â Æú¸®°ïÀÌ »ý±æ °æ¿ì ½ÇÁ¦·Î ÁÙÀÏ ¼öµ ÀÖ´Ù.) Æú¸®°ïÀ» ºÐÇÒؼ- Á¤È®ÇÏ°Ô ³ëµå¿¡ ¼Ó + Á¤Àû Î °³Ã¼µé¿¡ ´ëÇؼ- ±ÕÇü ÀâÈù Çϵ· µÇ¾îÀÖ´Ù. Æ®¸¦ ±¸¼ºÇÏ´Â °ÍÀÌ ÀϹÝûÌ¸ç µ¿Àû + ºä ÄøµÀÇ °æ¿ì Ä«¸Þ¶óÀÇ À§Ä¡¿Í ³ë ÀÎ °³Ã¼ °ü¸®¿¡´Â ÀûÇÕÏÁö ¾Ê´Ù. µåÀÇ ºÐÇÒ Æò¸é°úÀÇ À§Ä¡·Î Ž»öÇÑ´Ù. + Ãæµ¹ bspƯ¡À» ÀÌ¿ëÇؼ- ÃÖÀûÇ 14 Ž»öÀÌ °¡´ÉÇÏÙ
  • 15. III. ·»´õ¸µ ÄøµÀ» À§ÇÑ Àå¸é °ü¸® ±â¹ý + ´Ü¼øÈ÷ ¿µ ª °Ë»ç³ª ºä ÄøµÀ» ÀÌ¿ë + ½Ç³» ÁöÇü¿¡´Â Æ÷Å»ÀÌ ÀûÇÕ Ï´Ù. ÇÑ Àå¸é °ü¸® ±â¹ýÀÌ ¾Æ´Ï¶ó ±âÇÏÀûÎ + °Å´ëÇÑ °³Ã¼ ¡ Çʵå»ó¿¡ Á¸ÀçÇÏ´Â ¤¡ Ư¼ºÀ» ÀÌ¿ëÇÏ´Â Àå¸é °ü¸® ±â¹ý. ¿©ì¡´Â ¿ÀÄ÷çÁ¯ ÄøµÀÌ µ¿òÀÌ µÈ´Ù. + ±âÇÏÀû Î ¿¬»êÀÌ µé¾î°¡±â ¶§¹®¿¡ Ž + ´ÝÈù ÁöÇüÀ̰ųª, ¾ð´ö, ¼º ®µîÀÇ Æ¯ »öÀÌ ÀϹÝûΠŽ»öº¸´Ù ºÎ´ã½·¯¿ï ¡ ÀÖ´Â ÁöÇü¿¡¼-´Â PVS°¡ µ¿òÀÌ µÈ ¼ ö À Ö± â ¶ §¹ ®¿ ¡ · »´ õ¸ µ Ç Ò ¶ § Á Ö· Î » ç¿ ë ´Ù. µÈ´Ù. + Æ÷Å»Àº Ưº°ÇÑ ÇüÅÂÀ Àå¸é °ü¸® ±â ¹ýÀÌ´Ù. + ¿ÀÄ÷çÁ¯ Äøµ, PVS´Â µ¶¸³È Àå¸é °ü¸® ±â¹ýÀº ¾Æ´ÏÁö¸ Àå¸é °ü¸® ±â¹ý ¿¡ ºÙ¾î¼- °ÀÌ »ç¿ëµÇ´Â ±â¼úÀÌ´Ù. 15
  • 16. 1. Æ÷Å» (portal) Ư¡ + Æ÷Å»À ÅëÇؼ- º¸ÀÎ ³ëµå¿¡¼- ´ÙÀ½ ³ëµå·Î ¿¬°á °Ë»çÇÒ ¶§´Â »óÀ§ Æ÷Å»À + ³ëµå´Â Æ®¸ ±¸¼ºÀÌ ¾Æ´Ñ ¿¬°áÀÌ ÀÚ ÅëÇؼ- º¸ÀÌ´Â Áö °Ë»çÇÑ´Ù. À¯·Î¿î ±×·¡ÇÁÎ ±¸¼ºµÈ´Ù. ·»´õ¸µ ¼öµ ÄÚµå + ±âº»Àû ¸·Î ³ëµå´Â ±âÇÏÀû ¸·Î ±¸¼º µÇ¾î Àֱ⠶§¹®¿¡ °³Ã¼ ¼öÀÇ ¿µÇâÀ» ¹Þ () { ö»½Å åµë³ Áö ¾ÊÀ¸ ç, °³Ã¼ÀÇ À̵¿ ¡ µû¶ó ³ëµå°¡ (å) Ù´°¸×± µ ë³ or(i=0; i<;ö¼Ä½ÚÀ f i+) { + ¹Ù²îÁö ¾ÊÀ¸¹Ç·Î µ¿Àû¸·Î ó¸® °¡´ÉÇÏ if (.i.ª³ûÇÝ´ = alse) { åµë³ [ĽÚÀ ] f ´Ù. if (È(.i.)) { ª³ÌÀ¸º¡¿é - åµë³ [ĽÚÀ ] »Å÷Æ (.i) ö»½Å åµë³ [ ĽÚÀ ] ±âº» ¿øÄ¢ } } + °¢ ³ëµå´Â ƯÁ¤ ¿µ ªÀ¸·Î ±¸¼ºµÇ ç } ³ëµåÀÇ ¿¬°áºÎ´Â Æ÷Å»ÀÌ Á¸ÀçÇÑ´Ù. } + ÀÓ Ç ³ëµå¿¡¼- Æ÷Å»ÀÌ º¸ÀÌÁö ¾ÊÀ» °æ¿ì ¿¬°áµÈ ³ëµå´Â ¾È º¸ÀδÙ. 16
  • 17. Æ÷Å» (2) ±âŸ + ¿¬°áµÈ ³ëµå°¡ ÀÛ º Æ÷Å»À ÅëÇØ º¸ ÀÏ °æ¿ì ¹Ì¸® ·»´õ¸µÈ À̹Áö·Î ó¸® ·Î ó¸® °¡´ÉÇÏÙ. + °ÔÀÓ ³»¿¡¼- ¹®À̳ª µ ±¸·Î Æ÷Å»À °¡¸± °æ¿ì Æ÷Å» ±¸Á¶¿Í ¿¬µÇؼ- ¿¬°á µÈ ³ëµå¸¦ ·»´õ¸µÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù + Ưº°ÇÑ ÇüÅ·ΠÁöÇüÀÌ ±¸¼ºµÇ¾î ß ÇÏ ¸ç, Æ÷Å»ÀÇ ¼³Á¤, ³ëµå °áÁ¤ µîÀÇ µ¥ÀÌ ÅÍ ¼öÁý ¾î·Á¿òÀ¸Î ½±°Ô Àû¿ëÇϱâ Èû µé´Ù. + ½Ç³» ÁöÇü¿¡ ÀûÇÕ Ï´Ù. ttp.cs.irginia.edulue h w /: v ~/ kepulicationsportals.tl b / b / hm 17
  • 18. 2. ¿ÀÄ÷çÁ¯¸µ (occlusion culling) + ¾ÕÀÇ °³Ã¼¿¡ ÀÇ Ø µÚÀÇ ¿ÀºêÁ§Æ®°¡ + Çϵå¿þ¾îÀû Î ¹æ ý : ½ÇÁ¦·Î ÀÛ º(!) ¿ÏÀüÈ÷ °¡·Á ö´Â Áö °Ë»çÇÏ´Â ¹æ½Ä => ºä¿¡ °¡¸®´Â ¿ÀºêÁ§Æ®¸¦ ·»´õ¸µÇÑ ÈÄ “°¡Àå ºü¸¥ °ÍÀº ±×¸®Áö ¾Ê´Â °Í ” ·»´õ¸µÇÒ °èü¸¦ ±× ºä¿¡ ½ÇÁ¦·Î ·£´õ ¸µÇؼ- È-¸é¿¡ ÂïÈù Çȼ¿ ¼ö¸¦ ¼¾î- ±¸Çö¹æý 0ÀÎ °æ¿ì ¿ÏÀüÈ÷ °¡·È´Ùí ÆÇ´ÜÑÙ. + ±âÇÏÀû Î ¹æ ý : ±âÇÏÀû Î ¿¬»êÀ¸·Î ±âŸ °¡¸®´Â ¿ÀºêÁ§Æ®¡ ÀÇØ ·»´õ¸µÇÒ °³Ã¼ ÀÇ ¹Ù¿îµå°¡ ¿ÏÀüÈ÷ °¡·Áö´Â Áö °Ë»ç + ¿¬»ê·®ÀÌ Àû º ÆíÀº ¾Æ´Ï¹Ç·Î, Àû ý ÇÑ´Ù. ÇÑ ¼³Á¤ÀÌ ÇÊ¿ä ϸç, ½ÇÁ¦·Î ÁöÇü»ó ¸¹ Àº °É °¡·ÁÖ´Â °Å´ëÇÑ °³Ã¼¡ Á¸ÀçÇØ ¾ß È¿°ú¡ ÀÖ´Ù. 18
  • 19. 3. PVS PVS(Potentially Visible Set) + ¹Ì¸® °è»êÇÏ´Â °ªÀ̱⠶§¹®¿¡ ºôµå ŸÀÓÇ ¿µÇâÀ» °ÅÀÇ ¾È ¹ÞÀ¸Ç·Î ºÎ¸£ + º¸ÀÏ °¡´É¼ºÀÌ ÀÖ´Â ÁýÇÕÀ̶õ ÀǹÌ. »Å º÷½Æ (Brutal orce òÁ®¸í°Ë¾ F + ÄõµåÆ®¸, ¿ÁÆ®¸, BSP¿¡ »ó°ü¾øÀÌ lgorithmA – °¡´ÉÇÑ ¸¹Àº °æ¿ì¸¦ Á÷¢ ÀÓÇ ¸®ÇÁ¿¡¼- º¸ÀÏ °¡´É¼ºÀÌ ÀÖ´Â ´ëÀÔÇÏ¿© È®·üÀû ¸ Î ÇØ°á)À» È°¿ëÇÒ ¸®ÇÁÀ ¸®½ºÆ¦ ¾Ë ¼ö ÀÖ´Ù. ¼ö ÀÖ´Ù. + º¸ÀÏ °¡´É¼ºÀÌ ÀÖ´Â ¸®ÇÁÀ ¸®½ºÆ ´Â + Á¤Àû Î µ¥ÀÌÅÍ´Ù. ½Çð£À¸·Î °è»êÇÑ µ¥ÀÌÅÍ°¡ ¾Æ´Ñ ¹Ì¸® ÄùÀÌÅ© »ç·Ê °è»êµÈ °ªÀ» »ç¿ëÇÑ´Ù. + ÀÓÇ ¸®ÇÁ¿¡ ÀÖ» ¶§ º¸ÀÏ °¡´É¼º + ±¸¼º»ó ÀÏ°ý û Î ±âÇÏÀû Ư¼ºÀÌ ¾øÁö ÀÖ´Â ¸ðµç ¸®ÇÁÀ Á¤º¸¦ RLE + ºñÆ®µ¥ ,¸ ,¾Å ÇÀîµê» ¦¸ß¾Ã½ ¦¸öÁ¡° ÌÀéµÍ° ÀÌŸ·Î °¡Áöí ÀÖ´Ù. ÀÖ» ¶§ ±×· °Íµé¿¡ ÀÇØ Àý´ë·Î º¼ ¼ö ¾ø´Â ¸®ÇÁ¦ ã´Â °Í 19