ฉันจะเริ่มต้นสิ่งนี้ด้วยการเชื่อมโยงไปยังคำอธิบายว่ารุ่น OpenGL ทำงานอย่างไร กล่าวโดยย่อ OpenGL (โดยทั่วไป) สามารถใช้งานร่วมกับรุ่นหลังได้ดังนั้นรหัส GL 3 ทั้งหมดทำงานได้ดีในการใช้งาน GL 4
ซีรี่ส์ 4.x ของรุ่น OpenGL แสดงถึงสิ่งที่คุณอาจเรียกว่าฮาร์ดแวร์ระดับ Direct3D 11 มันแสดงถึงการทำงานของฮาร์ดแวร์นั้น ฮาร์ดแวร์ D3D10 แสดงด้วย OpenGL เวอร์ชัน 3.x ดังนั้น "การย้ายไปยัง openGL 4" หมายถึงการละทิ้งฮาร์ดแวร์ที่ต่ำกว่าหรือมีเส้นทางการแสดงผลหลายเส้นทาง
การแบ่งรายละเอียดของการเปลี่ยนแปลงคุณลักษณะที่เกิดขึ้นจริงระหว่าง 3.3 และ 4.2 ที่สามารถพบได้ใน4.2 สเปค โปรดทราบว่าคุณสมบัติหลายอย่าง (split_shader_objects, shading_language_420pack, texture_storage) ไม่ได้ จำกัด อยู่ที่ฮาร์ดแวร์ 4.x เท่านั้น เป็นการเปลี่ยนแปลง API และคุณสามารถเข้าถึงได้บนฮาร์ดแวร์ 3.x ผ่านส่วนขยาย
คำถามที่สำคัญที่สุดคือ: GL 4.x อนุญาตให้ฉันทำอะไรได้บ้างที่ฉันไม่สามารถใช้ฮาร์ดแวร์ 3.x ได้
Tessellation น่าจะเป็นคุณสมบัติที่รู้จักกันดีที่สุด มันอาจเป็นประโยชน์น้อยที่สุด ไม่ได้หมายความว่ามันไร้ประโยชน์ การใช้ tessellation อย่างเหมาะสมสามารถเพิ่มรายละเอียดในแบบจำลองได้ แต่สำหรับฉันอย่างน้อยมันก็ไม่ใช่สิ่งที่ดีที่สุดที่ GL 4 จะทำ
รูทีนย่อย Shader เป็นแนวคิดที่น่าสนใจ สิ่งนี้ช่วยให้คุณสามารถรวมส่วนต่าง ๆ ของเฉดสีได้แบบไดนามิก คุณสามารถแนบฟังก์ชั่นมากขึ้นหรือน้อยลงกับจุดผูกที่ระบุในโปรแกรม สเปคนั้นค่อนข้างยากที่จะติดตาม แต่มันใช้งานได้ดี
ฉันจะบอกว่าโหลดภาพ / สโตร์น่าจะเป็นสิ่งที่ถูกมองข้ามมากที่สุด ด้วยความสามารถนี้คุณสามารถใช้ความโปร่งใสโดยไม่ขึ้นกับคำสั่งกับประสิทธิภาพที่ดีเท่า OIT อาจมีการใช้งานอื่น ๆ อีกมากมายสำหรับการโหลด / จัดเก็บภาพ แต่มันจะทำให้คนฉลาดขึ้นมาคิดออก
มีอัตราต่อรองและสิ้นสุดใน GL 4 บางอย่างเช่นการรองรับความแม่นยำสองเท่าและการเรนเดอร์ทางอ้อม สิ่งเหล่านี้เป็นสไตล์ GPGPU มากกว่าดังนั้นจึงอาจไม่มีประโยชน์ในเกมมากนัก
แต่โดยทั่วไปแล้ว GL 4 จะไม่เปลี่ยนวิธีการใช้คุณลักษณะ X จาก GL 3 อย่างสิ้นเชิง