Why does scaling an object down make it easier in OpenGL ES?

Why does scaling (uniformly) an object down make it easier in OpenGL ES 1.x?

Would it be more reasonable for it to be darker because the normals did not decrease, also making the object darker? But for some reason, the object becomes lighter. When I zoom in, the subject gets darker. In my opinion, it should be the other way around.

Please do not suggest using GL_NORMALIZE etc. I'm just wondering how the OpenGL implementation works.

+4
source share
3 answers

A simple question, a complex answer. This is the corresponding excerpt from the directory:

Normal Conversion

Normal vectors are not converted to the same as vertices or position vectors. Mathematically, it is better to think of normal vectors not as vectors, but because the planes are perpendicular to these vectors. Then, the transformation rules for normal vectors describe the transformation rules for perpendicular planes. A homogeneous plane is indicated by a row vector (a, b, c, d), where at least one of a, b, c or d is nonzero. If q is a nonzero real number, then (a, b, c, d) and (qa, qb, qc, qd) represent the same plane. the point (x, y, z, w) T is on the plane (a, b, c, d) if ax + is on + cz + dw = 0. (If w = 1, this is the standard description of the Euclidean plane.) so that (a, b, c, d) represents the Euclidean plane, at least one of a, b or c must be nonzero. If they are all equal to zero, then (0, 0, 0, d) is a "plane to infinity" that contains everything "indicates infinity."

If p is a homogeneous plane, and v is a homogeneous vertex, then the statement "v lies on the plane p" is written mathematically as pv = 0, where pv is the normal matrix multiplication. If M is a non-singular vertex transformation (that is, a 4 × 4 matrix that has an inverse M-1), then pv = 0 is equivalent to pM-1Mv = 0, so Mv lies on the plane pM-1. Therefore, pM-1 is the image of the plane below the vertex of the transformation M.

If you like to think of normal vectors as vectors, and not as planes perpendicular to them, let v and n be vectors such that v is perpendicular to n. Then nTv = 0. Thus, for an arbitrary nonsingular transformation M, nTM-1Mv = 0, which means that nTM-1 is a transposed transformed normal vector. Thus, the transformed normal vector (M-1) T n. In other words, normal vectors are transformed by inverse transposition, a transformation that converts points. Phew!

In short, positions and normals are not converted equally. As explained in the previous text, the normal transformation matrix is (M-1) T. Scaling M to sM will result in (M-1) T / s : the smaller the scale factor, the more the normal transformed ... Here we go!

+7
source

It would seem that normals do not scale with the object. This would mean that the normals for the full-size object significantly increase the coverage of the object with a smaller size. This would lead to the fact that the angles between the light sources and the normals would be exactly the same, but on the surface, which is much smaller.

0
source

answer in opengl context here, http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall/

see # 16.it gives the whole story.

0
source

All Articles