Làm cách nào để sử dụng OpenGL hiện đại cho các trò chơi 2D?


9

Tôi đã tìm thấy rất nhiều hướng dẫn OpenGL (3.0+) dành cho 3D, nhưng tôi không tìm thấy gì khi tìm kiếm thông tin về cách sử dụng nó để phát triển trò chơi 2D. Làm cách nào tôi có thể bắt đầu sử dụng OpenGL cho gamedev 2D?

Cụ thể, tôi quan tâm đến việc nhận câu trả lời cho các chủ đề sau:

  • Làm thế nào tôi nên thiết lập các ma trận khác nhau của mình để chiếu chính tả?
  • Các shader có được sử dụng nhiều trong các ứng dụng 2D như trong 3D không? Nếu vậy, mục đích của họ trong cài đặt 2D là gì?
  • Làm thế nào tôi nên xử lý số lượng lớn kết cấu rõ ràng cần thiết cho một trò chơi 2D?

Tôi xin lỗi vì câu hỏi tương đối rộng, nhưng tôi đã mất một thời gian dài để tìm kiếm và tôi đã tìm thấy rất ít thông tin hữu ích áp dụng cho OpenGL hiện đại.

Câu trả lời:


11
  • Làm thế nào tôi nên thiết lập các ma trận khác nhau của mình để chiếu Chính tả?

Mục tiêu của bạn là 2D, phải không? Vì vậy, bạn không cần bất kỳ dự đoán. Phép chiếu là hành động cô đọng một thế giới 3D thành mặt phẳng 2D. Đặt shader để nó mặc định tọa độ Z của mọi đỉnh 0.0và bạn sẽ được đặt.

Bạn có thể sử dụng ma trận tỷ lệ cho tọa độ X và Y. Thu nhỏ nó -10.0để 10.0trở thành-1.0 tới 1.0. Đối với tài liệu tham khảo, ma trận để làm điều đó là:

0.1   0.0   0.0
0.0   0.1   0.0
0.0   0.0   1.0
  • Các shader có được sử dụng nhiều trong các ứng dụng 2D như trong 3D không? Nếu vậy, mục đích của họ trong cài đặt 2D là gì?

Họ có thể. Chúng vẫn có thể được sử dụng để chiếu sáng Per-Pixel, tạo độ sâu giả cho các vật thể. Chúng cũng có thể được sử dụng cho các hiệu ứng kết cấu, hiệu ứng nước, tạo hình ảnh ... thậm chí bạn có thể sử dụng chúng để tính toán vật lý với một chút mánh khóe.

Một cách khác để đặt đó là: Mọi thứ chúng được sử dụng cho 3D. Nó chỉ được áp dụng khác nhau, và không phải là tài liệu tốt. Mặc dù những người chơi trò chơi 2D có thể sẽ không gặp phải trường hợp của bạn nếu bạn không có hiệu ứng giống như thật, vì vậy họ cũng không bắt buộc.

Mặc dù bạn sẽ cần phải biết những điều cơ bản của shader để hiển thị một sprite nào.

  • Làm thế nào tôi nên xử lý số lượng lớn kết cấu rõ ràng cần thiết cho một trò chơi 2D?

Giống như bạn làm trong 3D. Bunches of Texture Object, PBO's và Texture Atlas hoặc một vài thứ. Có lẽ một vài cấu trúc / lớp, và đau đầu là tốt. Tôi nghĩ rằng nó sẽ được gọi là "Quản lý tài sản", hoặc một cái gì đó tương tự.

  • Làm thế nào tôi có thể bắt đầu với 2D gamedev?

Có lẽ có một vài hướng dẫn ra khỏi đó. Mặc dù, vì phiên bản 3D phổ biến hơn, tôi sẽ nói rằng hãy học OpenGL cho 3D và sau đó áp dụng những gì bạn học được cho phiên bản 2D. 3D và 2D rất giống nhau, 2D chỉ không theo dõi tọa độ Z.


5
Đối với 2D, bạn vẫn có thể sử dụng phép chiếu chính tả và các tọa độ Z khác nhau để thực hiện đệm Z , nếu không, bạn phải tự thực hiện thuật toán của họa sĩ và vẽ theo đúng thứ tự.
congusbongus

@congusbongus thực sự, nếu bạn đang phát triển với tính minh bạch, rất có thể bạn sẽ phải tự mình thực hiện thuật toán của họa sĩ ...
Panda Pajama
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.