0

不使用时GL_NORMALIZE,如果我们使用正因子(更大的对象和更长的法线)缩放对象(连同其法线),则对象看起来更暗。

我希望更大的法线在照明方程中具有更大的 cos(照明角度)项,从而使物体更轻。

那么为什么会反过来呢?

(我通过 JOGL 使用 OpenGL v1.1)

4

1 回答 1

3

在进行变换时,法线不像法线点那样处理;它们使用用于变换点的矩阵的逆转置进行变换,并移除了平移分量。对于固定管道,这由 GL 自动处理。

对于缩放,这具有以相反幅度缩放法线的效果。因此,在关闭 GL_NORMALIZE 的情况下使对象变大会导致法线的大小变小,因此光照计算会导致颜色变深。

至于为什么以这种方式转换法线,此页面对此进行了充分解释。还有这个

于 2012-05-20T08:52:42.160 回答