OpenGL vs OGRE: ไหนดีที่สุดสำหรับมือใหม่? [ปิด]


10

ฉันสนใจที่จะเข้าสู่การพัฒนาเกมและมีทักษะการเขียนโปรแกรม C / C ++ ที่ดี ฉันเคยลอง OGRE มาก่อนและฉันอยากรู้ว่าควรเรียนรู้ OGRE หรือ OpenGL เป็นจุดเริ่มต้นหรือไม่

จากความเข้าใจของฉัน OGRE เป็นเสื้อคลุมสำหรับ OpenGL และ DirectX ดังนั้นฉันควรเรียนรู้เกี่ยวกับ OGRE ฉันยังต้องเรียนรู้ OpenGL เพื่อพัฒนาเกมหรือไม่?

นอกจากนี้บางคนชี้ให้ฉันเห็นการสอนที่ดีสำหรับ OpenGL ได้หรือไม่ ฉันพบว่า OGRE ได้รับการบันทึกไว้อย่างดี (ถึงแม้จะมาพร้อมกับการแจกจ่าย!) แต่สำหรับ OpenGL บทเรียนส่วนใหญ่ที่ฉันเข้ามานั้นล้าสมัยแล้ว


หากคุณเป็นผู้เขียนโปรแกรมกราฟิกสามมิติใหม่ล่าสุดฉันจะพยายามทำความเข้าใจถึงวิธีที่ API ระดับต่ำทำงานก่อน (OpenGL หรือ D3D มันไม่สำคัญเลย) จากนั้นสลับไปใช้โปรแกรมกราฟิกสำเร็จรูปเช่น เป็น OGRE เพื่อให้คุณสามารถมุ่งเน้นไปที่แอพพลิเคชั่น / เกมของคุณแทนที่จะแสดงผลการออกแบบ / พัฒนาเครื่องยนต์
drxzcl

1
ฉันจะไปหา 2D ก่อนแทนที่จะเป็น 3D
The Duck คอมมิวนิสต์เมื่อ

1
2D ส่วนใหญ่ไม่ใช่แค่ "3 มิติที่ไม่มี Y" และมีสำนวนและเทคนิคการใช้งานของตัวเองฉันไม่แน่ใจว่าการติดตามด้านข้างไปสู่ ​​2D จะดีสำหรับคนที่มี "good c / c ++" อยู่แล้ว
Patrick Hughes

ทำไมคำถามนี้ไม่สร้างสรรค์
แต่งเพลง

คำตอบ:


13

Ogre นั้นเป็น wrapper สำหรับ OpenGL แต่ความคิดของ wrapper นั้นก็คือคุณไม่ต้องกังวลกับความซับซ้อนของ OpenGL แน่นอนว่ามันจะช่วยให้ทราบเกี่ยวกับ OpenGL เล็กน้อย แต่ Ogre จะซ่อนรายละเอียดที่น่าเกลียดมากมายสำหรับคุณ

ฉันจะบอกว่า Ogre เป็นเนื้อหาที่เรียนรู้ได้ง่ายกว่า OpenGL หรืออย่างน้อยก็จะทำให้คุณได้รับผลลัพธ์ที่น่าสนใจเร็วขึ้น แน่นอนว่ามันขึ้นอยู่กับสิ่งที่คุณต้องการจะทำเพื่อประเมินว่ามันคุ้มค่าที่จะเรียนรู้ OpenGL

เกี่ยวกับบทเรียนของ OpenGL ใช่ว่าพวกเขาส่วนใหญ่ล้าสมัยไปแล้ว แต่สเป็คยังไม่ได้ดำเนินการอย่างรวดเร็วดังนั้นบทเรียนเก่า ๆ เหล่านั้นยังคงใช้กับ OpenGL ส่วนใหญ่

รายการโปรดของฉัน:


28
โปรดโปรดหยุดส่งคนไปยัง NeHe บทเรียนนั้นดี แต่ล้าสมัยอย่างไม่น่าเชื่อ วันที่ของ OpenGL 1.x หายไปนานแล้วเราจะไม่ทำลายคนเขียนโปรแกรมกราฟิกรุ่นต่อไปทันที!
drxzcl

5
ดู "คำแนะนำเกี่ยวกับ OpenGL สมัยใหม่": duriansoftware.com/joe/…
drxzcl

1
@Ranieri ฉันเห็นด้วยอย่างยิ่ง เว็บไซต์ยังคงเหมือนเดิมเป็นเวลาหลายปีและตอนนี้ที่ OpenGL ได้เปลี่ยนแปลงไปอย่างมากในช่วงสองสามปีที่ผ่านมา @Songbreaker โปรดจดบันทึกสิ่งนี้และพิจารณาหลีกเลี่ยงบทเรียนของ NeHe หรืออย่างน้อยก็พาพวกมันไปด้วยเกลือ ท่อคงที่หายไปนาน
Ricket

