OpenGL в Delphi

Для построения поверхности используется




Программа рисует бесформенный полый объект по точкам, считываемым из текстового файла. Каждая строка файла содержит координаты вершины и нормали к ней.
Поверхность строится как единая группа связанных треугольников:

procedure DrawSurface;
var
i: GLuint;
begin
glBeginf GL_TRIANGLE_STRIP);
For i := 0 to numverts - 1 do begin glNormal3fv( @norms[i]);
glVertex3fv( @verts[i]);
end;
glEnd;
end;

Клавишами управления курсором можно вращать фигуру, есть режим тестирования скорости воспроизведения, активизируемый нажатием клавиши 'Т'' фигура делает полный оборот по оси X.
Программа, несмотря на обширность кода, проста и не должна вызвать особых затруднений при разборе. Стоит только обратить внимание, что на сцене присутствует два источника света, различающиеся позицией.
Этот пример демонстрирует, что, в принципе, для воспроизведения поверхностей сложной формы не обязательно пользоваться сплайнами, а можно разбить поверхность на множество простых примитивов.
Следующий пример окажется очень полезным для тех, кто настроен на профессиональную работу с OpenGL.
В проекте из подкаталога Ех24 координаты вершин треугольников, образующих поверхность, считываются из файла формата dxf (Рисунок 4.17).



Содержание раздела