Cho dù sử dụng OpenGL ES 1.1 hay 2.0 phụ thuộc vào những gì bạn muốn làm trong ứng dụng của mình và số lượng thiết bị bạn cần để tương thích. Tất cả các thiết bị iOS đều hỗ trợ OpenGL ES 1.1, nơi chỉ có iPhone 3G S và các thiết bị mới hơn (iPhone 3G S, iPhone 4, iPad và iPod touch thế hệ thứ 3 và thứ 4) hỗ trợ OpenGL ES 2.0. Tuy nhiên, tất cả các thiết bị iOS mà Apple hiện đang vận chuyển đều tương thích với OpenGL ES 2.0. Tỷ lệ phần trăm thiết bị không hỗ trợ OpenGL ES 2.0 giảm mỗi ngày. Tất cả iPad đã hỗ trợ OpenGL ES 2.0 từ khi khởi động, vì vậy bạn được đảm bảo có hỗ trợ nếu bạn nhắm mục tiêu đến yếu tố hình thức đó.
OpenGL ES 2.0 và 1.1 sử dụng các đường dẫn hiển thị khác nhau và không tương thích. OpenGL ES 1.1 sử dụng đường ống chức năng cố định, nơi bạn nạp dữ liệu hình học và kết cấu, thiết lập trạng thái chiếu sáng, v.v. và để OpenGL xử lý phần còn lại cho bạn. OpenGL ES 2.0 dựa trên một đường ống có thể lập trình, nơi bạn cung cấp các trình đổ bóng đỉnh và mảnh để xử lý các chi tiết cụ thể về cách nội dung của bạn được hiển thị trên màn hình.
Vì bạn phải viết mã của riêng mình để thay thế ngay cả các chức năng cơ bản nhất, sử dụng OpenGL ES 2.0 cho các ứng dụng 3-D đơn giản có thể đòi hỏi nhiều nỗ lực hơn OpenGL ES 1.1. Ngoài ra, hầu hết các ứng dụng mẫu và bản ghi mà bạn tìm thấy sẽ có hướng tới 1.1, vì vậy có thể khó khăn hơn để bắt đầu với API 2.0. Tuy nhiên, thực tế là bạn có thể viết thói quen của riêng bạn để xử lý hình học và kết cấu của bạn và cách chúng được hiển thị trên màn hình có nghĩa là OpenGL ES 2.0 cho phép bạn thực hiện những việc đơn giản nhất có thể (hoặc sẽ yêu cầu nỗ lực to lớn) để làm trong OpenGL ES 1.1. Chúng bao gồm các hiệu ứng như bóng phim hoạt hình và ánh sáng bao quanh môi trường xung quanh, cũng như cho phép bạn làm điều gì đó thú vị như giảm tải công việc song song một cách ồ ạt cho GPU.
Nếu bạn quan tâm để xem một số ví dụ về những gì bạn có thể làm với OpenGL ES 2.0, video cho lớp tôi đã dạy về chủ đề có sẵn on iTunes U và tôi đã tạo hai ứng dụng mẫu here và here.
Khi nói đến khả năng tương thích nền tảng, trình đổ bóng đã có sẵn trên OpenGL trên máy tính để bàn trong một thời gian ngắn, vì vậy mọi thứ bạn xây dựng bằng OpenGL ES 1.1 hoặc 2.0 đều khá dễ dàng với máy tính để bàn.
Nếu bạn có thể thực hiện hiển thị mà bạn muốn trong OpenGL ES 1.1, bạn có thể đi theo cách đó để cung cấp khả năng tương thích thiết bị tối đa. Tuy nhiên, phần lớn các thiết bị iOS hiện đang sử dụng hỗ trợ OpenGL ES 2.0 (Tôi không thể tìm thấy số liệu thống kê về điều này ngay bây giờ, nhưng nó dựa trên các đơn vị được vận chuyển), và con số đó sẽ chỉ tăng theo thời gian. OpenGL ES 2.0 cho phép bạn rút ra một số hiệu ứng tuyệt đẹp (xem Epic Citadel) có thể giúp bạn thiết lập ứng dụng của bạn ngoài những ứng dụng khác.
Nguồn
2011-01-24 21:57:34
Câu trả lời rất chi tiết - Cảm ơn bạn! – Constantin
Để bổ sung câu trả lời cổ điển và tuyệt vời này, tại liên kết này http://en.wikipedia.org/wiki/List_of_iOS_devices#Tính năng cuộn xuống OpenGL ES để có một màn hình hiển thị đáng giá. – Fattie
@ Brad Larson: 1,5 năm sau, bạn sẽ đưa ra một câu trả lời tương tự cho điều đó hay bạn sẽ mang đến [GLKit] (http://developer.apple.com/library/ios/documentation/GLkit/Reference/GLKit_Collection/GLKit_Collection. pdf) là sự lựa chọn tốt nhất? –