1
@ Ranieri, @ Ricket ฉันไม่เห็นด้วยอย่างยิ่ง พิจารณาช่วงการเรียนรู้สำหรับ OpenGL 4.x สำหรับผู้เริ่มต้นที่ไม่คุ้นเคยกับการเขียนโปรแกรมกราฟิกอย่างสมบูรณ์และกำลังหยิบ SDK ขึ้นมาด้านข้างในเวลาว่างโดยไม่มีคำแนะนำ เอกสารประกอบสำหรับ OpenGL 4.x เป็นอย่างไร ดูโพสต์ของฉันสำหรับรายละเอียดเพิ่มเติม
Andrew Rasmussen

4
@Songbreaker: ฉันพยายาม ฉันจะปล่อยให้คุณตัดสินใจว่ามันดีหรือไม่
Nicol Bolas

17

OpenGL! ใช่ฉันไม่เห็นด้วยอย่างเปิดเผยกับทุกคนในบอร์ดนี้

OGRE เป็นระเบียบ เส้นโค้งการเรียนรู้สูงชัน ใช่พวกเขามีแบบฝึกหัดที่ดี แต่การก้าวออกนอกขอบเขตของบทเรียนและการทำสิ่งต่าง ๆ ของคุณนั้นยากมาก ฉันคาดว่าจะใช้เวลาสามสัปดาห์ก่อนที่คุณจะสามารถตั้งค่า OGRE และทำงานทำงานผ่านแบบฝึกหัดและหาว่าต้องทำอะไรต่อไป ไม่มีอะไรเกี่ยวกับ OGRE ที่ดีกว่าหรือง่ายกว่า OpenGL มาก หากคุณเป็นโปรแกรมเมอร์ C ที่ดีอย่างที่คุณอ้างไว้และคุณเข้าใจพอยน์เตอร์ / อาร์เรย์ / ฟังก์ชั่นของคุณ OpenGL จะง่ายเหมือนกันถ้าไม่ง่ายขึ้น

นั่นเป็นเหตุผลที่ฉันขอแนะนำให้เริ่มต้นด้วย OpenGL OpenGL จะบังคับให้คุณเรียนรู้พื้นฐานของกราฟิกทั้งหมด มันน่าสนใจมากขึ้นเมื่อคุณจะรู้ว่าสิ่งที่เกิดขึ้นนั้นเป็นพื้นหลัง และใช่เริ่มต้นด้วยแบบฝึกหัดของ NeHe ใช่พวกเขาคือ 1.x ซึ่งล้าสมัยมาก (สำหรับคุณ Ranieri) แต่การกระโดดเข้าสู่ OpenGL 4.x นั้นสูงเกินไปสำหรับการเรียนรู้

เริ่มต้นด้วยโหมดทันทีใน 1.x (glBegin, glEnd) จากนั้นเรียนรู้เกี่ยวกับ Vertex Arrays หากคุณต้องการเล่นกับรายการที่แสดงเพื่อเรียนรู้ จากนั้นเลื่อนไปยังวัตถุบัฟเฟอร์จุดสุดยอด จากนั้นเรียนรู้เกี่ยวกับเฉดสี การเปลี่ยนแต่ละครั้งนั้นง่ายมากและมีบทเรียนออนไลน์มากมาย VBO อยู่ในแกนหลักของ 4.1 ดังนั้นตามเวลาที่คุณทำที่นั่นคุณจะไม่ได้เรียนรู้เนื้อหาที่ล้าสมัยอีกต่อไป

นอกจากนี้หากคุณต้องการอาชีพพัฒนาเกมไม่มีใครจะจ้างคุณเพราะคุณสามารถสร้างคิวบ์ในห้องสมุดชั้นวาง พวกเขาจะจ้างคุณเพราะคุณเข้าใจสิ่งที่เกิดขึ้นในระดับต่ำสุดเท่าที่จะเป็นไปได้และคุณสามารถตัดสินใจออกแบบโดยใช้ความรู้ที่มีค่านั้น

การอ้างอิง: ฉันเป็นที่ที่คุณอยู่ ฉันใช้เวลาหนึ่งเดือนกับ OGRE สัปดาห์หนึ่งลอง Irrlicht หนึ่งสัปดาห์ลอง Horde3d เล่นสองวันกับ DirectX และเล่นกับ OpenGL หนึ่งเดือน หลังจากหนึ่งเดือนกับ OGRE ฉันแทบจะไม่สามารถไปไกลกว่าขอบเขตของบทเรียน หลังจากหนึ่งเดือนกับ OpenGL ฉันมีตัวละครวิ่งรอบโลก minecraftian การแสดงผล 260,000 cubes textures ต่อเฟรมที่มี 700+ framerate


