Android sử dụng OpenGL ES, sự khác biệt giữa nó và OpenGL là gì?
Android sử dụng OpenGL ES, sự khác biệt giữa nó và OpenGL là gì?
Câu trả lời:
OpenGL ES (Hệ thống nhúng) là phiên bản rút gọn của OpenGL. Có rất nhiều sự khác biệt giữa hai điều đó và nếu bạn muốn đi sâu vào chi tiết, thì bạn có thể đọc bài viết đặc tả 128 này. Nhưng ES là một tập hợp con của OpenGL nên tất cả các ứng dụng ES hoạt động trên các hệ thống không phải ES nhưng không phải ngược lại.
Không có nơi nào bạn có thể dễ dàng xác định cái gì trong ES và cái gì không. Ngay cả một định nghĩa là "OpenGL-ES cũng giống như OpenGL, nhưng không có nhiều thứ. Ví dụ, không có glBegin hoặc glEnd."
Than ôi, không phải là một trong những câu trả lời cho đến nay là đầy đủ và hoàn toàn chính xác. Thực sự, OpenGL-ES thực hiện hai điều OpenGL không:
1) nó loại bỏ và sau đó mở rộng API OpenGL để làm cho nó phù hợp với nền tảng di động. Đó là, trước tiên, họ loại bỏ API và các tính năng bạn thực sự không cần, và gây gánh nặng cho việc triển khai trên thiết bị di động, chẳng hạn như hiển thị đa giác hoặc sử dụng danh sách hiển thị. Sau đó, nó làm cho một vài tiện ích mở rộng hợp lý để làm cho nó hữu ích hơn cho nền tảng di động. Tôi thậm chí không thể nhớ một ví dụ về điều này, mặc dù.
2) nó cung cấp giao diện cho trình quản lý cửa sổ (và do đó là phần cứng đồ họa gốc) của nền tảng di động. Phần này của OpenGL-ES, được gọi là EGL, rất giống với GLUT trên máy tính để bàn. Ngoại trừ việc nó không có phương thức tiện lợi nào không thực sự cần thiết cho giao diện đó. Vì vậy, không có API để vẽ các khối đa diện hoặc hình cầu (như trong GLUT). Nhưng, ví dụ, có các API tương ứng với các cuộc gọi lại của GLUT init () và với các cuộc gọi lại DisplayFunc () và ReshapeFunc ().
Có hai phiên bản OpenGL ES có sẵn trên Android:
Cảnh báo, OpenGL ES 2.0 không tương thích với OpenGL ES 1.X!
Hầu như tất cả các điện thoại Android đều có GPU OpenGL 1.X và hầu hết đều có 2.0. OpenGL ES 2.0 chỉ khả dụng với Android 2.x trở lên.