1

私には理解できない奇妙な行動が見られます。なんらかの理由で (z 軸に) スケールを適用すると、ライティングが突然無効になったか、拡散色が 0 に設定されたかのように、テクスチャ マップされたポリゴン メッシュが暗くなります。 0) その後、色は再び明るく鮮やかな色になります。

*追加情報で更新します。* 頂点の z 値が元の値または初期化された値の場合、明るさは問題ないようです。しかし、z 軸に沿ってスケーリングすると、色が薄暗くなります (完全に暗くはなりませんが、明るさが著しく変化します)。レンダリングにインデックス バッファを使用しています。

この「グリッチ」の原因は一体何なのでしょうか?

これに関連するコードは次のとおりです。

float aspect = fabsf(self.view.bounds.size.width / self.view.bounds.size.height);
GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(60.0f), aspect, 0.1f, 100.0f);

self.effect.transform.projectionMatrix = projectionMatrix;

// Compute the model view matrix for the object rendered with GLKit
GLKMatrix4 modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 15.0f, -90.0f);
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, rotationAngle, 0, 1, 0);

// where g_depthScale is a value that increases based on a slider control.
modelViewMatrix = GLKMatrix4Scale(modelViewMatrix, 0.1f, 0.1f, g_depthScale);

self.effect.transform.modelviewMatrix = modelViewMatrix;
4

1 に答える 1