ฉันไม่เห็นด้วยกับข้อความของคุณและฉันไม่คิดว่าประสบการณ์ที่คุณเปิดเผยมีความหมายใด ๆ ทั้ง Ogre และ OGL ต้องการให้คุณมีความรู้พื้นฐานเกี่ยวกับวิธีการพูดคุยกับกราฟิกการ์ดซึ่งไม่ได้หมายความว่าคุณต้องรู้จัก OGL หรือ DX แต่โดยพื้นฐานแล้วคุณต้องรู้ว่าพวกเขาสามารถทำอะไรได้บ้าง ณ จุดนี้ Ogre เพิ่มเลเยอร์ที่ผู้เริ่มต้นใช้เวลาหลายเดือนในการตั้งค่าอย่างถูกต้องและคุณไม่สามารถเห็นตัวอย่างที่คุณติดตั้งในหนึ่งเดือน เป็นเรื่องดีเสมอที่จะได้รู้จัก OGL แต่การเลิก Ogre เนื่องจากประสบการณ์ของคุณไม่ได้มีความหมายอะไรเลย
Klaim

1
ไม่ OGRE ไม่ต้องการให้คุณรู้วิธีพูดคุยกับการ์ดแสดงผลนั่นคือประเด็น นอกจากนี้ OGRE ไม่ได้เป็นเพียงแค่ wrapper รอบ ๆ กราฟิค API มันยังเป็นตัวจัดการซีน, ตัวโหลดโมเดลและอื่น ๆ อีกมากมาย
Jarrett

5

คำตอบสั้น ๆ ผีปอบ

คำตอบที่ยาวนาน OGRE เป็น wrapper บน OpenGL ดังนั้นคุณต้องทำงานให้น้อยลง คุณไม่ต้องกังวลมากเกี่ยวกับการส่งข้อมูลไปยัง GPU หรือ shaders ที่มีผลผูกพันหรือแยกแยะจุดยอดในระดับต่ำ มันเร็วกว่าการใช้ OGRE มากกว่าการใช้ OpenGL สำหรับการผลิตและโอกาสที่รหัสของคุณก็จะเร็วขึ้นเช่นกัน

หากคุณสนใจพัฒนาเครื่องยนต์ให้ใช้ GL มิฉะนั้นให้ใช้ OGRE และฉันอาจเริ่มด้วย OGRE ต่อไป


3

การรู้ฮาร์ดแวร์กราฟิกคอมพิวเตอร์ไม่จำเป็นสำหรับการพัฒนาเกม จำเป็นต้องเป็นโปรแกรมเมอร์กราฟิกหรือเป็นส่วนหนึ่งของทีมพัฒนา dev ใน บริษัท เกม (หมายเหตุส่วนตัว: ซึ่งสนุกที่สุดในการพัฒนาเกมทั้งหมด :))

หากคุณไม่ต้องการเป็นวิศวกรเรนเดอร์คุณไม่จำเป็นต้องเรียนรู้ทั้ง openGL หรือ DX เพื่อพัฒนาเกม


2

ฉันจะเถียงไม่ดีที่สุดสำหรับผู้เริ่มต้น แต่แล้ว "ดีที่สุด" เป็นคำที่เกี่ยวข้องซึ่งขึ้นอยู่กับสิ่งที่คุณต้องการได้รับ ตัวอย่างเช่นหากสิ่งที่คุณต้องการคือการเรียนรู้การเขียนโปรแกรมกราฟิก 3D เพื่อเพิ่มทักษะที่คุณสามารถใช้เพื่อให้ได้งานเป็นโปรแกรมเมอร์กราฟิก 3D สำหรับ บริษัท เกมตัวเลือกเหล่านั้นสมเหตุสมผล ด้วยเป้าหมายนี้คุณอาจดู DirectX

อย่างไรก็ตามหากคุณมีเป้าหมายอื่นใดในใจฉันขอแนะนำให้ดูตัวเลือกอื่น ๆ สำหรับผู้เริ่มต้นในขณะที่คำถามของคุณจะถือว่าคุณต้องการมีส่วนร่วมในการพัฒนาเกมในฐานะโปรแกรมเมอร์ แต่คุณไม่ได้ระบุอย่างนั้น ทั้งการเขียนเอ็นจิ้นกราฟิกใน OpenGL และสิ่งปลูกสร้างด้านบนของ Ogre นั้นแน่นอนสำหรับโปรแกรมเมอร์แบบคอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.