cglandlogo First Page
°í°´¼¾ÅÍ   
gallery media job community contentsmall  
  dbrush Blizzardfest 2014
 
[Æ©Å丮¾ó]RenderManÀ» ÀÌ¿ëÇÑ ¹ÝÅõ¸í ÀÌÆåÆ® Æ©Å丮¾ó - Part I   2003-05-08
RenderManÀ» ÀÌ¿ëÇÏ¿© ¹ÝÅõ¸í ¹°Ã¼¿¡ ÀÌÆåÆ®¸¦ Á¦ÀÛÇÏ´Â Æ©Å丮¾ó ù ¹ø° ±â»çÀÌ´Ù.
¾¾Áö·£µå±âÀÚ cgland@cgland.com
¨Ï µðÁöÅк귯½Ã & cgland.com, ¹«´Ü ÀüÀç ¹× Àç¹èÆ÷ ±ÝÁö
°Ô½Ã±ÛÀ» twitter·Î º¸³»±â °Ô½Ã±ÛÀ» facebookÀ¸·Î º¸³»±â °Ô½Ã±ÛÀ» Me2Day·Î º¸³»±â

ºûÀº ¹ÝÅõ¸í ¹°Ã¼¸¦ Åë°úÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ¹ÝÅõ¸í ¹°Ã¼¸¦ Åë°úÇÏ°í ³­ °á°ú À̹ÌÁö´Â ¾à°£ È帴ÇÏ°Ô ºñÃçÁö¸é¼­ Åõ¸íÇÑ ±×¸²ÀÚµéÀÌ ±× ¹°Ã¼¸¦ ÅëÇÏ¿© º¸¿©Áö°Ô µÈ´Ù. ÀÌ ÀÌÆåÆ®´Â ¾Ö´Ï¸ÞÀÌ¼Ç ¿µÈ­ '¹÷½º ¶óÀÌÇÁ(A Bug's Life)' Áß ÇÑ Àå¸éÀ» ÅëÇؼ­ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¿µÈ­¿¡¼­ ÇÑ ±×·ìÀÇ °³¹ÌµéÀÌ ³ª¹µÀÙÀ§¸¦ °É¾î°¡´Â Àå¸éÀÌ Àִµ¥ ÀÌ Àå¸é¿¡¼­ ¸î¸î °³¹Ì¸öÀÇ ¹ÝÀÌ ³ª¹µÀÙ¿¡ °¡·ÁÁ® º¸ÀÌÁö ¾Ê°í ÀÖ´Ù. ±×·¯³ª ½Ç·ç¿§Àº ³ª¹µÀÙÀ» ÅëÇØ ¸Å¿ì ¼±¸íÇÏ°Ô º¸¿©Áö°í ÀÖ´Ù. ÀÌ ¿µÈ­ Àü±îÁö ´Ù¼öÀÇ CG ÇÁ·Î±×·¥µéÀº ÀÌ ÀÌÆåÆ® ÀÛ¾÷À» ¾î¶»°Ô ÇØ¾ß ÇÏ´ÂÁö ¾ËÁö ¸øÇß¾ú´Ù. ´ÜÁö ÀÌ ÀÌÆåÆ® ÀÛ¾÷À» À§Çؼ­ ÇÁ·Î±×·¥ Çϱâ À§ÇØ Ç÷¯±× ÀÎÀ» ÇÑ´Ù´ø°¡ ÇÑ°¡Áö ÀÛ¾÷À» °áÁ¤Çϱâ À§Çؼ­´Â ÇÁ·Î±×·¡¸ÓµéÀ» ±â´Ù·Á¾ß¸¸ Çß¾ú´Ù. ÇÏÁö¸¸ Áö±ÝºÎÅÍ ÀÌ ÀÌÆåÆ®¸¦ ½±°Ô ÀÛ¾÷ ÇÒ ¼ö ÀÖ´Â RenderMan ÇÁ·Î±×·¥ÀÇ ¶Ù¾î³­ ±â´É¿¡ ´ëÇØ ¼Ò°³ ÇÏ°íÀÚ ÇÑ´Ù.

1998³â Pixar°¡ ÀúÀÛÇÑ ¿µÈ­ '¹÷½º ¶óÀÌÇÁ' Áß ÇÑ Àå¸é

 

¡ß ¹ÝÅõ¸í ¹°Ã¼¿¡ ±×¸²ÀÚ Ç¥ÇöÇϱâ

