[ตอนต้น] UNITY 5.4 มีอะไรเล่นบ้างนะ ?

Adam-Short-Part-1-Unity-Tech-Demo-7

Official_unity_logo

       หลังจากที่เปิดเวอร์ชั่น Beta มานานหลายเดือน ในที่สุด Unity 5.4 ก็ปล่อยออกมาให้เราได้ใช้กันเสียที แต่มันจะมีฟีเจอร์อะไรบ้างนะ ? วันนี้เราจะมาดูกัน… ดังนั้นก่อนอื่นก็เชิญเพื่อนๆ ดาวน์โหลด Unity เวอร์ชั่นนี้ไปใช้กันก่อนเลย : [ดาวน์โหลด]

ฟีเจอร์ใหม่ๆ ทั้งหมดโดยรวมของ Unity 5.4 ในเวอร์ชั่นนี้ (สำหรับคนอ่านย่อๆ แต่ถ้าต้องการเต็มๆ ข้ามหัวข้อนี้ไปได้เลย)
  • กราฟฟิก และการเรนเดอร์ที่มีประสิทธิภาพมากขึ้น
    • การเรนเดอร์แบบ Multithreaded ที่ดีกว่าเดิม
    • Draw calls ลดลงด้วย GPU Instancing ซึ่งสามารถใช้ได้บน Windows, OSX, Linux, PlayStation 4, และ Xbox One
    • ปรับปรุงกราฟฟิกแบบ Low Level ซึ่งจะมีตั้งแต่ texture arrays, compute shaders, และอื่นๆ อีกมากมาย
  • สำหรับ Artists
    • การควบคุมการปรับขนาด, Trigger Module ใหม่ และแสงที่ดีกว่าเดิม จาก Light Probe Proxy Volumes (LPPV) particles ที่สามารถปรับแต่งได้มากกว่าเดิม
    • เครื่องมือสนับสนุนสำหรับการเรนเดอร์ Motion Vector
  • ปรับปรุง VR ใหม่ โดยทำให้ VR รองรับหลายๆ เพลตฟอร์มมากยิ่งขึ้น และทำงานได้ดีกว่าเดิม
  • IL2CPP สำหรับ Android เปิดให้ใช้อย่างเป็นทางการ
  • รองรับการแสดงผลของ Mac Retina และยังได้เพิ่มฟังก์ชั่น Zoomable Game View (OSX & Windows)
  • สามารถลง Cloud Build จากในตัว Editor ได้แล้ว
  • Performance Reporting มีการปรับปรุงให้ดีขึ้นใน Editor และใช้งานได้ง่ายๆ เพียง 1 คลิ๊ก โดยไม่ต้องลง Plugins หรือ Code ใดๆ ทั้งสิ้น
  • อัพเดทฟีเจอร์ Analytics ด้วย Raw Data Export, Heatmaps, Livestream, และ Ads data ในแดชบอร์ด
  • In-App Purchasing รองรับ Amazon Appstore
  • Web Player และ PS3 Build target ใน Options ถูกเอาออกไปพร้อมๆ กับ iOS 6 support
กราฟฟิก และการเรนเดอร์ที่มีประสิทธิภาพมากขึ้น
  • การปรับปรุงการเรนเดอร์แบบ Multithreaded
    • ช่วยให้ Frame rate ดีขึ้นอย่างก้าวกระโดด (ขึ้นอยู่กับโปรเจ็คและเพลตฟอร์มที่เราเลือกพัฒนา)
    • มีการแก้ไขในเรื่อง particles, sprites, flares, halos, lines และ trails off ดังนั้นใครพัฒนา Unity 5.3 มา แนะนำให้พัฒนาไปพร้อมๆ กับ Unity 5.4
    • แทนการ Building one graphics command list บน Main CPU core scripts โดยใช้ physics และ scripts พร้อมกับจัดสรรการทำงานให้กับ Multiple CPU cores ซึ่งนั่นทำให้ตัวโปรเจ็คทำงานได้เร็วมากขึ้นกว่าเดิม
  • Draw calls ลดลงด้วย GPU Instancing
    • โดยการสนับสนุนของ GPU Instancing มันจะทำให้การเรนเดอร์วัตถุที่ต้องแชร์ Materials ดีขึ้น ซึ่งจะส่งผลต่อ Draw calls ที่ลดลงเยอะมาก
    • GPU Instancing สามารถใช้งานได้บน Windows (DX11/12 พร้อมกับ Shader Model 4.0+), OSX, และ Linux (OpenGL 4.1+) เช่นเดียวกับ  PlayStation 4 และ Xbox One
