กลับไปหน้าบทความ

อ่าน 3 นาที

แอลดับบลิวเจจีแอล

Lightweight Java Game Library ( LWJGL ) เป็น ไลบรารี ซอฟต์แวร์โอเพนซอร์ส ที่ให้ การเชื่อมต่อ กับไลบรารี C ต่างๆสำหรับ นักพัฒนาวิดีโอเกม ไปยัง ภาษา Java โดยเปิดเผย ไลบรารี...

แอลดับบลิวเจจีแอล

ไลบรารีเกม Java น้ำหนักเบา (LWJGL)
ผู้เขียนต้นฉบับเจ้าชายแห่งทะเลแคสเปียน
นักพัฒนาโยอันนิส ซัคปินิส
ปล่อย4 กุมภาพันธ์ พ.ศ. 2550 [ 1 ] ( 4 กุมภาพันธ์ 2550 )
เวอร์ชันเสถียร
3.4.1 / 3 กุมภาพันธ์ 2026 ( 3 กุมภาพันธ์ 2026 )
เขียนเป็นJava , C , Kotlin [ 2 ] [ 3 ]
ระบบปฏิบัติการลินุกซ์ , มอสซาเรลล่า , วินโดวส์ , ฟรีบีเอสดี
แพลตฟอร์มแพลตฟอร์ม Java
พิมพ์ห้องสมุดคอมพิวเตอร์ฟรี
ใบอนุญาตBSDบางส่วนผูกอยู่ภายใต้ใบอนุญาตที่แตกต่างกัน[ 2 ]
เว็บไซต์lwjgl .org
ที่เก็บข้อมูลgithub.com/lwjgl

Lightweight Java Game Library ( LWJGL ) เป็นไลบรารีซอฟต์แวร์โอเพนซอร์สที่ให้การเชื่อมต่อ กับไลบรารี Cต่างๆสำหรับนักพัฒนาวิดีโอเกมไปยังภาษา Javaโดยเปิดเผย ไลบรารี ข้ามแพลตฟอร์ม ที่ใช้กันทั่วไปในการ พัฒนา วิดีโอเกมและสื่อมัลติมีเดีย เช่นVulkan , OpenGL , GLFW , OpenALและOpenCL

เป้าหมายหลักของโครงการคือการจัดหาวิธีการให้นักพัฒนา Java สามารถเข้าถึงทรัพยากรที่ไม่สามารถใช้งานได้หรือใช้งานได้ไม่ดีบนแพลตฟอร์ม Java ที่มีอยู่ ปรัชญาหลักคือการเปิดเผยเทคโนโลยีพื้นฐานในรูปแบบ wrapper บาง ๆ จึงสร้างAPI ที่ใกล้เคียงกับต้นฉบับ LWJGL เป็นพื้นฐานของเอนจิ้ เกมและไลบรารี Java ระดับสูงบางตัว เช่นlibGDX [ 4 ]และjMonkeyEngine [ 5 ]

ประวัติศาสตร์

การพัฒนาไลบรารีเริ่มต้นในปี 2545 พร้อมกับการเปิดตัวJ2SE 1.4โดยใช้ประโยชน์จากการดำเนินการ I/O แบบไม่บล็อกที่ เพิ่มเข้ามาใหม่ และ การเข้าถึง หน่วยความจำนอกฮีปการเพิ่มเติมเหล่านี้ในJDKช่วยให้สามารถเข้าถึงหน่วยความจำเนทีฟและไลบรารีที่ไม่ใช่ส่วนหนึ่งของ JDK ได้ดียิ่งขึ้น การเปิดตัวไลบรารีอย่างเป็นทางการครั้งแรกเกิดขึ้นเมื่อวันที่ 4 กุมภาพันธ์ 2550 [ 1 ]

