2011-07-17 38 views
9

Tôi gặp vấn đề khi sương mù hoạt động như dự định trên một chương trình máy tính để bàn (PC) sử dụng OpenGL nhưng cùng một màn sương không hoạt động giống như trên thiết bị Android (sử dụng OpenGL ES).Sương mù OpenGL so với sương mù OpenGL ES

Mã này là một bản sao chính xác, nó trông như thế này:

// OpenGL ES Init 
gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); 
float fogColor[] = {0.5, 0.5, 0.5, 1.0}; 
// Fog color to mFogBuffer... 
gl.glEnable(GL10.GL_FOG); 
gl.glFogfv(GL10.GL_FOG_COLOR, mFogBuffer); 
gl.glFogf(GL10.GL_FOG_DENSITY, 0.04f); 

// OpenGL Init 
glClearColor(0.5, 0.5, 0.5, 1.0); 
float fogColor[] = {0.5, 0.5, 0.5, 1.0}; 
glEnable(GL_FOG); 
glFogfv(GL_FOG_COLOR, fogColor); 
glFogf(GL_FOG_DENSITY, 0.04f); 

Nhưng tôi không thể có được công việc OpenGL sương mù giống hệt nhau trên thiết bị Android của tôi. Tôi đã thử nghiệm các thuộc tính của glShadeModel() và cứ tiếp tục như vậy.

Khu vực sương mù là hoàn toàn màu trắng và nó là một quad cơ bản (được xây dựng bởi hình tam giác). Tôi đã thực hiện một số chuyển đổi gluLookAt(), nhưng nó không ảnh hưởng đến sương mù này.

Bất kỳ ý tưởng nào?

Trả lời

2

Hãy thử glHint(GL_FOG_HINT, GL_NICEST).

+0

Cảm ơn! Làm việc như một say mê. – Curtain

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