Const使用GLKBaseEffect定位光

时间:2012-12-18 12:17:06

标签: glkit light glkbaseeffect

我需要用GLKBaseEffect设置常量光点位置:所以当我改变模型视图时,光线会停留在同一个地方。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

使用GLKBaseEffect设置灯光的位置时,它使用当前存储在其modelviewMatrix属性中的值。因此,您需要将此值设置两次,一次用于灯光,一次用于对象:

self.effect.transform.modelviewMatrix = GLKMatrix4Identity;
self.effect.light1.position = GLKVector4Make(0.0, 1.0, 3.0, 1);

GLKMatrix4 modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -3.0f);
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, GLKMathDegreesToRadians(90), 0, 1, 0);
self.effect.transform.modelviewMatrix = modelViewMatrix;

应该做的伎俩

答案 1 :(得分:0)

这里唯一的解决方案是制作自己的着色器。