Có hướng dẫn tốt nào cho thấy sự khác biệt giữa OpenGL 1. * và 2. * không?
Sẽ rất hữu ích khi biết những chức năng nào tôi không nên gọi (như glBegin (), tôi giả sử).
Có hướng dẫn tốt nào cho thấy sự khác biệt giữa OpenGL 1. * và 2. * không?
Sẽ rất hữu ích khi biết những chức năng nào tôi không nên gọi (như glBegin (), tôi giả sử).
Câu trả lời:
Các OpenGL.org bắt đầu trang có một cái nhìn tổng quan, với nhiều liên kết đến các hướng dẫn khác nhau.
Nói tóm lại, OpenGL 2.0 sống giữa chức năng cố định (1.x) và thế giới lập trình hoàn toàn (2.x +); bạn vẫn có thể sử dụng mọi thứ OpenGL 1.x có trong khi thêm các shader. Tiến về phía trước (3.x +), tất cả các loại hệ thống chức năng cố định cũ bắt đầu bị phản đối, do đó, tốt hơn là nên có một khởi đầu sạch sẽ thay vì trộn lẫn cả hai thế giới.
Tôi cũng ngạc nhiên khi điều này chưa được hỏi trước đây .. hoặc ít nhất là tôi không thể tìm thấy nó trên một tìm kiếm nhanh.
Các phiên bản OpenGL, nói chung, không giống như các phiên bản Direct3D. Mã cũ của bạn vẫn hoạt động với các phiên bản mới (với một ngoại lệ). Do đó, OpenGL v1.4 sẽ hoạt động tốt trong OpenGL 2.1. Phiên bản OpenGL là bổ sung, không trừ.
OpenGL 2.0 và 2.1 thêm các shader, trong Ngôn ngữ tạo bóng OpenGL. Họ cũng thêm một số tính năng khác, như kết cấu dấu phẩy động, kết cấu không có sức mạnh của hai, v.v. Danh sách đầy đủ có sẵn trong chính đặc tả OpenGL 2.1 . Chỉ cần nhìn vào phần "Phiên bản"; họ sẽ cho bạn biết những gì đã thay đổi từ phiên bản trước.
Ngoại lệ duy nhất cho quy tắc về thay đổi API là OpenGL 3.1 (có, 3.1, không phải 3.0). Trong OpenGL 3.0, một số API được chỉ định là "không dùng nữa". Điều này có nghĩa là ARB, ủy ban phụ trách OpenGL, có thể loại bỏ các chức năng này khỏi các phiên bản sau. Việc xóa này đã xảy ra trong OpenGL 3.1. Đặc tả 3.0 có một danh sách lớn các nội dung không dùng nữa và thông số 3.1 được cắt giảm tương ứng.
Lưu ý rằng bạn không cần phải quan tâm (ít nhất là trên Windows và Linux. MacOSX thì khác). Bạn có thể chạy tốt ở chế độ " tương thích ", trong đó tất cả các tính năng đã xóa trước đó trở lại. Việc triển khai OpenGL không phải hỗ trợ bối cảnh tương thích (và Mac OS X Lion thì không. Nó hỗ trợ lõi 2.1 hoặc 3.2, theo yêu cầu của bạn), nhưng tất cả chúng vẫn làm. Chỉ để tương thích ngược với các ứng dụng cũ.
Tôi tin rằng có các hướng dẫn cho opengl 1.x và 2.x, nhưng rất có thể sẽ không có hướng dẫn cho thấy chúng khác biệt như thế nào với các tính năng hoặc dễ sử dụng, v.v.
Có thể tốt nhất là tìm kiếm các hướng dẫn cho phiên bản opengl cụ thể, tìm các hướng dẫn tương tự và tự so sánh chúng.