Объекты из четырехугольников
Любая поверхность, какой бы сложной она ни была, может быть построена из четырехугольников. Подобные объекты часто называют Quadric objects (квадратические? хоботические?). Их привлекательность - в простоте построения и текстурирования. По этому принципу строятся трехмерные примитивы в библиотеке glu.dll.
Алгоритм построения поверхности (на примере плоскости, в трехмерном случае добавится еще одна координата): разбиваем поверхность по каждой координате на части, например на i частей по Х и на j частей по Y, организуем два цикла - первый по j, второй - по i (можно и наборот, разницы никакой), во втором цикле строим строку, когда она постороена - переходим к следующей строке. Каждый из четырехугольников имеет координаты вершин (Xi,Yj),(Xi+1,Yj),(Xi+1,Yj+1),(Xi,Yj+1):
Нормали можно строить как для каждой из вершин, так и для одной вершины. В приведенном примере вектор нормали к поверхности (0,0,1) - ось Z направлена к нам.
Координаты текстуры для каждого четырехугольника рассчитываются так же, как и координаты вершин, только вместо размера по вертикали и горизонтали для плоскости берутся размеры текстуры 1х1 (если нужно наложить один экземпляр текстуры).