I have a very disturbing problem with OpenGL.
My homework is to create scene with a human and a sword and some other objects, put a point light is each "palm" of the guy (green in the right, red in the left), and have a directional light source as the sun.
Here's a zip with two versions of my program: http://www.woofiles.com/dl-245221-OdPUtOaW-Release.zip
(Unfortunately the names are hungarian, "szép_de_rossz_oldalon_a_fény" means "nice but lights are on the opposite side", and "fény_jó_oldalon_de_ronda" means "lights on the right side but ugly".)
My problem is that the effect of the lights appears on the opposite side of my tesselated parametric surfaces.
A logical explanation would be that the surface normals are incorrect, but multiplying them with -1 give an even stranger result. Normal vector interpolation seems to get broken, and what remains is a rough surface with bad lighting. All that by reversing the normals. I'm sure that the triangles are facing the right direction, that the vector arithmetic is flawless, and that everything is placd in the scene where it should be (one can see that the sword is green, but that side of the other surfaces is red).