ในโลกของกราฟิกคอมพิวเตอร์ การเร่งความเร็วด้วยฮาร์ดแวร์ได้กลายเป็นมาตรฐานสำหรับการเรนเดอร์ 3D อย่างไรก็ตาม โปรเจกต์ใหม่ที่เรียกว่า VSC (VOUGA-SHREINER-CANTH) Verified กำลังใช้แนวทางที่แตกต่างโดยการพัฒนาเอนจินเรนเดอร์ 3D แบบเรียลไทม์ที่ทำงานด้วยซอฟต์แวร์ล้วนๆ โดยมีความสามารถในการพกพาเป็นเป้าหมายหลัก โปรเจกต์นี้ได้จุดประกายการสนทนาในชุมชนนักพัฒนาเกี่ยวกับความสำคัญและการประยุกต์ใช้การเรนเดอร์ด้วยซอฟต์แวร์ในโลกที่เร่งความเร็วด้วยฮาร์ดแวร์ในปัจจุบัน
![]() |
---|
ตัวละครมนุษย์ที่มีรูปร่างเป็นบล็อกแสดงถึงแก่นของกราฟิก 3 มิติที่ได้สำรวจในโครงการ VSC Verified |
การเรนเดอร์ด้วยซอฟต์แวร์ในโลกที่เร่งความเร็วด้วยฮาร์ดแวร์
VSC Verified ถูกสร้างขึ้นเป็น rasterizer โดยใช้เทคนิคการคำนวณเพื่อจำลองแสง เงา พื้นผิว และวัสดุต่างๆ โดยไม่ต้องพึ่งพาฮาร์ดแวร์กราฟิกเฉพาะทาง โปรเจกต์นี้ได้รับแรงบันดาลใจจากแนวทางของ DoomGeneric ในการแยกโค้ดส่วนหลังและส่วนหน้าออกจากกัน ทำให้มีความสามารถในการพกพาสูง ตามเอกสารประกอบ เอนจินนี้อิงตามหลักการจากหนังสือ Mathematics for 3D Game Programming and Computer Graphics โดย Eric Lengyel และแหล่งข้อมูลทางวิชาการอื่นๆ ชุมชนได้แสดงความสนใจเป็นพิเศษในความสามารถในการพกพาของโปรเจกต์ไปยังระบบฝังตัวเช่นไมโครคอนโทรลเลอร์ ESP32
ผมกำลังเขียนระบบปฏิบัติการและต้องการสร้างเรนเดอร์เรอร์ซอฟต์แวร์ (แบบแบตช์) ภายในนั้นเพื่อวาดสิ่งต่างๆ ผมไม่มั่นใจและปัจจุบันไม่มีเป้าหมายที่จะพอร์ต Vulkan หรือเขียนไดรเวอร์อุปกรณ์
ความคิดเห็นนี้เน้นย้ำหนึ่งในกรณีการใช้งานหลักสำหรับการเรนเดอร์ด้วยซอฟต์แวร์: สภาพแวดล้อมที่การเร่งความเร็วด้วยฮาร์ดแวร์ไม่สามารถใช้งานได้หรือไม่สะดวก สำหรับนักพัฒนาที่กำลังสร้างระบบปฏิบัติการเอง แอปพลิเคชันฝังตัว หรือทำงานกับฮาร์ดแวร์ที่มีข้อจำกัด การเรนเดอร์ด้วยซอฟต์แวร์ยังคงมีความสำคัญแม้จะมีข้อจำกัดด้านประสิทธิภาพ
คุณสมบัติหลักของ VSC Verified
- เอนจินการเรนเดอร์ 3 มิติแบบเรียลไทม์ที่พัฒนาด้วยซอฟต์แวร์ล้วนๆ
- ออกแบบมาเพื่อความสามารถในการใช้งานข้ามแพลตฟอร์ม
- รวมความสามารถในการแรสเตอร์ไรเซชัน พร้อมแผนการสำหรับเรย์เทรซซิ่ง
- เข้ากันได้กับระบบฝังตัวอย่าง ESP32
- อ้างอิงหลักการจากหนังสือ "Mathematics for 3D Game Programming and Computer Graphics"
- ใช้ลิขสิทธิ์ภายใต้ AGPL
การถกเถียงเรื่องใบอนุญาตและความต้องการเอกสาร
การเลือกใช้ใบอนุญาต AGPL ของโปรเจกต์ได้จุดประกายการถกเถียงอย่างคึกคักภายในชุมชน นักพัฒนาบางคนแสดงความกังวลเกี่ยวกับลักษณะที่เข้มงวดของ AGPL สำหรับไลบรารีการเรนเดอร์ โดยแนะนำว่า GPL น่าจะเพียงพอสำหรับโปรเจกต์ที่ไม่ได้มุ่งเน้นการใช้งานเซิร์ฟเวอร์เป็นหลัก คนอื่นๆ ปกป้องทางเลือกนี้ โดยสังเกตว่าใบอนุญาต copyleft ที่เข้มงวดช่วยปกป้องผลงานของผู้เขียนในขณะที่ยังอนุญาตให้มีการจัดการใบอนุญาตเชิงพาณิชย์ได้หากผู้เขียนเลือกที่จะเสนอ
เอกสารเป็นอีกประเด็นหนึ่งที่มีการอภิปราย โดยสมาชิกชุมชนหลายคนขอให้มีเอกสารที่ครอบคลุมมากขึ้นเกี่ยวกับคุณสมบัติและความสามารถของโปรเจกต์ นักพัฒนารับทราบข้อเสนอแนะนี้ โดยกล่าวว่าพวกเขากำลังทำงานเกี่ยวกับเอกสารเบื้องต้นและการอัปเดตไฟล์ README การตอบสนองต่อข้อเสนอแนะของชุมชนนี้บ่งชี้ถึงกระบวนการพัฒนาที่มีความกระตือรือร้น
การพิจารณาด้านประสิทธิภาพและแผนในอนาคต
ประสิทธิภาพเป็นความกังวลตามธรรมชาติสำหรับเรนเดอร์เรอร์ซอฟต์แวร์ใดๆ นักพัฒนาได้ระบุถึงแผนในการปรับปรุงประสิทธิภาพ รวมถึงโครงสร้างการเร่งความเร็วเช่น Bounding Volume Hierarchies (BVH) สำหรับส่วนประกอบ raytracer และอัลกอริทึมที่ปรับปรุงสำหรับ rasterizer การปรับปรุงเหล่านี้อาจช่วยแก้ไขข้อจำกัดด้านประสิทธิภาพที่มีอยู่ในการเรนเดอร์ด้วยซอฟต์แวร์เมื่อเทียบกับการเร่งความเร็วด้วยฮาร์ดแวร์
โปรเจกต์นี้ยังรวมถึงส่วนประกอบ raytracer ที่วางแผนไว้ (ซึ่งถูกเรียกอย่างขบขันว่า FINAL DESTINATION ในเอกสาร) ซึ่งจะเสริมฟังก์ชันการทำงานของ rasterizer ที่มีอยู่ แนวทางแบบคู่นี้มอบความยืดหยุ่นสำหรับความต้องการในการเรนเดอร์และกรณีการใช้งานที่แตกต่างกัน
สำหรับนักพัฒนาที่สนใจสำรวจพื้นฐานของกราฟิกคอมพิวเตอร์หรือต้องการความสามารถในการเรนเดอร์ในสภาพแวดล้อมที่ไม่มีการเร่งความเร็วด้วยฮาร์ดแวร์ VSC Verified เป็นทรัพยากรที่มีประโยชน์ทั้งด้านการศึกษาและการใช้งานจริง ในขณะที่การเรนเดอร์ด้วยซอฟต์แวร์ยังคงหาช่องทางในการใช้งานเฉพาะทาง โปรเจกต์เช่นนี้แสดงให้เห็นว่าบางครั้งการกลับไปที่พื้นฐานสามารถเปิดโอกาสใหม่ๆ ได้
อ้างอิง: VSC (VOUGA-SHREINER-CANTH) Verified