1

GLKBaseEffect で const スポット ライトの位置を設定する必要があるため、モデルビューを変更してもライトは同じ場所にとどまります。どうすればこれを達成できますか?

4

2 に答える 2

1

GLKBaseEffect を使用してライトの位置を設定すると、その modelviewMatrix プロパティに現在保存されている値が使用されます。したがって、この値を 2 回設定する必要があります。1 回はライト用、もう 1 回はオブジェクト用です。

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 に答える