ในงาน SIGGRAPH 2012 ซึ่งเป็นงานประชุมด้านคอมพิวเตอร์กราฟฟิคที่จะมีทั้ง ผู้ผลิตฮาร์ดแวร์ ซอฟท์แวร์ และนักวิจัยจากหลาย ๆ มหาวิทยาลัยเข้ามาร่วมสัมนากัน ทาง Khronos Group ซึ่งเป็นผู้กำหนดคุณลักษณะของ API ต่าง ๆ หลายตัว ได้ประกาศเปิดตัวมาตรฐาน OpenGL ES 3.0 และ OpenGL 4.3 ซึ่งเป็นคุณลักษณะของ API กราฟฟิคของอุปกรณ์แบบฝังตัว (Embedded System) และคอมพิวเตอร์ตั้งโต๊ะ
OpenGL ES 3.0
สำหรับ OpenGL ES 3.0 เป็นการนำ API บางส่วนจาก OpenGL 3 และ 4 มาเพิ่มลงไปใน OpenGL ES 2.0 โดย OpenGL ES 3.0 จะคงการเข้ากันได้กับ OpenGL ES 2.0 ไว้ ดังนั้นโปรแกรมเก่า ๆ ที่ใช้ OpenGL ES 2.0 จะสามารถทำงานอยู่บนอุปกรณ์ที่เป็น OpenGL ES 3.0 ได้เลย
โดยใน OpenGL ES 3.0 มีฟีเจอร์ใหม่ดังนี้

  • Pixel/Uniform/Frame Buffer Object ถูกกำหนดคุณลักษณะอย่างชัดเจนมากขึ้ัน
  • GLSL ES 3.0
  • Occlusion Queries และ Geometry Instancing
  • ฟีเจอร์ที่เกี่ยวกับ Texture จำนวนมาก เช่น texture แบบ floating point, texture สามมิติ, texture ด้านลึก, texture ที่มีความกว้าง/ความยาวไม่เป็นเลขยกกำลังที่มีฐานเป็นสอง, และ texture ที่มีเพียง 1 หรือ 2 แชแนล (R, G, หรือ R และ G)
  • Render Target จำนวนมากกว่าหนึ่ง
  • การ Render ภาพที่มีการทำ MSAA ลงไปใน Texture
  • ยกเทคนิคการบีบอัด texture ที่ชื่อว่า ETC ให้เป็นมาตรฐาน

ในตอนนี้มี Qualcomm Adreno 320 ที่รองรับ OpenGL ES 3.0 แล้ว ตั้งแต่ก่อนที่มาตรฐานนี้จะถูกประกาศออกมาเสียอีก
OpenGL 4.3
OpenGL 4.3 นั้นเป็นการอัพเดตที่ไม่ได้ใหญ่มากนัก มีฟีเจอร์เพิ่มเข้ามานิดหน่อย โดยจุดที่น่าสนใจก็คือการนำ OpenGL ES 3.0 เข้ามารวมเอาไว้ด้วยทั้งหมด ดังนั้นนักพัฒนาสามารถสร้างโปรแกรมที่ใช้ OpenGL ES 3.0 แล้วนำมารันบนอุปกรณ์ที่รอบรับ OpenGL 4.3 ได้เลย
อีกจุดหนึ่งก็คือการเพิ่ม Compute Shader เข้ามา ซึ่งแต่เดิมทาง Khronos Group จะมีมาตรฐาน OpenCL ที่เป็นส่วนของการคำนวนโดยทั่วไปอยู่แล้ว แต่เนื่องจากการใช้ OpenCL นั้นมีประสิทธิภาพไม่ดีนัก ทาง Khronos Group ก็เลยเดินตามทางที่ DirectX เป็นอยู่โดยการเพิ่ม Shader ประเภทใหม่เข้ามาเสียเลย
สำหรับฟีเจอร์ใหม่ก็มีดังนี้ครับ

  • สนับสนุน OpenGL ES 3.0 ทั้งหมด รวมทั้งยกให้เทคนิคการบีบอัด texture ETC เป็นมาตรฐาน
  • OpenGL Compute Shaders
  • ฟีเจอร์ที่เกี่ยวกับ texture และ buffer ใหม่ เช่น texture view และ การอ่าน/เขียนลงไปในบัฟเฟอร์ขนาดใหญ่จาก shader ทุกประเภท

Adaptive Scalable Texture Compression
Adaptive Scalable Texture Compression หรือ ASTC เป็นเทคนิคการบีบอัด texture ตัวใหม่ถึงแม้ว่าเทคนิคนี้จะยังไม่ถูกยกเข้ามาเป็นมา ตรฐานใน OpenGL ในตอนนี้ แต่ก็มีแนวโน้มว่า ASTC จะถูกยกขึ้นไปแทนที่ ETC ที่เพิ่งถูกประกาศขึ้นไปในเร็ว ๆ นี้ครับ
ASTC นั้นเป็นเทคนิคที่เสนอโดย ARM ซึ่งเทคนิคนี้เป็นการร่วมมือกันระหว่าง ARM และ Nvidia เทคนิคนี้ต่างจากเทคนิคอื่น ๆ ก่อนหน้าโดยจะไม่ยึดขนาดของ block (กลุ่มของ texel ใน texture) ที่ขนาด 4x4 แต่จะยึดขนาดของหน่วยความจำที่ใช้ต่อ block ที่ 128bit (16 byte) แทน ซึ่งแต่ละ block จะมีขนาดได้ตั้งแต่ 4x4 ถึง 12x12 texel โดยมีอัตราส่วนการบีบอัดสูงสุดถึง 36:1
Computing Language Utility
Computing Language Utility หรือ CLU เป็น library ที่สร้างขึ้นเพื่อลดความซับซ้อนในงานบางส่วนของ OpenCL CLU นั้นจะคล้าย ๆ กับ GLU ของฝั่ง OpenGL ครับ
ที่มา: AnandTech


อ่านต่อ...