2013-03-25 49 views
36

Gần đây tôi đã bắt đầu học OpenGL (> 3.3) & Tôi đã nhận thấy rất nhiều ví dụ & hướng dẫn sử dụng cả freeglut & glew, nhưng không thực sự giải thích sự khác biệt chút nào. Mô tả tốt nhất tôi đã tìm thấy, sau khi googling & đọc quảng cáo nauseum, đã là số này OpenGL Related toolkits and APIs nhưng thấy nó thiếu. Tôi thậm chí đã đọc thông tin thẻ trên SO.
sự khác biệt của freeglut vs glew?

Là một người mới thực sự làm quen với OpenGL, tôi vẫn đang cố nắm bắt các khái niệm khác nhau. Tôi đã đến giai đoạn tạo ra một chương trình cơ bản sử dụng glew, tạo bối cảnh (trên windows, VS2010), & vẽ các hình dạng thực sự cơ bản, tất cả mà không cần phải bao gồm một cách rõ ràng. Vì vậy, tôi không hiểu tại sao tôi cần nó.

Vì vậy, câu hỏi của tôi thì là, là những gì khác biệt giữa:
-freeglut
-glew
- (& glfw)
gì người ta có thể làm rằng người khác không thể ?

+3

Nhưng đó chỉ là nó, như tôi đã nói, tất cả các ví dụ và hướng dẫn tôi đã đọc vv, không làm cho nó thực sự rõ ràng cho một ** người mới bắt đầu ** những gì họ thực sự làm, do đó sự nhầm lẫn của tôi. Tất cả các ví dụ đều sử dụng các hàm vv, nhưng không thực sự nói rõ những gì người ta có thể làm và người kia không thể có bất kỳ thời trang rõ ràng nào. – ReturnVoid

Trả lời

44

OpenGL Extension Wrangler (GLEW) được sử dụng để truy cập các chức năng OpenGL API hiện đại (phiên bản 3.2 lên phiên bản mới nhất) .Nếu chúng tôi sử dụng phiên bản OpenGL cổ xưa, chúng tôi có thể truy cập các chức năng OpenGL đơn giản bao gồm #include <GL/gl.h>. Nhưng trong OpenGL hiện đại, chức năng API được xác định trong thời gian chạy, không thời gian biên dịch. GLEW sẽ xử lý thời gian chạy bốc của OpenGL API.About GLEW thấy here

GLFW hoặc freeglut sẽ cho phép chúng ta tạo ra một cửa sổ, và nhận chuột và bàn phím đầu vào một cách cross-platform. OpenGL không xử lý việc tạo cửa sổ hoặc đầu vào, vì vậy chúng tôi phải sử dụng các thư viện này để xử lý cửa sổ, bàn phím, chuột, cần điều khiển, đầu vào và mục đích khác.

GLFWfreeglut là thay thế cho chúng ta theo nhu cầu của chúng tôi, chúng tôi có thể chọn bất kỳ một trong nhưng GLEW là khác nhau từ họ được sử dụng cho thời gian chạy tải của API OpenGL.

+1

@MichhaelIV Tôi đã chỉnh sửa câu trả lời của mình –

2

Tôi đang sử dụng cả hai ứng dụng này cho một số công việc tại trường đại học của tôi.

GLEW là "thư viện tải mở rộng C/C++ mã nguồn mở đa nền tảng", trong khi freeglut là trình quản lý cửa sổ thay thế thư viện OpenGL Utility Toolkit (GLUT) mặc định.

Vì vậy, như bạn thấy, cả hai đều có mục đích khác nhau. Điểm của việc sử dụng freeglut là nó vẫn được duy trì, trong khi GLUT mặc định là không, vì vậy nếu bạn muốn sửa lỗi và các tính năng mới, bạn nên sử dụng nó :)

+0

Vì vậy, về cơ bản, người ta chỉ có thể quyết định sử dụng freeglut của chính nó? Hoặc glew của chính nó? Nếu không có một trong hai. Vì vậy, một trong hai thứ này có tất cả các chức năng cần thiết mà người kia có, tại sao lại bao gồm cả hai? Một lần nữa, tôi không hiểu.Xin lỗi nếu điều này nghe có vẻ thực sự dày, nhưng tôi không, và thực tế là tất cả các ví dụ tôi đã nhìn thấy bao gồm cả hai hoặc một số biến thể tương tự không giúp đỡ. – ReturnVoid

+0

Hãy đợi, vì vậy GLEW là C/C++ cụ thể? Trong khi đó, Glut/freeglut thì không? Điều đó có nghĩa là ai đó đang chạy C# hoặc .net hoặc cái gì đó không phải là C/C++ không thể sử dụng GLEW, họ sẽ phải sử dụng glut hoặc cái gì khác? – ReturnVoid

+1

Bạn không bắt buộc phải sử dụng GLEW vì đó là trình quản lý phiên bản (nó đảm bảo bạn có các phiên bản thích hợp cho HĐH của bạn), nhưng nó rất hữu ích. Bạn cũng có thể loại bỏ freeglut nếu bạn muốn sử dụng GLUT mặc định, nhưng sau đó bạn sẽ sử dụng phần mềm cũ vì nó có vẻ bị bỏ qua ... – mrcasals

Các vấn đề liên quan