I need to create ellipse with OpenGL. The simplest way I found to do this was to use a GLUquadric with gluDisk(...), which generates a circular disk, along with glScale(...) to turn the disk into an ellipse. The only apparent problem with this method is that the normal vectors generated by gluDisk will cease to be normalized once glScale is called.
Will that affect lighting in any way? What is OpenGL’s defined behavior in this case? Are the vectors automatically renormalized, is the behavior undefined, or is it something else?
This will have (bad) effects on the lighting. The normal vector is expected to have a length of 1, if it is not, the lighting could be more/less intense than intended. Values that rely on the dot product with the normal will obviously be incorrect. In short, either be sure to normalize the normals manually or use GL_NORMALIZE. OpenGL will just assume that the normals you give it are already normalized unless using GL_NORMALIZE. There will be no “error” if they are not normalized. And if you decide to use GL_NORMALIZE, then there will be an additional computational cost each frame. So be wary if performance is going to be an issue. Regardless, using GL_NORMALIZE is probably exactly what you are looking for at this point.