*ความแตกต่างของเวอร์ชั่นปกติและเวอร์ชั่นใหม่
  • ปรับปรุงกราฟฟิกแบบ Low Level ซึ่งจะมีตั้งแต่ texture arrays, compute shaders, และอื่นๆ อีกมากมาย
    • หากคุณเป็นโปรแกรมเมอร์สายกราฟฟิก คุณสามารถที่จะสร้าง Shaders ของคุณได้เอง และ 2D Texture Arrays สามารถที่จะช่วยคุณเมื่อต้องการจะทำการเพิ่มประสิทธิภาพของฉากขนาดใหญ่ และการใช้ระบบเรนเดอร์ ซึ่งนี่จะเป็นการอนุญาตให้ GPU ทำงานกับการแชร์ Textures 2D ที่ใช้ขนาดเดียวกัน และเป็นรูปแบบแบบ Single Object
    • นอกจากนี้ยังมีการปรับฟีเจอร์ของกราฟฟิกแบบ Low Level อีกหลายๆ อย่าง โดยไม่ว่าจะเป็น Compute shaders ที่เชื่อมโยงกับ DispatchIndirect, Compute buffer counters ที่ดีกว่าเดิม และข้อมูล Debug สามารถนำมาใช้สำหรับการดีบัก Compute Shade
    • คุณยังสามารถก๊อปปี้ texture ได้เร็วยิ่งขึ้น โดยใช้ CopyTexture function และยังรองรับ Uniform Arrays ที่เพิ่มให้กับพารามิเตอร์ของ Shader อีกด้วย
    • On Metal, OpenGL, และเพรตฟอร์ม D3D9 ที่ได้นำ Alpha-to-coverage มาใช้ ส่วนบน iOS ยังสนับสนุนการเรนเดอร์แบบ Multithreaded สำหรับกราฟฟิกของ Metal
    • สุดท้ายคือ Image effects สามารถนำมาใช้ใน scene view camera ร่วมกับ ImageEffectAllowedInSceneView attribute ตัวใหม่ได้
สำหรับ Artists : Particle Lighting ที่ดีกว่าเดิม และ Motion Vectors Illustrated ที่ปรับปรุง Cinematic Image Effects
  • New particle controls
    • ในเวอร์ชั่น 5.4 ได้ทำการเพิ่ม Sizing controls สำหรับ Particles แบบใหม่ ที่จะช่วยให้เราสามารถควบคุมความกว้าง และความสูงเพื่อควบคุม mesh particles แบบ 3D เต็มรูปแบบ
    • Trigger module ตัวใหม่ที่ช่วยให้เราสามารถปรับเปลี่ยนคุณสมบัติของ Modify Particle ในหมวด colliders ได้มากขึ้น โดยในเวอร์ชั่นใหม่นี้เรายังสามารถใช้ Light Probe Proxy Volumes (“LPPV”) ทำให้ Particle ของเราแสดงผลออกมาได้สมจริงมากขึ้นได้อีกด้วย

  • ParticleTriggers
    • LPPV จะทำการสร้างตาราง 3D grid  ของ Interpolated light probes ในปริมาณและขอบเขตที่ช่วยให้เราสามารถระบุความละเอียดของตาราง ซึ่งการทำแบบนี้จะช่วยทำให้เราสามารถเพิ่ม Spatial gradien ใน Probe-lit Objects ได้
    • LPPV ยังสามารถใช้งานกับพวก Dynamic Object ขนาดใหญ่ได้อีกด้วย
  • lppv_vs_nolppv
  • Cinematic Image Effects และ Motion Vector Suppor
    • Cinematic Image Effects นั้นหมายถึง Screenspace Raytraced Reflections, Depth of Field, Tonemapping, Colour Grading และอื่นๆ อีกมากมาย ที่ตอนนี้เราสามารถหาดาวน์โหลดมาลองใช้ได้แล้วผ่าน Asset Store [ดาวน์โหลด] ซึ่งเราสามารถมารถดูความสามารถของมันได้ผ่านหนังสั้นเรื่อง Adam
  • Adam_DoF
    • และนอกจากที่กล่าวมาในข้างต้นแล้ว ในเวอร์ชั่นนี้ยังได้ทำการเพิ่มการสนับสนุน Motion vector เข้ามาอีกด้วย ซึ่ง Motion vectors ก็คือ การ Track frame-to-frame motion ต่อ Pixel level และสามารถนำไปใช้เพื่อให้เอฟเฟคสามารถแสดงผลออกมาได้ดี เช่น motion blur และ temporal anti-aliasing เป็นต้น
  • 5_4_Feature_MotionVector1

ปล. บทความนี้มี 2 ตอนนะครับ !!
ปล. 2 หากในบทความมีตรงส่วนไหนที่เนื้อหาผิดพลาดไป ผมก็ขอโทษมาไว้ ณ ที่นี้ด้วยครับ

แหล่งที่มา blogs.unity3d.com