Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
bibliofond.ru_599960.rtf
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
8.25 Mб
Скачать

11. Инициализация OpenGl в c# .Net

Теперь нам необходимо инициализировать работу OpenGL.

Сначала мы в конструкторе класса должны инициализировать работу элемента AnT:

public Form1()

{();

AnT.InitializeContexts();

}

Снова перейдите к конструктору и сделайте двойной щелчок левой клавишей мыши на форме - создастся функция обработчик события загрузки формы.

В ней мы поместим код инициализации OpenGL. Подробное описание того, что делает этот код, мы рассмотрим в следующих главах, а сейчас мы только протестируем работу библиотек OpenGL и FreeGLUT.

private void Form1_Load(object sender, EventArgs e)

{

// инициализация Glut

Glut.glutInit();

Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);

// очитка окна

Gl.glClearColor(255, 255, 255, 1);

// установка порта вывода в соотвествии с размерами элемента anT

Gl.glViewport(0, 0, AnT.Width, AnT.Height);

// настройка проекции

Gl.glMatrixMode(Gl.GL_PROJECTION);.glLoadIdentity();.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);.glMatrixMode(Gl.GL_MODELVIEW);.glLoadIdentity();

// настройка параметров OpenGL для визуализации

Gl.glEnable(Gl.GL_DEPTH_TEST);

}

На окне мы создали 2 кнопки. Обработчик кнопки выйти будет выглядеть следующим образом

//обработчик кнопки "выйти"

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

Обработчик кнопки «Визуализировать» будет содержать код, реализующий визуализацию сеточного каркаса сферы, (за отрисовки трехмерной сферы будет отвечать библиотека FreeGLUT). Код, который будет размещен в данной функции, отвечает за разные технические аспекты визуализации, с которыми мы познакомимся в следующих главах.

Код функции:

// обработчик кнопки "визуализировать"

private void button1_Click(object sender, EventArgs e)

{

Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);

Gl.glLoadIdentity();.glColor3f(1.0f, 0, 0);.glPushMatrix();.glTranslated(0,0,-6);.glRotated(45, 1, 1, 0);

// рисуем сферу с помощью библиотеки FreeGLUT

Glut.glutWireSphere(2, 32, 32);

Gl.glPopMatrix();.glFlush();.Invalidate();

}

Откомпилируйте и запустите приложение.

Результат работы приложения показан на рисунке 9. Если вы правильно набрали все исходные коды и выполнили все описанные действия, то вы увидите аналогичную визуализацию сферы, после нажатия на кнопке «Визуализировать».

Вот и все. Мы протестировали работоспособность библиотеки Tao, инициализировав библиотеку OpenGL в C# .NET.

Список литературы

1. http://ru.wikipedia.org/wiki/OpenGL - основная информация со свободной энциклопедии.

2. http://gamedev.kz/?q=node/14 - Введение в OpenGL.

. http://www.esate.ru/page/uroki-OpenGL-c-sharp - уроки использования OpenGL API в среде .NET C#

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]