OpenGL и Delphi на практике
Категория реферата: Рефераты по информатике, программированию
Теги реферата: урок изложение, конспект урока 3
Добавил(а) на сайт: Кувшинов.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
Здесь при заполнении структуры TPixelFormatDescriptor мы задаем параметры будущего графического отображения, в том числе количество цветовых бит, а также тип пикселей (iPixelType). Мы также задаем флаги, которые, как видно из названия, указывают, что наша программа будет поддерживать OpenGL, а также что мы будем рисовать в окне и использовать двойную буферизацию (параметр, необходимый для воспроизведения движущихся объектов).
Далее посредством вызова ChoosePixelFormat система выбирает подходящий формат пикселя - и мы присваиваем его (через SetPixelFormat) нашему окну.
Теперь нужно инициализировать контекст самого OpenGL посредством функций, содержащихся в модуле Windows, и произвести дополнительную настройку движка:
procedure TForm1.FormCreate (Sender: TObject);
begin
H:=Handle;
DC:=GetDC (H);
SetDCPixelFormat (DC);
RC:=wglCreateContext (DC);
wglMakeCurrent (DC, RC);
glClearColor (0.6,0.6,0.6,1.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity;
glFrustum (-1,1,-1,1,2,20);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity;
glTranslatef (0.0,-1.0,-6.0);
BeginPaint;
end;
Как видим, сначала мы задали для нашей графики необходимый формат пикселей. Теперь при помощи функции wglCreateContext создаем OpenGL-контекст, а впоследствии делаем его текущим контекстом. Далее, используя уже универсальные функции**, произведем настройку "мира", который будем создавать. Для этого через glClearColor очистим контекст и заполним ее 60-процентным черным цветом. Далее выберем матрицу проекций, которая определяет, как будут проецироваться трехмерные объекты на плоскость экрана (в оконные координаты) и через glLoadIdentity установим единичную матрицу и зададим границы плана в "мировых координатах" при помощи вызова glFrustum. После чего загрузим модельно видовую матрицу и произведем ее смещение (glTranslatef).
Что будем рисовать
Конечно, можно было нарисовать простую пирамиду или же куб. Но мы сделаем большее - нарисуем "признание в любви"** (рис. 1). Специально для этого методом "научного перебора" была разработана модель, описывающая соответствующую кривую:
Остается только перевести ее с языка математики на нормальный человеческий.
Прорисовка сцены
Подготовку сцены начнем с подключения разных дополнительных функций, без которых дальнейшая работа невозможна. Эти функции прописаны в методе BeginPaint, а также в методе FormResize (чтобы при изменении размера формы соответственно менялся размер объекта). Для этого используем функцию glEnable с соответствующими параметрами.
Рекомендуем скачать другие рефераты по теме: реферат сила, культурология как наука.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата