2014-01-30 23 views
0

我有一個渲染的視圖,上面有一個立方體(很好,很簡單)我已經啓用了使用GLKBaseEffect的照明效果很好。在GLKit中啓用霧

我現在想啓用霧,所以我認爲這將使它

self.effect = [[GLKBaseEffect alloc] init]; 
self.effect.light0.enabled = GL_TRUE; 
self.effect.light0.diffuseColor = GLKVector4Make(1.0f, 0.4f, 0.4f, 1.0f); 

self.effect.fog.enabled = YES; 
self.effect.fog.color = GLKVector4Make(1.0f, 1.4f, 1.4f, 1.0f); 
self.effect.fog.mode = GLKFogModeExp; 
self.effect.fog.density = 1; 

我缺少什麼?

第二個問題是,GLKBaseEffect應該是每個對象還是每個GLView?

回答

0

這確實有效,但我需要prepareToDraw在每個對象上。這導致了相當多的FPS,所以我又回到了使用普通的OpenGL 2.0着色器。

self.effect.fog.color = GLKVector4Make(0.3 ,0.3, 0.3, 0.8); 
self.effect.fog.enabled = YES; 
self.effect.fog.start = 20; 
self.effect.fog.end = 30; 
self.effect.fog.mode = GLKFogModeLinear;