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

1

正如Matic Oblak所说,您可能会在缩放模型时缩放法线。

使整个场景缩放的一种廉价且简单的方法是更改​​投影矩阵的视角,请参阅OpenGL ES 2.0 Pinch and Zoom

于 2013-04-29T16:49:13.410 回答