【发布时间】:2012-12-18 12:17:06
【问题描述】:
我需要使用 GLKBaseEffect 设置 const 聚光灯位置:所以当我更改模型视图时,灯光会停留在同一个位置。我怎样才能做到这一点?
【问题讨论】:
标签: glkit light glkbaseeffect
我需要使用 GLKBaseEffect 设置 const 聚光灯位置:所以当我更改模型视图时,灯光会停留在同一个位置。我怎样才能做到这一点?
【问题讨论】:
标签: glkit light glkbaseeffect
当您使用 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;
这应该可以解决问题
【讨论】:
GLKBaseEffect 试图模拟它)。
在这里对我有帮助的唯一解决方案是制作自己的着色器。
【讨论】: