วิธีการใช้ OpenGL ที่ทันสมัยสำหรับเกม 2D?


9

ฉันพบบทแนะนำ "ทันสมัย" OpenGL (3.0+) มากมายสำหรับ 3D แต่ฉันพบว่าไม่มีอะไรเลยเมื่อมองหาข้อมูลเกี่ยวกับวิธีใช้สำหรับการพัฒนาเกม 2D ฉันจะเริ่มต้นใช้งาน OpenGL สำหรับ 2D gamedev ได้อย่างไร

โดยเฉพาะฉันสนใจรับคำตอบของหัวข้อต่อไปนี้:

  • ฉันจะตั้งค่าเมทริกซ์ต่าง ๆ สำหรับการฉายภาพแบบออโธกราฟฟิคได้อย่างไร?
  • มีการใช้เฉดสีอย่างมากในแอปพลิเคชัน 2D เหมือนกับใน 3D หรือไม่? ถ้าเป็นเช่นนั้นอะไรคือวัตถุประสงค์ของพวกเขาในการตั้งค่า 2D?
  • ฉันจะจัดการกับพื้นผิวจำนวนมากที่จำเป็นสำหรับเกม 2D ได้อย่างไร

ฉันขอโทษสำหรับคำถามที่ค่อนข้างกว้าง แต่ฉันใช้เวลานานในการค้นหาและฉันพบข้อมูลที่มีประโยชน์น้อยมากที่ใช้กับ OpenGL ที่ทันสมัย

คำตอบ:


11
  • ฉันจะตั้งค่าเมทริกซ์ต่างๆสำหรับการฉายภาพแบบออร์โทกราฟได้อย่างไร?

เป้าหมายของคุณคือ 2D ใช่มั้ย ดังนั้นคุณไม่จำเป็นต้องฉายภาพใด ๆ การฉายภาพเป็นการรวมตัวของโลก 3 มิติเข้ากับระนาบ 2D ตั้งค่า shader เพื่อให้ค่าพิกัด Z ของแต่ละจุดสุดยอดเป็นค่าเริ่มต้น0.0และคุณควรตั้งค่า

คุณอาจใช้สเกลเมทริกซ์สำหรับพิกัด X และ Y Scaling มันเพื่อ-10.0ที่จะ10.0กลายเป็นไป-1.0 1.0เพื่อประโยชน์ในการอ้างอิงเมทริกซ์ที่ต้องทำนั่นคือ:

0.1   0.0   0.0
0.0   0.1   0.0
0.0   0.0   1.0
  • มีการใช้เฉดสีอย่างมากในแอปพลิเคชัน 2D เหมือนกับใน 3D หรือไม่? ถ้าเป็นเช่นนั้นอะไรคือวัตถุประสงค์ของพวกเขาในการตั้งค่า 2D?

พวกเขาสามารถเป็น. พวกเขายังคงสามารถใช้สำหรับแสง Per-Pixel ให้ความลึกของปลอมกับวัตถุ พวกเขายังสามารถใช้สำหรับเอฟเฟกต์พื้นผิวเอฟเฟกต์น้ำการสร้างภาพ ... คุณสามารถใช้พวกมันเพื่อทำการคำนวณทางฟิสิกส์ด้วยการใช้เล่ห์เหลี่ยม

อีกวิธีในการใส่นั่นคือ: ทุกอย่างที่ใช้สำหรับ 3D มันมีการใช้งานที่แตกต่างกันและไม่มีการจัดทำเป็นเอกสาร แม้ว่าคนที่เล่นเกม 2D อาจไม่ได้รับความสนใจหากคุณไม่มีเอฟเฟกต์เหมือนจริงดังนั้นพวกเขาจึงไม่จำเป็นเช่นกัน

แม้ว่าคุณจะต้องรู้พื้นฐานของเฉดสีเพื่อแสดงสไปรต์อยู่ดี

  • ฉันจะจัดการกับพื้นผิวจำนวนมากที่จำเป็นสำหรับเกม 2D ได้อย่างไร

เช่นเดียวกับใน 3D Bunches ของ Texture Objects, PBO's และ Atlas Texture หรือบางอย่าง อาจเป็นโครงสร้าง / คลาสไม่กี่และปวดหัวเช่นกัน ฉันคิดว่าจะเรียกว่า "การจัดการสินทรัพย์" หรือบางสิ่งที่คล้ายกัน

  • ฉันจะเริ่มต้นกับ 2D gamedev ได้อย่างไร

อาจมีแบบฝึกหัดเล็กน้อยอยู่ที่นั่น ถึงแม้ว่าตั้งแต่รุ่น 3D จะเป็นเรื่องธรรมดาฉันจะบอกว่าจะเรียนรู้ OpenGL สำหรับ 3D แล้วนำสิ่งที่คุณเรียนรู้ไปใช้กับมันเป็นคู่ 2D 3D และ 2D คล้ายกันมาก 2D ไม่ได้ติดตามพิกัด Z


5
สำหรับ 2D คุณยังสามารถใช้การฉายภาพ orthographic และพิกัด Z ที่แตกต่างกันเพื่อทำบัฟเฟอร์ Zไม่เช่นนั้นคุณจะต้องทำอัลกอริทึมของจิตรกรเองและวาดตามลำดับที่ถูกต้อง
congusbongus

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