มีบทช่วยสอนที่ดีที่แสดงความแตกต่างระหว่าง OpenGL 1 * และ 2 * หรือไม่?
มันจะมีประโยชน์มากหากรู้ว่าฟังก์ชั่นใดที่ฉันไม่ควรเรียก (เช่น glBegin () ฉันถือว่า)
มีบทช่วยสอนที่ดีที่แสดงความแตกต่างระหว่าง OpenGL 1 * และ 2 * หรือไม่?
มันจะมีประโยชน์มากหากรู้ว่าฟังก์ชั่นใดที่ฉันไม่ควรเรียก (เช่น glBegin () ฉันถือว่า)
คำตอบ:
OpenGL.org การเริ่มต้นหน้ามีภาพรวมที่มีมากมายของการเชื่อมโยงการสอนต่างๆ
ในระยะสั้น OpenGL 2.0 อยู่ระหว่างฟังก์ชั่นคงที่ (1.x) และโลกที่ตั้งโปรแกรมได้อย่างเต็มที่ (2.x +) คุณยังสามารถใช้ทุกสิ่งที่ OpenGL 1.x มีได้ในขณะที่เพิ่มเฉดสี ก้าวไปข้างหน้า (3.x +) ระบบฟังก์ชั่นคงที่เก่า ๆ ทุกประเภทเริ่มที่จะถูกปฏิเสธแม้ว่ามันจะเป็นการดีกว่าถ้าคุณเริ่มต้นใหม่ทั้งหมดแทนที่จะผสมกันทั้งสองโลก
ฉันก็ประหลาดใจที่สิ่งนี้ไม่เคยถูกถามมาก่อน .. หรืออย่างน้อยฉันก็ไม่พบมันในการค้นหาที่รวดเร็ว
รุ่น OpenGL โดยและขนาดใหญ่ไม่เหมือนกับรุ่น Direct3D รหัสเดิมของคุณยังใช้งานได้กับเวอร์ชันใหม่ (ยกเว้นหนึ่งข้อ) ดังนั้น OpenGL v1.4 จะทำงานได้ดีภายใต้ OpenGL 2.1 รุ่น OpenGL เป็นการเพิ่มเติมไม่ใช่การลบ
OpenGL 2.0 และ 2.1 เพิ่มเฉดสีในภาษา OpenGL Shading Language พวกเขายังเพิ่มคุณสมบัติอื่น ๆ อีกหลายอย่างเช่นพื้นผิวที่เป็นจุดลอยตัวพื้นผิวที่ไม่ได้ใช้กำลังของสองและอื่น ๆ รายการเต็มรูปแบบที่มีอยู่ในOpenGL 2.1 สเปคตัวเอง เพียงดูที่ส่วน "เวอร์ชั่น" พวกเขาจะบอกคุณว่ามีการเปลี่ยนแปลงอะไรจากรุ่นก่อนหน้า
ข้อยกเว้นเฉพาะกฎเกี่ยวกับการเปลี่ยนแปลง API คือ OpenGL 3.1 (ใช่, 3.1, ไม่ใช่ 3.0) ใน OpenGL 3.0 API จำนวนหนึ่งถูกกำหนดเป็น "เลิกใช้แล้ว" ซึ่งหมายความว่า ARB ซึ่งเป็นคณะกรรมการที่ดูแล OpenGL สามารถลบฟังก์ชั่นเหล่านี้ออกจากรุ่นที่ใหม่กว่าได้ การลบนี้เกิดขึ้นใน OpenGL 3.1 ข้อมูลจำเพาะ 3.0 มีรายการใหญ่ของสิ่งที่คัดค้านในนั้นและข้อมูลจำเพาะ 3.1 ถูกลดลงตามลำดับ
โปรดทราบว่าคุณไม่ต้องกังวล (อย่างน้อยใน Windows และ Linux MacOSX นั้นแตกต่างกัน) คุณสามารถทำงานได้ดีในโหมด " ความเข้ากันได้ " ซึ่งคุณสมบัติที่ถูกลบไปก่อนหน้านี้ทั้งหมดกลับมา การติดตั้ง OpenGL ไม่จำเป็นต้องรองรับบริบทความเข้ากันได้ (และ Mac OS X Lion ไม่รองรับมันรองรับทั้ง 2.1 หรือ 3.2 คอร์ตามที่คุณร้องขอ) แต่ทั้งหมดยังคงทำอยู่ เพียงเพื่อย้อนกลับเข้ากันได้กับแอปพลิเคชันรุ่นเก่า
ฉันเชื่อว่ามีบทเรียนสำหรับ opengl 1.x และ 2.x แต่มีแนวโน้มมากที่สุดที่จะไม่แสดงบทเรียนว่าพวกเขาแตกต่างกับคุณสมบัติหรือใช้งานง่ายอย่างไรเป็นต้น
อาจเป็นการดีที่สุดที่จะค้นหาบทช่วยสอนสำหรับรุ่น OpenGL ที่เฉพาะเจาะจงค้นหาแบบฝึกหัดที่คล้ายกันและเปรียบเทียบด้วยตัวคุณเอง