Các ứng dụng sử dụng các phiên bản cũ của Opengl vẫn có thể chạy trên các thẻ mới hơn?


8

OpenGl 3.0 trở lên có sự khác biệt khá lớn so với các phiên bản cũ như OpenGl 2.x và opengl 1.x về mặt triển khai, điều đó có nghĩa là các ứng dụng được viết bằng các phiên bản cũ của opengl sẽ không chạy trên máy tính có thẻ video hỗ trợ Opengl 3.x trở lên?

Xin lỗi, nếu đây không phải là nơi thích hợp để hỏi điều này.

Cảm ơn.

Câu trả lời:


2

Tóm lại: OpenGL 1.x vẫn sẽ được hỗ trợ.

Về mặt lý thuyết, ai đó có thể viết một triển khai OpenGL chỉ hỗ trợ 3.x trở lên, nhưng việc hỗ trợ các công cụ cũ hơn cung cấp cho bạn một loạt các ứng dụng hiện có đến mức thật ngớ ngẩn nếu không hỗ trợ nó.

Một số phần của đường ống OpenGL 1.x có thể được triển khai theo cách không tối ưu (tức là chậm), nhưng mọi thứ vẫn sẽ hoạt động. Trình điều khiển ATI đã thực hiện chọn chậm một cách khủng khiếp tại một số điểm, ví dụ, thay đổi trong Blender.

Về phía OpenGL ES mọi thứ phức tạp hơn một chút. Tôi không biết về bất kỳ trường hợp nào của nó, nhưng ES 2.0 trở đi khác rất nhiều so với ES 1.x đến mức có thể một số thiết bị không hỗ trợ ES 1.x. Trong hầu hết các trường hợp, phần cứng ES2 + đã mô phỏng ES 1.x trong phần mềm (tạo ra các shader một cách nhanh chóng và những điều thú vị như thế).


3

Hiện tại không có trình điều khiển nào đã gỡ bỏ hỗ trợ cho các phiên bản OpenGL trước đó. Trên hết, hầu hết cũng triển khai tiện ích mở rộng tương thích, có nghĩa là bạn có thể trộn nội dung cũ với bối cảnh OpenGL 3.2+ (ngoại lệ là Mac OSX, nơi chỉ có cấu hình lõi cho OpenGL 3.2 - bạn vẫn có thể sử dụng nội dung cũ, nhưng không cùng với những thứ mới).


1
Bạn đang nói glBegin..glEnd sẽ không được biên dịch trên OSX hiện đại?
Jari Komppa

@JariKomppa, sửa đổi câu trả lời của tôi.
Tapio
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.