Your SlideShare is downloading. ×
  • Like
04_3danalyze를 이용한 렌더링 최적화
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

04_3danalyze를 이용한 렌더링 최적화

  • 180 views
Published

 

Published in Technology , Art & Photos
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
180
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 3d analyze¸¦ ÀÌ¿ëÇÑ ·»´õ¸µ ÆÛ÷¸Õ½º ¿ÉƼ¸¶ÀÌ¡ ±è¼ºÀÍ(noerror@hitel.net) 2004.12.051
  • 2. ÃÖÀûÈ- • °ÔÀÓ¿¡¼-Ç ÇÁ·¹ÀÓ Çâ»óÀ Á߿伺 • º´¸ñÁö¡ (bottleneck) ? - ÎÀû ² ¿È -ÈûÀÖà «· üÀ - ¡Áö ñ¸´º ûÀßÁý - ÓÀÔ° ÷Áη , É´öÁø°ÎÀ / ¹°¸®Ã³ - µ¸õ´»· • ÇÁ·ÎÆÄÀϸµ µ±¸ - Numega - TrueTime - Intel - Vtune - Nvidia - NVPerfHUD - Microsoft - Pix2
  • 3. ·»´õ¸µ º´¸ñ ¿ä¼Ò • ·»´õ¸µ¿¡ ¿µÇâÀ» ÁÖ´Â ¿ä¼Ò - Ó¼¡° ÇÀÍ¿î¾þ åµÏ º¼Ä·´ - Çϵå¿þ¾îÀ ¿ªÆø´ë ÇÑ°è • ·»´õ¸µ º´¸ñ ¿ä¼Ò - Ç ·Á ¹À Ó ¹ öÆ Û ´ ë¿ ªÆ ø - ³Ãº½ØÅ øƪ¿ë´ - õ´ÌÀμ - º½ØÅö¹ , Æú¸®°ïÀÇ ¼ö - Ûź½Ã ®¸ð Þ Û¼üÀ øƪ¿ë´3
  • 4. 3d Analyze • 3D Analyze - Çϵå¿þ¾îÀ ´ÉÀ» ¼º ÃøÁ¤Çϱâ ÇÑ À§ ±¸ µ (cf. NVperfHUD - î¾þ¿®ÆÁÇÒ¼ »À¡Áöñ¸´º ´£Ã ¸±µ ) - ÏÀ¶µ ç»ß¹³° Tommti Systems (http://www.tommti-systems.com) - ¾Á¢° µ¸õ´»· »ÀǼɿ -¼¡¿ÎºÜ ÒǤÁ³¼ ö¼ ç¸ À Ö ®ÆÌÀ¹·Ó ÁÇ , ï°®¸úÆ ÇÀîµö¼ 鵸º¤Á ÍÅÏ´ ð¸ É´¡° • ÀåÁ¡ / ´ÜÁ¡ - Direct3D, OpenGL Áö¿øÇϸç , î¾þ¿åµÏÇ ü°«¹ - ÑÇ°º¯Æ ûÀ¥·×±Î ÁÇ ÌÀÃƼ ½Àø¾ä¿ÊÇ - ¼ Á³ ¤À » ½ Ç à Á ß¿ ¡ ¹ Ù² Ü ¼ ö ¾ Àø ½ - ¼ÒÇÁÆ®¿þ¾î ÀûÈ-¸¦ ÃÖ À§ÇØ µðÀÚ Î È Çø®ÄÉÀ̼¾î ¾Æ´Ô4
  • 5. ½Çà ¼ø- 1. ¾îÇ÷¹À̼ Åü± 2. Ǽɿ Ãű¼ 3. àǽ5
  • 6. ¿É¼Ç (1) • disable texture - ÇÀ³Ãº½ØÅ øƪ¿ë´ ÇÀÑ ¦Á âÇ µ¿ ©Å ¼Ã - ÇÀ³Ãº½ØŠⱩŠ, ¾ÐÃà , ¼ÒÆà ¿ä¼Ò ÀÇ½É (?) • disable rendering - µ¸õ´»· ÇÀÜ¿ Ì ¡°Ò¼ä¿ »Àâǵ¿ í° ÖÁ î±Ï´À½ Ö ? - ®¸ð Þ Lock/Unlock, ÓÀÔ° ÇÀîµ÷Áη Ò¼ä¿ É½ÇÀ • disable state switches - ®ÆÌÀן½ -ÈûÀÖà ÌÀº¼ä¿ÊÇ î±Ï´À½Ö ?6
  • 7. ¿É¼Ç (2) • counters - ¡¿é¸-È £°Ã½ Ç ¸º¤Á ·âà - ÇÁ·¹ÀÓÌÆ® ÇÁ·¹ÀÓ ´ç Æú¸®°ï ¼ö Ã Ê ´ ç Æ ¸ú ®° ï ¼ ö À¿ðµñº ®¸ð Þ ®·ë¿ç» over draw after z-test draw pixels per frame after z-test • force small texture - ÅؽºÃ³ÀÇ ´ë¿ªÆø ¡ ÇâÀ» ¿µ ¹Þ½À´Ï±î ?7
  • 8. ¿É¼Ç (3) • disable lighting - ÇÀÃÆÌ ó¶ »Àâǵ¿ î±Ï´À½Þ¹ ? • force windowes mode • force wireframe mode - ¡¿é¸-È ÑÇä¿Ê Òº ÌÀï°®¸úÆ Â´ÖÀ öÁ η¸À «´ ÎÀ®È • force 16 bite zbuffer - z¹ÛÆö ÇÀøƪ¿ë´ »Àâǵ¿ î±Ï´À½Þ¹ ? • save shaders to file8
  • 9. ·Î±× Á¤º¸ (1) • perfomance logging - csv ηÂÅüÇ ×±Î· ÌÀÏÄÆ ÊµåÀú used vram »ç¿ëÁßÀÎ ¸ð ® Þ (®¸ðÞ øƪ¿ë´ ) fps ÓÀ¹·ÁÇ ®ÆÌÀ¹· (¸¸Á·ÇϽʴ±î ?) pps Æú¸®°ï ¼ö /ÃÊ (Çϵå¿þ¾î ÇÑ°è¿¡ µ´ÞÇß½Àϱî ?)9
  • 10. ·Î±× Á¤º¸ (2) ppf Æú¸®°ï ¼ö /ÇÓÀ¹·Á ( ÇÑ ÇÁ·¹ÀÓ Æú¸®°ï ¼ö°¡ Àû´çÇÕ Ï±î ?) strst SetRenderStateÈ£Ãâ ¼ö / ÓÀ¹·ÁÇ sttxstgst SetTextureStageState È£Ãâ ¼ö /ÇÁ·¹ÀÓ ppc DrawPrimitive ´ç Æò±ÕÀû¸·Î Ãâ·ÂµÇ´ ¸®°ïÆú ¼ö (¹èÄ¡° Àû´çÇÕϱî ?) sttx SetTexture È£Ãâ ¼ö /ÇÓÀ¹·Á stvp SetViewport È£Ãâ ¼ö /ÇÓÀ¹·Á svs SetVertexShader È£Ãâ ¼ö / ÓÀ¹·ÁÇ sss SetStreamSource È£Ãâ ¼ö / ÓÀ¹·ÁÇ10
  • 11. Àü·« (1) • ÅؽºÃ³ »ç¿ë Àü·« * disable texture Ǽɿ , force small texture · Î ´ ë¿ ªÆ øÀ Ç ¿ ǵ â È À® Î - àÃо ³Ãº½ØÅ (DDS) ë¿ç» - ¹Ó¸Ê (Mipmap) ë¿ç» - ºÀÛ ÇÀⱩŠ³Ãº½ ØÅ ë¿ç» - µ¸õ´»· ý ³Ãº½ØŠη°º ÃÆÒ¼ (ÅؽºÃ³ ij½Ì °üÁ¡ ) • ºñµð¿À ¸Þð® Á¢±Ù * disable rendering À¸·Î ½±°Ô È®ÀÎ °¡´É - lock/unlockÀ» ¼Ò·ÎÃÖ ÁÙÀ̸ç , ¾Æ¿¹ ¾È ´ÙÇÑ - lock À» ÇÒ ¶§¿¡µ read´ Â Ç ÁÏ ö ¾ ´Ê ´ Ù - lock À » Ç Ò ° æ¿ ì D3DLOCK_NOOVERWRITE ÇÀîµ Î·¸ÀǼɿ ÑÇë´Öà º´·Ä¼ À» ¸°´Ù»ì - ¼ÎÀÌ´õ¸¦ È°¿ëÇÑ´Ù11
  • 12. Àü·« (2) • ÇÁ·¹ÀÓ ¹öÆÛ »ç¿ë Àü·« * µ ó»ØÇ ¡¿æ° ¯º ¥¸ûµ FPSº¯È- Àº²ñ , 16ºñÆ® z¹öÆÛ »ç¿ë ÈÄ ·¹ÀÓÇÁ º¯È- - î¿ ±¡° ÍÅκ ° µ¸õ´»· - z write°¡ ÇÊ¿ä ¾ø´Ù¸é z write disable - ÄÆ˾ ùµ£·íº »Àë¿ ç Ù´ÎÀ Á - ÇÀó¾ÖÁñº ¡°ÌÀ÷ é¸Ù´ø¾ 16ºñÆ® z ¦¸ÛÆö¹ Ù´ÑÇë¿ç» - clear° ¡ Ç ¿Ê ä ¾ ´ø Ù¸ é clear öÁÏÇ Ù´Âʾ • Æú¸®°ï ¼ö / ÇÁ·¹ÀÓ * log »ÀÏÄÆ ©¿ÏÇ®¼Ðº ¢° ÇÀæ°¯È ÑÇýÀû ÇÀö¼ ï°®¸úÆ ö¼ ¤Áá° * wireframe ·»´õ¸µÀÎ È¿°úÀûÎ culling ¹æýÀÌ ¾ø´ÂÁö È®ÀÎ12
  • 13. Àü·« (3) • ¹èÄ¡ÃÖÀûÈ- - ÑÇÉ´¡° DrawPrimitive âÃ£È ¦¸ö¼½È -ÈÒ¼Öà ÑÇÏÀ¿µ é¸ó¶ÂÅüÇ ºÀû ³Ãº½ØÅ ö¼åÀ , Àû º ¿ÀºêÁ§Æ® ¼ö - ̽Ïź ÎÀ - ºÀû ÇÀö¼ ï°®¸úÆ ºÀ¨µð¸ ®¸ð Þ lock À» ÀÌ¿ëÇؼ-¶óµ DrawPrimitive âÃ£È ¦¸ö¼½È -ÈÒ¼Öà • ÃÖÀûÈ-¿¡ ÇÑ°è¡ ÀÖ´Â °æ¿ì - ÃÖÀûÈ-°¡ ºÒ°¡´ÉÇÑ ºÐÀ̶ó¸é Î À¯ ¿© ´Â ÀÖ ¿øÀ» Ú ´õ ¿ëÇؼ- È° Ç°ÁúÀ» Çâ»ó ³Ãº½ØÅ ¡¿øƪ ë´ ¡°-ÈûÀÖà ɴ¡°Òº ÒÇ ì¿ æ° ¦¸º½ØÅ ö¹ õ´ ë¿ ç» ÅؽºÃ³ÀÇ ´ë¿ªÆøÀÇ °è ¡ ÇÑ ¾Æ´Ï¶ó¸é ½ºÃ³¸¦ ÅØ ´õ ³ËÇÏ°Ô »ç¿ë13
  • 14. È°¿ë • º¥Ä¡ ¸¶Å·À» ÅëÇؼ- Ÿ ¾îÇø®ÄÉÀ̼ ¼Óº ºÐ¼® - ÎÀû ó»Ì ÇÀØÁö¼ ï°®¸úÆ Â´ ö¼ ? - Àû ýÇÑ ¾À ¸Å´Ï¡ÀÇ ¹ýÀº æ ¹«¾ùÀΰ¡ ? • ÃÖÀûÈ-Ç °´üÀûÎ ÀÚ·á - ױη »ÀÏ ÄÆ -¼ØÇë¿ ÌÀ ¡¿ç¾ » µû¸¥ , ±â´É¿¡ ¸¥µû Æ÷¸Õ½ºÀÇÛ º¯È-¸¦ DB· Î ° ¸ü ® Æ °ò ¡ - º½Ò¼®¸ ÇÀÛ ¦Á ØÁâ± (Æú¸®°ï ¼ö , ÅؽºÃ³ÀÇ ±âÅ© , ö¼åÀ îµ ) • NVPerfHUD14