Ios4 为什么GLKit缩放会导致颜色/照明变暗?

Ios4 为什么GLKit缩放会导致颜色/照明变暗?,ios4,opengl-es,glkit,Ios4,Opengl Es,Glkit,我看到一种奇怪的行为,我似乎无法理解。 由于某种原因,当我应用缩放(在z轴上)时,纹理贴图多边形网格变暗,好像突然禁用照明或将漫反射颜色设置为0。如果我反转比例(使比例返回到0),那么颜色将再次变得明亮和充满活力 *使用其他信息进行更新* 当顶点上的z值处于其原始/初始化值时,亮度看起来很好。但当我沿z轴缩放时,颜色变暗(不是完全变暗,而是亮度发生明显变化)。 我正在使用索引缓冲区进行渲染 究竟是什么导致了这个“小故障” 与此相关的代码如下所示: float aspect = fabsf(sel

我看到一种奇怪的行为,我似乎无法理解。 由于某种原因,当我应用缩放(在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;
如上所述,在缩放模型时可能正在缩放法线

要缩放整个场景,一种简单而廉价的方法是更改投影矩阵的视角,请参见所述,缩放模型时可能会缩放法线


要缩放整个场景,一种简单而廉价的方法是更改投影矩阵的视角,请参见

产生这种情况的最常见错误是,使用“缩放”时,也会缩放法线。对法线进行规格化,使其长度始终为1。将此评论转换为答案,您将获得奖励。好的。我在初始化时启用了glEnable(GL_规格化)。现在整个纹理完全是黑色的。这完全出乎意料!也许glEnable(GL_NORMALIZE)不起作用,因为我使用了GLKitBaseEffect(我认为这是一种基本的开箱即用的像素着色器)。如果是这种情况,我相信通过OpenGL进行规范化是行不通的。你知道,你可以简单地在任何着色器中规范化法线,因为你似乎正在使用它们。请注意,此时需要规范化3d向量,而不是4d。产生这种情况的最常见错误是,使用“缩放”时,也会缩放法线。对法线进行规格化,使其长度始终为1。将此评论转换为答案,您将获得奖励。好的。我在初始化时启用了glEnable(GL_规格化)。现在整个纹理完全是黑色的。这完全出乎意料!也许glEnable(GL_NORMALIZE)不起作用,因为我使用了GLKitBaseEffect(我认为这是一种基本的开箱即用的像素着色器)。如果是这种情况,我相信通过OpenGL进行规范化是行不通的。你知道,你可以简单地在任何着色器中规范化法线,因为你似乎正在使用它们。请注意,此时需要规范化3d向量,而不是4d。Ok。如果这是真的(我还没有验证我的法线是什么…我甚至不知道初始化后该怎么做),那么这一定是最愚蠢的错误。我是说,这是一只虫子,对吧?好的。如果这是真的(我还没有验证我的法线是什么…我甚至不知道初始化后该怎么做),那么这一定是最愚蠢的错误。我是说,这是一只虫子,对吗?