sự khác biệt giữa opengl 3 và opengl 4


10

Tôi mới bắt đầu với lập trình trò chơi và tôi muốn bắt đầu học opengl. Tôi đã tìm thấy một hướng dẫn rất tuyệt vời từ đầu để bắt đầu với opengl 3 và tôi tự hỏi liệu có sự khác biệt lớn giữa openGL 3 và openGl 4. Hoặc tôi nên hỏi, liệu openGL 4 có khiến openGL 3 bị lỗi thời hay tôi có thể bắt đầu với openGL 3 và sau đó tôi có thể chuyển sang openGL 4 không?

Câu trả lời:


12

Tôi sẽ bắt đầu điều này bằng cách liên kết với một lời giải thích về cách các phiên bản OpenGL hoạt động . Nói tóm lại, OpenGL (nói chung) tương thích ngược, vì vậy tất cả mã GL 3 chỉ hoạt động tốt khi triển khai GL 4.

Sê-ri 4.x phiên bản OpenGL đại diện cho những gì bạn có thể gọi là phần cứng lớp "Direct3D 11". Nó phơi bày chức năng của phần cứng đó. Phần cứng D3D10 được thể hiện bằng các phiên bản 3.x của OpenGL. Vì vậy, "chuyển sang openGL 4" có nghĩa là từ bỏ phần cứng thấp hơn hoặc có nhiều đường dẫn kết xuất.

Một phân tích chi tiết về các thay đổi tính năng thực tế giữa 3.3 và 4.2 có thể được tìm thấy trong đặc tả 4.2 . Xin lưu ý rằng nhiều tính năng (riêng_shader_objects, shading_lingu_420pack, texture_st Storage) không bị hạn chế đối với phần cứng 4.x; chúng là những thay đổi API và bạn có thể truy cập chúng trên phần cứng 3.x thông qua các tiện ích mở rộng.

Câu hỏi nổi bật nhất là đây: GL 4.x cho phép tôi làm gì với phần cứng 3.x?

Tessname có lẽ là tính năng nổi tiếng nhất. Nó cũng có thể là ít hữu ích nhất. Điều đó không có nghĩa là nó vô dụng; sử dụng đúng cách của tessname có thể tăng cường chi tiết trong các mô hình. Nhưng với tôi ít nhất, đó không thực sự là điều tốt nhất GL 4 dành cho nó.

Chương trình con Shader là một ý tưởng thú vị. Điều này về cơ bản cho phép bạn linh hoạt ghép các mảnh shader khác nhau lại với nhau. Bạn có thể ít nhiều gắn một hàm vào một điểm liên kết cụ thể trong một chương trình. Đặc điểm kỹ thuật hơi khó theo dõi, nhưng đó là chức năng tốt.

Tôi muốn nói rằng tải / lưu trữ hình ảnh có lẽ là bit bị bỏ qua và mạnh mẽ nhất của chức năng GL 4. Với nó, bạn có khả năng thực hiện tính minh bạch không phụ thuộc vào đơn hàng với hiệu suất tương đương với OIT. Có thể có nhiều cách sử dụng khác để tải / lưu trữ hình ảnh, nhưng sẽ cần những người thông minh hơn để tìm ra chúng.

Có một số tỷ lệ cược và kết thúc trong GL 4. Các công cụ như hỗ trợ chính xác kép và kết xuất gián tiếp. Đây là những thứ theo phong cách GPGPU hơn, vì vậy có lẽ nó sẽ không được sử dụng nhiều trong một trò chơi.

Nhưng nhìn chung, GL 4 không thay đổi hoàn toàn cách bạn triển khai tính năng X từ GL 3.


Tôi chỉ cần nói rằng, bạn hoàn toàn sai khi nói rằng kết xuất gián tiếp là 'công cụ kiểu GPGPU'. Đó là một sự tăng cường hiệu năng tuyệt vời cho bất kỳ trình kết xuất nào có thể thực hiện nhiều cuộc gọi từ CPU và là một tính năng tuyệt vời cho các trò chơi.
CoffeeandCode
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.