我需要使用 GLKBaseEffect 设置 const 聚光灯位置:所以当我更改模型视图时,灯光会停留在同一个地方。我怎样才能做到这一点?
问问题
558 次
2 回答
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;
这应该够了吧
于 2012-12-23T10:45:02.890 回答
0
在这里帮助我的唯一解决方案是制作自己的着色器。
于 2013-11-13T03:49:09.813 回答