API คืออะไร
ผมขออธิบายในภาษาชาวบ้านก็แล้วกันนะครับ API คือตัวที่กำหนดมาตรฐานการเชื่อมต่อ กับ Application ต่างๆ ครับ (หากงงก็ไม่เป็นไรครับ เดียวผมมีตัวอย่างให้ดู)
ตัวอย่าง
หาก เรามี Application A และต้องการให้มันทำการเชื่อมต่อกับ Application B เราจะต้องทราบวิธีการเชื่อมของ Application B ว่ามีวิธีการอย่างไรบ้าง ซึ่งวิธีการเหล่านั้นเราเรียกว่า API นั้นเองครับ
ตัวอย่าง
เช่น หากเราเป็นนักพัฒนาเกม 3D และเราต้องการให้ กราฟิกชิพ (GPU) แสดง Effect ต่างๆออกมา เราก็ใช้ชุดคำสั่งที่อยู่ใน OpenGL หรือ Direct3D ไปสั่งให้ GPU แสดง Effect ออกมา ซึ่ง OpenGL และ Direct3D ก็คือ API ที่ใช้เชื่อมต่อระหว่าง เกม 3D และ GPU นั้นเองครับ
OpenGL และ Direct3D ต่างกันอย่างไร
1. ระบบปฏิบัติการที่รองรับ
a. OpenGL เป็น API เปิด สามารถให้ใช้ได้ทุกระบบปฏิบัติการ เช่น Wondows, UNIX, LINUX , Mac OS และอื่นๆ เป็นต้น
b. Direct3D เป็นส่วนหนึ่งของ DirectX ซึ่งเป็น API ของ Microsoft ดังนั้น Dircet3D จะสามารถใช้ได้บนระบบปฏิบัติการที่ Microsoft อนุญาตเท่านั้นซึ่งปัจจุบันนี้ ผมก็เห็นแต่ Windows เท่านั้นที่ใช้ Direct3D
2. จำนวนชุดคำสั่ง
ในระยะแรกๆนั้น จำนวนชุดคำสั่งที่ใช้ในการทำงาน 3D ของ OpenGL นั้นจะมีจำนวนชุดคำสั่งเยอะกว่า Dircet3D ครับ และ OpenGL ก็มีประสิทธิภาพในการทำงานมากกว่า Direct3D อีกด้วย ดังนั้นในสมัยก่อนเวลาทำงาน 3D ต่างๆ ไม่ว่าจะเป็น สร้างเกม 3D, การทำงานออกแบบ 3D Modeling ก็มักจะใช้ OpenGL ครับ แต่เมื่อเวลาผ่านมาจนถึงยุคที่มีการใช้ DirectX 9 จำนวนชุดคำสั่งที่อยู่ใน OpenGL และ Direct3D ก็เริ่มที่จะมีจำนวนพอๆกันแล้วครับ และDirectX 11 ที่กำลังจะออกมาในอนาคต ก็ทำท่าว่าจะเหนือกว่า OpenGL เสียด้วยครับ แต่ถึงอย่างไรก็ตามจุดแข่งของ OpenGL ก็คือ ตัว OpenGL นั้นสามารถใช้งานได้หลายระบบปฏิบัติการครับ Application 3D หลายตัวยังคงสนับสนุนการทำงานของ OpenGL อยู่ครับ
ผมขออธิบายในภาษาชาวบ้านก็แล้วกันนะครับ API คือตัวที่กำหนดมาตรฐานการเชื่อมต่อ กับ Application ต่างๆ ครับ (หากงงก็ไม่เป็นไรครับ เดียวผมมีตัวอย่างให้ดู)
ตัวอย่าง
หาก เรามี Application A และต้องการให้มันทำการเชื่อมต่อกับ Application B เราจะต้องทราบวิธีการเชื่อมของ Application B ว่ามีวิธีการอย่างไรบ้าง ซึ่งวิธีการเหล่านั้นเราเรียกว่า API นั้นเองครับ
ตัวอย่าง
เช่น หากเราเป็นนักพัฒนาเกม 3D และเราต้องการให้ กราฟิกชิพ (GPU) แสดง Effect ต่างๆออกมา เราก็ใช้ชุดคำสั่งที่อยู่ใน OpenGL หรือ Direct3D ไปสั่งให้ GPU แสดง Effect ออกมา ซึ่ง OpenGL และ Direct3D ก็คือ API ที่ใช้เชื่อมต่อระหว่าง เกม 3D และ GPU นั้นเองครับ
OpenGL และ Direct3D ต่างกันอย่างไร
1. ระบบปฏิบัติการที่รองรับ
a. OpenGL เป็น API เปิด สามารถให้ใช้ได้ทุกระบบปฏิบัติการ เช่น Wondows, UNIX, LINUX , Mac OS และอื่นๆ เป็นต้น
b. Direct3D เป็นส่วนหนึ่งของ DirectX ซึ่งเป็น API ของ Microsoft ดังนั้น Dircet3D จะสามารถใช้ได้บนระบบปฏิบัติการที่ Microsoft อนุญาตเท่านั้นซึ่งปัจจุบันนี้ ผมก็เห็นแต่ Windows เท่านั้นที่ใช้ Direct3D
2. จำนวนชุดคำสั่ง
ในระยะแรกๆนั้น จำนวนชุดคำสั่งที่ใช้ในการทำงาน 3D ของ OpenGL นั้นจะมีจำนวนชุดคำสั่งเยอะกว่า Dircet3D ครับ และ OpenGL ก็มีประสิทธิภาพในการทำงานมากกว่า Direct3D อีกด้วย ดังนั้นในสมัยก่อนเวลาทำงาน 3D ต่างๆ ไม่ว่าจะเป็น สร้างเกม 3D, การทำงานออกแบบ 3D Modeling ก็มักจะใช้ OpenGL ครับ แต่เมื่อเวลาผ่านมาจนถึงยุคที่มีการใช้ DirectX 9 จำนวนชุดคำสั่งที่อยู่ใน OpenGL และ Direct3D ก็เริ่มที่จะมีจำนวนพอๆกันแล้วครับ และDirectX 11 ที่กำลังจะออกมาในอนาคต ก็ทำท่าว่าจะเหนือกว่า OpenGL เสียด้วยครับ แต่ถึงอย่างไรก็ตามจุดแข่งของ OpenGL ก็คือ ตัว OpenGL นั้นสามารถใช้งานได้หลายระบบปฏิบัติการครับ Application 3D หลายตัวยังคงสนับสนุนการทำงานของ OpenGL อยู่ครับ
Comment