°¡Àå °£´ÜÇÑ ¹ÝÅõ¸í ¸ðµ¨·Î ³ª¹µÀÙÀ̳ª Á¾ÀÌ Ã³·³ ¾ãÀº º®À» ¿¹·Î µé±â·Î ÇÏ°Ú´Ù. º¸Åë ±×´ÃÀÌ Á® º¸ÀÌ´Â ¸ðµ¨µéÀº ¹°Ã¼ Ç¥¸éÀÇ ¾ÕºÎºÐ¿¡¼­ ºñÃçÁÖ´Â ºû¸¸À» °í·ÁÇÑ´Ù. ÇÏÁö¸¸ ¹ÝÅõ¸í ¹°Ã¼´Â Àڽŵµ ¾î¶² ½Ç·ç¿§À» Åë°úÇÏ´Â ¸ð½ÀÀ» º¸¿© Áà¾ß ÇϹǷΠÇϳªÀÇ ºû¸¸À» »ý°¢Çؼ­´Â ¾ÈµÈ´Ù.

±×·¡¼­ ¿©±â¿¡¼­´Â L1°ú L2 µÎ °÷¿¡¼­ ºûÀÌ ¿Â´Ù°í °¡Á¤Çϵµ·Ï ÇÏ°Ú´Ù. L1Àº ¹°Ã¼¿Í ¸¶ÁÖº¸°í ÀÖ´Â ÂÊ¿¡¼­ ±×¸®°í L2´Â ¹°Ã¼ÀÇ µÚ¿¡¼­ ¹°Ã¼¿¡ ºûÀ» ºñÃçÁÖ°í ÀÖ´Ù. ¿ì¸®´Â ¿©±â¿¡¼­ ºûÀÇ ±¤¼±ÀÎ vetor L°ú Á¡ P¿¡¼­ÀÇ ¼öÁ÷¼± vector NÀÇ °¢µµ¸¦ °è»êÇؼ­ ºûÀÇ À§Ä¡¸¦ ¿¹ÃøÇÒ ¼ö ÀÖ´Ù. ´Ü, À̶§ °¢µµ°¡ 90µµ º¸´Ù Å©¸é ºûÀº ¹°Ã¼ÀÇ µÚ¿¡ ÀÖ´Â °ÍÀÌ°í ÀÌ°ÍÀº ¾Æ¹«·± ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù.

±×¸² 1. ±×¸²ÀÚ¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â µÚÂÊÀÇ ºû

ÀÏ´Ü ¾ãÀº º®¿¡ ¹°Ã¼ÀÇ ½Ç·ç¿§ÀÌ º¸¿©ÁöÁö ¾Ê°í º®ÀÌ ¹°Ã¼¿¡ ±×¸²ÀÚ¸¦ ¸¸µå´Â °ÍºÎÅÍ »ý°¢À» ÇØ º¸ÀÚ.

±×·¡¼­ ´ÙÀ½ÀÇ ±×¸²ÀÚ´Â L1¸¸À» °í·ÁÇؼ­ °è»êÇÑ °ÍÀÌ´Ù.

surface

singleSide(float Ka = 1;

                float Kd = 1;)

{

   normal Nf = faceforward(normalize(N), I);

 

   Oi = Os;

   Ci = Os * Cs * (Ka * ambient() + Kd * diffuse(Nf));

}

RenderMan¿¡¼­ »ç¿ëÇÏ´Â ÇÔ¼ö diffuse()´Â Pixar¿¡¼­ Á¤ÀÇÇÑ ÇÔ¼ö·Î ´ÙÀ½°ú °°ÀÌ »ç¿ëµÈ´Ù.

color

diffuse(normal N)

{

 color C=0;

 illuminance(P,N, PI/2)

   C += Cl * normalize(L).N;

   return C;

}

À§¿¡¼­ ¼Ò°³µÈ illuminance ·çÇÁ´Â Ç¥¸é Á¡ P¿¡ ¼öÁ÷ÀÎ ¼± N°ú PI/2 ·¹µð¾È(= 90°) °ªÀ» °¡Áø vector¿¡ ÀÇÇØ ¸¸µé¾îÁø »ï°¢»Ô ³»ºÎ¿¡ ºñÃçÁö´Â ¸ðµç ºûÀÇ ¾çÀ» °è»êÇÑ´Ù. ¸¸¾à¿¡ PI/2 ·¹µð¾È °¢µµ°¡ PI ·¹µð¾È(= 180°)¿¡ °¡±î¿öÁú¼ö·Ï È­¸é»óÀÇ °¡´ÉÇÑ ºûµéÀ» ¸ðµÎ Æ÷ÇÔ ½ÃÄÑ¾ß ÇÑ´Ù.

±×¸² 2. illuminanceÇÔ¼öÀÇ ºÎÇÇ¿¡ ¿µÇâÀ» ¹Þ´Â diffuse ÇÔ¼ö

