- •1. Что такое OpenGl
- •2. Direct3d vs. OpenGl
- •2. Спецификация
- •4. Архитектура
- •5. Расширения
- •6. Дополнительные библиотеки
- •7. Независимость от языка программирования
- •8. История версий
- •OpenGl 2.0
- •OpenGl 3.0
- •OpenGl 3.1
- •OpenGl 3.2
- •OpenGl 3.3
- •OpenGl 4.0
- •OpenGl 4.1
- •OpenGl 4.2
- •OpenGl 4.3
- •9. Практический пример Tao Framework
- •Установка Tao Framework
- •10. Создание проекта и подключение библиотеки Tao OpenGl в с#
- •11. Инициализация OpenGl в c# .Net
- •Список литературы
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#