เมื่อวันที่ 13 พฤศจิกายน 2014 ได้มีการประกาศเวอร์ชัน 3 ซึ่งได้ปล่อยเวอร์ชันอัลฟ่าเมื่อวันที่ 27 เมษายน 2015 และเป็นการเขียน LWJGL ใหม่ทั้งหมด[ 6 ] [ 7 ] [ 8 ]เวอร์ชัน 3 เพิ่มการรองรับVulkanและการเชื่อมต่อใหม่หลายรายการ รวมถึงGLFW , EGLและObjective-C [ 8 ] [ 9 ] นอกจาก นี้ยังเพิ่ม การรองรับการ พัฒนา Oculus Riftด้วยการเชื่อมต่อ LibOVR [ 8 ]เวอร์ชันใหม่นี้ได้รับการเผยแพร่เมื่อวันที่ 4 มิถุนายน 2016 หลังจากใช้เวลาในการพัฒนามากกว่า 3 ปีครึ่ง[ 10 ]

การผูกมัด

ไลบรารีเข้าถึงโค้ดC ดั้งเดิมผ่านทาง Java Native Interface (JNI) การผูกกับไลบรารีดั้งเดิมแต่ละตัวมีอยู่เป็นโมดูลที่แตกต่างกัน ดังนั้นนักพัฒนาจึงสามารถสร้างแบบกำหนดเองได้โดยมีเฉพาะสิ่งที่พวกเขาต้องการในโปรแกรมใดโปรแกรมหนึ่งเท่านั้น[ 8 ] [ 11 ] [ 2 ]

ในขณะที่คลาสยูทิลิตี้เขียนด้วยภาษา Java บริสุทธิ์ คลาสการผูกส่วนใหญ่จะถูกสร้างขึ้นโดยอัตโนมัติโดยตัวสร้างแบบกำหนดเองที่เขียนด้วยKotlin [ 2 ] [ 3 ]

ตั้งแต่เวอร์ชัน 3.1 LWJGL ได้ถูกแบ่งออกเป็น 51 โมดูลอย่างสมบูรณ์ ซึ่งสามารถดาวน์โหลดและใช้งานแยกกันได้ เพื่อให้กระบวนการนี้ง่ายขึ้น โครงการจึงมีตัวกำหนดค่าการสร้างออนไลน์ ซึ่งช่วยให้ผู้ใช้สามารถดาวน์โหลดชุดโมดูลที่กำหนดเองได้ และสร้าง ไฟล์การกำหนดค่า MavenและGradle โดยอัตโนมัติ เพื่อให้ใช้งานกับโครงการที่มีอยู่ได้ง่ายขึ้น[ 12 ] [ 13 ]