diffuse() ÇÔ¼ö´Â ´ÜÁö Ç¥¸éÀÇ ¼öÁ÷¼± N¸¸À» ÇÊ¿ä·Î ÇÑ´Ù. ±×·¡¼­ ÀÌ ºÎºÐ¿¡¼­´Â Ç¥¸éÀÇ ¹æÀ§°¡ Áß¿äÇÑ »çÇ×ÀÌ µÇ´Â °ÍÀÌ´Ù. ¾ãÀº º®ÀÇ °æ¿ì ¹°Ã¼ÀÇ ½Ç·ç¿§±îÁöµµ º®¿¡ ºñÃçÁö±â ¶§¹®¿¡ L2 ¹æÇâÀÇ ºû±îÁöµµ °í·Á Çؾ߸¸ ÇÑ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î L1¸¸ °í·ÁÇßÀ» ¶§ ¿Í´Â ´Þ¸® L2±îÁöµµ °í·ÁÇßÀ» °æ¿ì diffuse(-Nf) * Kd2ÀÇ °ªÀÌ Ã·°¡ µÇ´Â °ÍÀÌ´Ù. L2´Â L1ÀÇ ¹Ý´ë ¹æÇâ¿¡ ÀÖ´Â ºûÀ̹ǷΠdiffuse(-Nf)À¸·Î Ç¥ÇöµÈ °ÍÀÌ´Ù.

surface

doubleSide(float Ka = 1;

                 float Kd = 1;

                 float Kd2 = 1)

{

   normal Nf = faceforward(normalize(N), I);

 

   Oi = Os;

   Ci = Os * Cs * (Ka * ambient() + Kd * diffuse(Nf) + diffuse(-Nf) * Kd2);

}

±×¸² 3. ¹ÝÅõ¸í ÀÌÆåÆ® ¿Ï¼º Ãʱâ ÀÛ¾÷

 

¸¸¾à Kd2¸¦ º¯°æÇÑ´Ù¸é ¿öÅ͸¶Å© ÀÌÆåÆ®³ª ³ª¹µÀÙÀÇ Áٱ⵵ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

±×¸² 4. ÃÖ°íÀÇ °á°ú¹°À» ¾ò±â À§ÇÑ ÀÌÆåÆ® Á¶Á¤ ÀÛ¾÷

surface

doubleSide(float Ka = 0;

                   float Kd = 1;

                   float Kd2 = 1;

                   string texturename = "cater.tif";)

{

 normal Nf = faceforward (normalize(N), I);

 float Ct = comp(color texture(texturename), 1);

 Kd2 *= Ct;

 

 Oi = Os;

 Ci = Os * Cs * (ambient() * Ka + diffuse(Nf) * Kd + diffuse(-Nf) * Kd2);

}

 

¸¶Áö¸· ±×¸²Àº »çÁøÀ» ÅëÇÏ¿© ±×¸²ÀÚ Å×½ºÆ®ÀÇ ¸ðµç °ÍÀ» º¸¿© ÁÖ°í ÀÖ´Ù.

»çÁøÀ» ÅëÇØ º» ±×¸²ÀÚµé

 

ÀÌ Æ©Å丮¾óÀÇ ´ÙÀ½ PartµéÀ» ³õÄ¡Áö ¸¶½Ã±â ¹Ù¶ø´Ï´Ù. ´ÙÀ½ ºÎºÐµéÀº ´õ À¯ÀÍÇÑ Á¤º¸µé·Î °¡µæÇÒ °ÍÀÔ´Ï´Ù.

Part 2 : ºÎÇǸ¦ °¡Áö°í ÀÖ´Â ¹ÝÅõ¸í ¹°Ã¼µé

Part 3 : ¹°Ã¼ Ç¥¸é ³»ºÎÀÇ ½ºÄÉÅ͸µ

À¯¿ëÇÑ Ã¥µé

Ã¥ Á¦¸ñ

ÀúÀÚ

ÃâÆÇ»ç

Advanced RenderMan

Apodaca, Anthony A. & Gritz, Larry. (1999)

Morgan Kaufmann

The RenderMan Companion

Upstill, Steve

Addison Wesley

¸¸¾à ¼³¸íÀ̳ª ÀÛ¾÷¿¡ °üÇÑ Áú¹®ÀÌ ÀÖÀ¸¸é Àú¿¡°Ô ¿¬¶ôÇØ Áֽñ⠹ٶø´Ï´Ù. ¿©·¯ºÐÀÌ ¾Æ½Ã´Â °Íó·³ ÀúÀÇ ¸ð±¹¾î´Â ¿µ¾î°¡ ¾Æ´Õ´Ï´Ù. ¸¸¾à ÀÌ Æ©Å丮¾ó¿¡¼­ Ʋ¸° °ÍÀÌ ÀÖÀ¸¸é Àú¿¡°Ô ¾Ë·Á Áֽñ⠹ٶø´Ï´Ù.

 

 
½ºÆ©µð¿À ¿¬°á²÷±â