Freeglut vs SDL vs GLFW


26

Tôi cần chuyển dự án trò chơi của mình từ Android (viết bằng C, OpenGL ES 2.0, nhờ NDK) sang nền tảng Windows và Linux. Tất nhiên tôi sẽ cần phải viết lại một số mã phụ thuộc nền tảng, nhưng bây giờ tôi bị mắc kẹt với câu hỏi thư viện nào để tạo OpenGL và xử lý đầu vào sử dụng.

Chỉ cần một người nhanh chóng nhận được 3 ứng cử viên:

1) Freeglut - viết lại và GLUT cũ tốt miễn phí.
2) SDL - hầu hết đều biết một lib, được sử dụng trong nhiều trò chơi.
3) GLFW - một số loại mới, nhưng đơn giản và chức năng.

Tôi chỉ mới phát triển PC và không thấy bất kỳ sự khác biệt đáng kể nào. Bạn có thể giúp tôi chọn cái nào không? Tôi rõ ràng chỉ cần nhập chuột / bàn phím lõi và tạo bối cảnh OpenGL, tôi cũng sẽ sử dụng GLEW để truy cập OpenGL hiện đại một cách dễ dàng.


2
Câu trả lời sẽ được đánh giá cao và không thực sự là một câu hỏi hay cho định dạng SE. Điều đó nói rằng, câu trả lời rất quan tâm của tôi - đã sử dụng cả ba cho các dự án thực tế và một vài giải pháp khác như SFML, GLUT, Qt và giải pháp bằng tay - là SDL cung cấp kết hợp tốt các tính năng, ổn định và dễ dàng sử dụng. Tôi đặc biệt khuyên dùng các phiên bản 2.0 trước khi phát hành (chỉ có sẵn bằng cách kiểm tra repo Mercurial và tự xây dựng, nhưng điều đó khá dễ dàng). Thứ hai, SFML là khá tốt. Tôi đã tìm thấy quá nhiều lỗi trong GLFW, GLUT rất tệ cho các trò chơi và việc lăn tay là rất nhiều công việc.
Sean Middleditch

Cá nhân tôi muốn giới thiệu SDL vì nó xử lý tất cả các phần của trò chơi từ đầu vào đến đồ họa đến âm thanh và đầu vào. Tuy nhiên, điều đó có thể hạn chế, nhưng vì bạn đến từ một trò chơi đã được phát triển cho một nền tảng hạn chế hơn, tôi nghĩ đó sẽ là một lựa chọn tốt.
CobaltHex

Vâng, đó là một cuộc thăm dò. Phiếu bầu của tôi là GLFW, đơn giản, dễ dàng, không bao giờ có bất kỳ vấn đề nào chưa được giải quyết. Nó là trọng lượng siêu nhẹ và dễ dàng để biên dịch là tốt.
giảm tốc

Câu trả lời:


29

GLFW hiện đạicó phạm vi được xác định rất rõ . Nó cũng đang được phát triển rất tích cực.

Mặt khác, SDL là đá rắn và có nhiều tính năng ở các phạm vi khác nhau nhưng hơi thiếu tất cả (ví dụ: SDL có thể làm âm thanh, nhưng bạn có thể thích sử dụng OpenAL hơn vì vấn đề đó vượt trội hơn nhiều). Có thể đáng chú ý là SDL đã được chuyển sang nhiều nền tảng khác nhau, không giống như GLFW chỉ dành cho nền tảng máy tính để bàn (win / linux / mac).

GLUT , tốt, nên tránh . Đơn giản là không có gì thực sự về nó, điều gì làm cho nó tốt.


Theo tôi, người cầu toàn GLFW là sự lựa chọn tốt hơn. Bởi vì nó làm chính xác những gì người ta muốn, không hơn không kém. Sự phát triển rất tích cực cũng là một dấu hiệu tốt cho các dự án dài hạn bởi vì điều đó thường có nghĩa là các lỗi sẽ được sửa chữa, các tính năng mới sẽ được thêm vào, nó sẽ theo kịp các tiêu chuẩn mới hơn và nó sẽ không bị loại bỏ bất cứ lúc nào gần. Điều này không quan trọng đối với một cổng nhanh hoặc trò chơi 6 tháng, nhưng đối với một công cụ hoặc thư viện mà bạn muốn sử dụng lại, tôi sẽ ghi nhớ điều đó.


7
Nhưng OP đang hỏi về Freeglut chứ không phải GLUT !!!

@ user3473 "FreeGLUT là một thay thế nguồn mở cho thư viện Bộ công cụ tiện ích OpenGL (GLUT)."
YoYoYonnY

@YoYoYonnY Cả GLFW và SDL cũng vậy, vì vậy câu hỏi này.
Dan

@Dan ... không. GLFW và đặc biệt là SDL chắc chắn không phải là lựa chọn thay thế cho GLUT, bởi vì bạn có thể làm những việc với họ mà bạn không thể với GLUT và ngược lại.
YoYoYonnY

@YoYoYonnY Bạn có thể làm mọi thứ với FreeGLUT mà bạn không thể làm với GLUT. Quan điểm của tôi vẫn đứng vững.
Dan
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.