ผูกมัดที่ให้ไว้[ 2 ]
ผูกพัน หมวดหมู่ คำอธิบาย หมายเหตุ
อีจีแอลAPI ของ Khronosส่วนเชื่อมต่อระหว่าง API การเรนเดอร์ของ Khronos และระบบหน้าต่างพื้นฐานของแพลตฟอร์ม
โอเพ่นซีแอลAPI สำหรับการประมวลผลแบบขนาน ข้ามแพลตฟอร์ม
โอเพ่นจีแอลข้อกำหนดกราฟิก 3 มิติที่ผู้ผลิต GPU ส่วนใหญ่ใช้ส่วนขยายส่วนใหญ่ได้รับการสนับสนุน แต่ส่วนขยายที่ไม่ค่อยได้รับความนิยมจะถูกเพิ่มเข้ามาตามคำขอ
โอเพนกลู อีเอสOpenGL สำหรับระบบฝังตัวเช่น โทรศัพท์มือถือ แท็บเล็ต หรือเครื่องเล่นเกม
วัลคานAPI กราฟิก 3 มิติแบบข้ามแพลตฟอร์มที่จะเปิดตัวในเร็วๆ นี้
จีแอลเอฟวีการแสดงผลและการป้อนข้อมูล จำเป็นต้องใช้ไลบรารีการจัดการหน้าต่างเพื่อจัดการบริบท OpenGL และ Vulkan รวมถึงการรับข้อมูลจากผู้ใช้
JAWTอินเทอร์เฟซดั้งเดิม ของ AWT
เอ็นเอฟดี ไลบรารีขนาดเล็กสำหรับสร้างกล่องโต้ตอบไฟล์แบบเนทีฟที่ใช้งานได้บนหลายแพลตฟอร์ม
ไทนี่เอฟดี ไลบรารีบทสนทนาพื้นฐานขนาดเล็ก
โอเพ่นเอแอลเสียง API เสียงสามมิติ ALC และส่วนขยายอื่นๆ ได้รับการสนับสนุน โดยเฉพาะอย่างยิ่งมีการรวมการใช้งาน OpenAL Soft ไว้ด้วย
โอปุสตัว แปลง สัญญาณเสียงแบบเปิด ไม่เสียค่าลิขสิทธิ์
แอสซิมป์กราฟิก ไลบรารีโอเพนซอร์สแบบพกพาสำหรับนำเข้าโมเดล 3 มิติ ใน รูปแบบ ต่างๆ
บจีเอฟเอ็กซ์ ไลบรารีการเรนเดอร์ข้ามแพลตฟอร์มที่รองรับแบ็กเอนด์กราฟิกหลายประเภท
ดริฟท์เอฟเอ็กซ์ ไลบรารีสำหรับแสดงผลเนื้อหา OpenGL ลงในโหนด JavaFX
ลิบโอวีอาร์ API ของOculus Rift SDK
meshoptimizer ไลบรารีสำหรับการปรับแต่งโมเดล 3 มิติ เพื่อลดขนาดโมเดล 3 มิติและเรนเดอร์ได้เร็วขึ้น
นาโนเอสวีจี โปรแกรมแยกวิเคราะห์ ไฟล์ SVGอย่างง่าย
นาโนวีจี ไลบรารีสำหรับการเรนเดอร์กราฟิกเวกเตอร์ 2 มิติโดยใช้ OpenGL
นิวเคลียร์ ไลบรารี GUIอย่างง่าย
รูปทรงพาร์ ตัวสร้างรูปทรงพาราเมตริกและรูปทรงพื้นฐานอื่นๆ
พาร์สตรีมไลน์ ใช้การหาค่าสามเหลี่ยมกับเส้นและส่วนโค้งกว้างๆ
โอเพ่นวีอาร์แพลตฟอร์ม API ที่ช่วยให้สามารถเข้าถึงฮาร์ดแวร์ VR จากผู้ผลิตหลายรายได้ โดยไม่จำเป็นต้องให้แอปพลิเคชันมีความรู้เฉพาะเจาะจงเกี่ยวกับประเภทของฮาร์ดแวร์ที่ต้องการใช้งาน
เชเดอร์ค ชุดไลบรารีสำหรับการคอม ไพล์เชเด อร์
สปิร์ฟ-ครอส ไลบรารีสำหรับทำการวิเคราะห์ข้อมูลในSPIR-Vและถอดรหัส SPIR-V กลับไปเป็นภาษาโปรแกรมระดับสูง
เปิดEXRไลบรารีขนาดเล็กที่มีไฟล์เฮดเดอร์เดียวสำหรับโหลดและบันทึกภาพ OpenEXR (.exr)
ทูทเทิล (เอเอ็มดี) ไลบรารีสำหรับการปรับแต่งตาข่ายสามเหลี่ยม 3 มิติ ที่พัฒนาต่อยอดจากเทคนิคการประมวลผลล่วงหน้าของตาข่ายที่มีอยู่เดิม
ตัวจัดสรรหน่วยความจำ Vulkan ไลบรารีสำหรับการจัดสรรหน่วยความจำ Vulkan ที่ง่ายต่อการผสานรวม
โยคะ ไลบรารีจัดวางเลย์เอาต์แบบโอเพนซอร์สที่ใช้งานได้บนหลายแพลตฟอร์ม ซึ่งใช้ CSS Flexbox
สต. สต. ไลบรารีไฟล์เดียวขนาดเล็กสำหรับโหลดรูปภาพ เสียง และฟอนต์
ฟิสิกส์กระสุน อื่น การตรวจจับการชนแบบเรียลไทม์และการจำลองทางฟิสิกส์หลายมิติสำหรับ VR, เกม, เอฟเฟกต์ภาพ, หุ่นยนต์, การเรียนรู้ของเครื่องจักร ฯลฯ
คูดาแพลตฟอร์มการประมวลผลแบบขนานและโมเดลการเขียนโปรแกรมที่พัฒนาโดยNVIDIAสำหรับการประมวลผลทั่วไปบน GPU
ไดน์คอล ไลบรารีสำหรับเรียกใช้ฟังก์ชัน C แบบไดนามิกในรูปแบบที่ใช้งานได้กับหลายแพลตฟอร์ม เตรียมลบออก
เจมัลล็อกการจัดการหน่วยความจำระดับต่ำ
libffiอินเทอร์เฟซการเขียนโปรแกรมระดับสูงแบบพกพาสำหรับรูปแบบการเรียกใช้ฟังก์ชันต่างๆ ใช้แทน dyncall
ลิบดิไวด์ ไลบรารีที่แทนที่การหารจำนวนเต็มที่ใช้ต้นทุนสูงด้วยการคูณและการเลื่อนบิตที่มีต้นทุนต่ำกว่า
LLVMชุดของเทคโนโลยีคอมไพเลอร์และชุดเครื่องมือที่สามารถปรับแต่งและนำกลับมาใช้ใหม่ได้
LMDBไลบรารีฐานข้อมูลความเร็วสูงที่ใช้ไฟล์ แบบแมปหน่วยความจำ
แอลซี4อัลกอริทึม การบีบอัดข้อมูลแบบไม่สูญเสียคุณภาพที่เน้นความเร็ว
เหมียวแฮช แฮ ช แบบรวดเร็วที่ไม่ใช้การเข้ารหัส
โอดีบีซีอินเทอร์เฟซภาษาซีที่ช่วยให้แอปพลิเคชันสามารถเข้าถึงข้อมูลจากระบบจัดการฐานข้อมูลที่หลากหลายได้
รีโมทรี่ โปรแกรมวิเคราะห์ประสิทธิภาพ CPU/GPU แบบเรียลไทม์
rpmalloc ตัวจัดสรรหน่วยความจำแคชเธรดแบบข้ามแพลตฟอร์ม
xxแฮชแฮชที่รวดเร็วโดยไม่ใช้การเข้ารหัส
Zstandardอัลกอริทึมการบีบอัดข้อมูลแบบไม่สูญเสียข้อมูลที่รวดเร็ว

