เมื่อไม่กี่วันมาก่อนนี้ทางแอนดรอยด์ได้ประกาศว่าระบบแอนดรอยด์จะรองรับการประมวลกราฟฟิค 3 มิติด้วย Vulkan ในเร็วๆนี้ โดยได้ประกาศผ่านบล็อกสำหรับนักพัฒนาแอนดรอยด์ ซึ่งจะมาช่วยให้การแสดงผลกราฟฟิคทำได้ดีขึ้น เร็วขึ้น และใช้พลังงานน้อยลง

    อ๊ะๆ สงสัยกันล่ะสิว่า Vulkan คืออะไร อยากรู้เพิ่มเติมก็ลองอ่านต่อกันได้เลยครับ 

    หลายๆคนน่าจะรู้จักหรือคุ้นหูกับคำว่า OpenGL กันใช่มั้ยครับ ซึ่งเจ้า OpenGL เนี่ย เป็นชุดพัฒนา (API) ที่สามารถใช้ได้ในหลายๆแพลตฟอร์ม (Cross-platform) รวมไปถึงบนอุปกรณ์อย่างมือถือและแทบเล็ต จึงทำให้ OpenGL เป็น API ที่นักพัฒนาเกมหลายๆคนนิยมใช้กัน เพราะมีชุดคำสั่งให้ใช้งานได้ครอบคลุมและหลากหลาย และเป็นพื้นฐานให้กับอีกหลายๆกราฟฟิคเอนจิ้นที่ใช้กันในทุกวันนี้ รวมไปถึงอุปกรณ์พกพาอย่างสมาร์ทโฟน (แยกตัวออกมาเป็น OpenGL ES)

    Vulkan ก็เช่นกัน คล้ายๆกับ OpenGL นี่แหละ ซึ่งเป็นชุดพัฒนากราฟฟิคตัวใหม่ที่พึ่งเปิดตัวมาในงาน Google Developer Conference 2015 โดยอยู่ภายใต้การดูแลของ Khronos Group (กลุ่มที่ดูแล OpenGL ในปัจจุบันนี่แหละ) ถ้าจะพูดแบบ Geek ก็ต้องบอกว่ามันคือ Low-overhead Cross-platform 3D Graphic API นั่นเอง

  โดย Vulkan เกิดขึ้นมาเพื่อปรับปรุงการทำงานของ OpenGL ที่ไม่ได้ถูกออกแบบมาเพื่อทำงานแบบ Multi-thread จึงทำให้ OpenGL ไม่สามารถดึงประสิทธิภาพของ CPU ได้อย่างเต็มที่ และ Vulkan จะลด CPU Overhead เพื่อให้ CPU ทำงานได้ดีขึ้น ไวขึ้น และสามารถเข้าถึงการทำงานของ GPU ได้โดยตรง จึงทำให้ Vulkan ทำงานได้ดีกว่า OpenGL 

    พูดไปก็งงป่าว ถ้าอยากรู้ว่ามันดีขึ้นมากแค่ไหนก็ลองดู Benchmark เปรียบเทียบกันระหว่าง Vulkan กับ OpenGL ได้เลย

Play video

     จะเห็นว่า Vulkan สามารถประมวลผลแบบ Multi-thread ได้ดีกว่า อีกทั้งยังใช้พลังงานในการประมวลน้อยกว่า แต่กราฟฟิคที่ได้นั้นลื่นไหลมากกว่า OpenGL

    นั่นก็หมายความว่าในอนาคต Vulkan จะเข้ามาแทนที่การใช้งาน OpenGL ในทุกๆแพลตฟอร์ม เพื่อให้ดึงประสิทธิภาพของอุปกรณ์ได้ดียิ่งขึ้น ซึ่งอุปกรณ์แอนดรอยด์ที่จะใช้งาน Vulkan ได้ จะต้องรองรับ OpenGL ES 3.1 ขึ้นไป ถึงจะใช้งาน Vulkan ได้ 

    โดยในตอนนี้ Vulkan ยังอยู่ในระหว่างการพัฒนา ซึ่งจะปล่อยออกมาให้นักพัฒนาได้ใช้งานกันในเร็วๆนี้ 

 

แหล่งข้อมูลเพิ่มเติม

  • http://android-developers.blogspot.com/2015/08/low-overhead-rendering-with-vulkan.html
  • https://www.khronos.org/vulkan
  • https://www.khronos.org/assets/uploads/developers/library/overview/2015_vulkan_v1_Overview.pdf
  • https://www.khronos.org/