Typically we split that transformation into ones for a limb relative to its object, the object relative to the world, the world relative to the camera, & the camera lens. These are all merged into a single transform for your GPU. Next we might calculate lighting for each of the triangle's corners, relying on rough approximations ignoring all surroundings to keep the performance win. Or the triangle might be flatshaded. Then we interpolate between those values to fill the triangles! 2/3!