2011-02-08 45 views
5

Tôi không thể tìm thấy tham chiếu đến điều này. Tất cả tài liệu dành cho nhà phát triển Android đều tập trung vào OpenGL ES 1.0. Làm cách nào để bắt đầu sử dụng OpenGL 2.0 trong SDK Android bằng API cấp 8? Nếu cấp 8 không được hỗ trợ thì mức độ nào tôi cần phải sử dụng?Cách sử dụng OpenGL ES 2.0 trong SDK Android (không phải NDK)?

Tỷ lệ phần trăm điện thoại Android hiện có trên thị trường hiện đang hỗ trợ OpenGL ES 2.0?

Trả lời

8

Vấn đề là bạn cần triển khai ba phương pháp trong GLSurfaceView lấy GL10 từ hệ điều hành.

public void onDrawFrame(GL10 gl) 
public void onSurfaceChanged(GL10 gl, int width, int height) 
public void onSurfaceCreated(GL10 gl, EGLConfig config) 

Dường như giải pháp là bỏ qua GL10 hoàn toàn trong Trình kết xuất của bạn và chỉ sử dụng tất cả các phương pháp tĩnh của lớp GLES20.

public void onDrawFrame(GL10 glUnused) { 
     GLES20.glClearColor(0.0f, 0.0f, 1.0f, 1.0f); 
     GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT); 
     GLES20.glUseProgram(mProgram); 
     ... 
} 

Tất cả các thành viên tĩnh GLES20 được liệt kê ở đây: http://developer.android.com/reference/android/opengl/GLES20.html

Better tài liệu về những người đang có trong tài liệu Khronos. http://www.khronos.org/opengles/sdk/docs/man/

3

Bạn nên xem video này http://www.youtube.com/watch?v=7-62tRHLcHk. Anh chàng đi qua hỗ trợ thiết bị cho các phiên bản OpenGL ES khác nhau và cho bạn thấy làm thế nào để bắt đầu với OpenGL trên Android. Ông cũng nói về sự phân mảnh của các thiết bị và cách bạn có thể hỗ trợ chúng. Về cơ bản hầu hết các thiết bị "thế hệ thứ hai" hỗ trợ 2.0 và đã được vận chuyển từ cuối năm 2009. Nếu bạn định nhắm tới các thiết bị 2.0 thì bạn sẽ phải kiểm tra hệ thống để đảm bảo rằng thiết bị X có thông số phần cứng thích hợp.

Nếu bạn muốn xem cách thiết lập trình kết xuất đồ họa OpenGL cơ bản trong SDK nhảy tới 21:00 trong video đó.

+0

Nó nói về thâm nhập thị trường của OpenGL 2 nhưng tôi không thể nhìn thấy bất cứ điều gì liên quan đến làm thế nào để truy cập vào OpenGL ES 2.0 trong SDK (không phải NDK). – ace

Các vấn đề liên quan