การใช้งานที่น่าสนใจ

  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=LWJGL&oldid=1346040165 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แอลดับบลิวเจจีแอล

Lightweight Java Game Library ( LWJGL ) เป็น ไลบรารี ซอฟต์แวร์โอเพนซอร์ส ที่ให้ การเชื่อมต่อ กับไลบรารี C ต่างๆสำหรับ นักพัฒนาวิดีโอเกม ไปยัง ภาษา Java โดยเปิดเผย ไลบรารี...

ประวัติศาสตร์

การพัฒนาไลบรารีเริ่มต้นในปี 2545 พร้อมกับการเปิดตัว J2SE 1.4 โดยใช้ประโยชน์จาก การดำเนินการ I/O แบบไม่บล็อกที่ เพิ่มเข้ามาใหม่ และ การเข้าถึง หน่วยความจำนอกฮีป การเพิ่มเติมเหล่านี้ใน JDK ช่วยให้สามารถเข้าถึงหน่วยความจำเนทีฟและไลบรารีที่ไม่ใช่ส่วนหนึ่งของ JDK...

การผูกมัด

ไลบรารีเข้าถึงโค้ด C ดั้งเดิมผ่านทาง Java Native Interface (JNI) การผูกกับไลบรารีดั้งเดิมแต่ละตัวมีอยู่เป็นโมดูลที่แตกต่างกัน ดังนั้นนักพัฒนาจึงสามารถสร้างแบบกำหนดเองได้โดยมีเฉพาะสิ่งที่พวกเขาต้องการในโปรแกรมใดโปรแกรมหนึ่งเท่านั้น [ 8 ] [ 11 ] [ 2 ]

การใช้งานที่น่าสนใจ

Minecraft: Java Edition [ 14 ] [ 15 ] โครงการซอมบอยด์ [ 14 ] [ 16 ] อัศวินเกลียว [ 14 ] ภาคดาว [ 14 ]