Successfully reported this slideshow.
Your SlideShare is downloading. ×

유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.

  1. 1. 그래픽 최적화 어디까지 해봤니 - Unity Field Engineer 오지현
  2. 2. Image : 무사, Implosion, Z-rush, 히어로즈 아레나
  3. 3. Bottleneck Draw Call Batching (Pros, Cons) Profiling Profiling Sample Level Of Detail Lighting (Image Based Lighting) Physically Based Rendering
  4. 4. Image : volvo
  5. 5. Bottleneck Draw Call Batching (Pros, Cons) Profiling Profiling Sample Level Of Detail Lighting (Image Based Lighting) Physically Based Rendering
  6. 6. Optimization = Removing Bottleneck
  7. 7. CPU GPU Frame End Frame start Bottleneck?
  8. 8. CPU GPU Frame End Frame start
  9. 9. CPU boundary VS GPU boundary CPU GPU Frame End Frame start
  10. 10. Logic AI Physics Loading GC ... CPU boundary
  11. 11. GPU boundary Polygon Texture Filtering Lighting Framebuffer Shader Overdraw ...
  12. 12. Bottleneck Draw Call Batching (Pros, Cons) Profiling Profiling Sample Level Of Detail Lighting (Image Based Lighting) Physically Based Rendering
  13. 13. CPU DRAW! Draw Call in a narrow sense GPU OK
  14. 14. CPU DRAW! TEXTURE! SHADER! VERTEX BUFFER! ALPHA BLENDING! TRANSFORM CHANGE STATES Draw Call in a broad sense GPU... USE Z-BUFFER!
  15. 15. CPU (App) GPU COMMAND COMMAND COMMAND COMMAND COMMAND Set Texture Set Shader Use Blending Set VBO Draw Command Buffer
  16. 16. +Draw Call Logic AI Physics Loading GC … CPU boundary
  17. 17. Bottleneck Draw Call Batching (Pros, Cons) Profiling Profiling Sample Level Of Detail Lighting (Image Based Lighting) Physically Based Rendering
  18. 18. Batch(in Rendering Statistics Window) = Draw Call + Setting Shader + Setting Blending + Setting Texture + Setting Vertex Buffer + ...
  19. 19. Batching = 1 batch for many objects
  20. 20. Material A Material B Mesh 1 Mesh 2 Mesh 1 Mesh 3 Batch Batch s c e n e
  21. 21. Asset : Top-down Sci-Fi
  22. 22. Static Batching VS Dynamic Batching
  23. 23. Static Batching do this on loading
  24. 24. Dynamic Batching do this on Run-time GPU Vertex BufferScene
  25. 25. Dynamic Batching: limitations Overhead for collecting vertices. - Not for Skinned Mesh. - Less than 300 vertices per mesh. (position, normal, uv0)
  26. 26. Unity Frame Debugger
  27. 27. Bottleneck Draw Call Batching (Pros, Cons) Profiling Profiling Sample Level Of Detail Lighting (Image Based Lighting) Physically Based Rendering
  28. 28. Analyze your Bottleneck Measure correctly Average value Diverse situation Per Target Device
  29. 29. CPU : A5 GPU : PowerVR SGX535 Resolution : 1024 x 768 CPU : A5X GPU : PowerVR SGX543 Resolution : 2048 x 1536 Performance ? Episode of
  30. 30. Unity Profiler CPU GPU
  31. 31. Simple test High Polygon model VS Low Polygon model Expensive Shader VS Cheap Shader . High rez texture VS Low rez texture
  32. 32. Deep GPU Profile Vendor Profiler tools
  33. 33. Qualcomm Adreno Profiler
  34. 34. Mali Graphics Debugger
  35. 35. ARM DS-5 http://community.arm.com/docs/DOC-9414
  36. 36. iOS GPU profiler
  37. 37. Bottleneck Draw Call Batching (Pros, Cons) Profiling Profiling Sample Level Of Detail Lighting (Image Based Lighting) Physically Based Rendering
  38. 38. LG G-pad ( Adreno 320, 1920 X 1200) Deferred Render GPU Skinning MatCap Shader Lightmap 15K Polygons
  39. 39. Player Settings -> GPU Skinning
  40. 40. Skinning GPU CPU or Asset : Succubus Monster 2.0 Player Settings > Rendering
  41. 41. GPU : Vertex Shader Buffer GPU Skinning with Transform Feedback Open GL ES 3.0 ~
  42. 42. CPU : NEON Buffer CPU Skinning with NEON SIMD
  43. 43. NEON TM X1 + =X2 X3 X1 + =X2 X3 Y1 + =Y2 Y3 Z1 + =Z2 Z3 W1 + =W2 W3 Single Instruction Multi Data Single Instruction Single Data
  44. 44. GPU Skinning -> CPU Skinning -9ms
  45. 45. cmd > adb.exe shell setprop debug.egl.profiler 1 image : Adreno Profiler user guide
  46. 46. Mobile/Unlit (support Lightmap) -17ms
  47. 47. Level Of Detail Image : Infinity Tap SF
  48. 48. ASSET : Armored Golem Per Pixel Lit Normalmap Per Vertex Lit
  49. 49. LOD Plugins in Asset Store
  50. 50. Normalmap X 15K -> 7K Poly LOD -3ms
  51. 51. Deferred -> Forward -5ms
  52. 52. Image : FPS Hangar 17 FPS (57ms) iPhone 6 : PowerVR GX6450 1334 X 750
  53. 53. Vertex Pixel
  54. 54. Tile Based Deferred Rendering
  55. 55. 39 FPS (25ms) iPhone 6 : PowerVR GX6450 1334 X 750 SSAO SunShaft
  56. 56. Bottleneck Draw Call Batching (Pros, Cons) Profiling Profiling Sample Level Of Detail Lighting (Image Based Lighting) Physically Based Rendering
  57. 57. image : http://www.aversis.be/tutorials/vray/vray-20-gi-methods.htm
  58. 58. Texture Image Based Lighting Unlit lighting DiffuseWrap MatCap
  59. 59. Toon Shading (Diffuse Wrap)
  60. 60. MatCap (Material Capture) IMG : http://www.cgarena.com/freestuff/tutorials/misc/photoreal/
  61. 61. X ( )+ = MatCap Shading
  62. 62. Standard Shader PC Ver. Mobile Ver.
  63. 63. We are optimizing more
  64. 64. Use less textures ASSET : Many-Worlds
  65. 65. Use Secondary Maps
  66. 66. 4.6.3~
  67. 67. Q & A 유니티 개발자 커뮤니티 유니티허브 ozlael.oz ozlael ozlael.egloos.com Thank you

×