Уроки OpenGL + C#.

Разработка компьютерной графики с .NET C# и OpenGL API.

В данном разделе будут перечислены главы, каждая из которых содержит несколько "шагов" (т.е. подстатей) для ее выполнения.

Выполняя главы последовательно, вы ознакомитесь с основами синтаксиса C#, увидите, как просто создавать оконные приложения с помощью .net, познакомитесь с библиотекой Tao, которая обеспечивает поддержку OpenGl в среде .NET, изучите основы 2D визуализации, работу как с примитивами, так и принцип загрузки и построения сложных 3D моделей , экспортированных из 3D редакторов, всего просто не перечесть :).



Список глав и под-уроков, представленных в данном разделе:

Урок 1 - Введение в C#.

1.1 О Microsoft .NET Framework.
1.2 Основы синтаксиса языка C#
1.3 Разработка класса и реализация консольной программы на основе разрабатываемого класса.

Урок 2 - Работаем с оконными элементами.

2.1 Основы Windows.Forms
2.2 Создание первого оконного приложения в .NET. "Убегающее окно".
2.3 Создание второго оконного приложения. (Создание меню, taskbar, дополнительных диалоговых окон, открытие и загрузка изображений).

Урок 3 - Многопоточные вычисления.

3.1 О многопоточном программировании в C#.
3.2 Базовые методы работы с потоками в C# .NET.

Урок 4 - Введение в OpenGL.

4.1 Немного Об OpenGL
4.2 Что такое TAO framework
4.3 Установка и подключение библиотек TAO
4.4 Инициализация OpenGL в C#. Тестирование визуализации 3D сферы.

Урок 5 - Установка состояния OpenGL (инициализация)

5.1 Подробный анализ кода инициализации OpenGL в C#.
5.2 Визуализация 2D примитивов в OpenGL. Основы.
5.3 Вывод 2D треугольника с активным управлением разложением цветового спектра.
5.4 Визуализация графика функции. (Рисование графиков в C#, OpenGL).

Глава 6 - Программирование 2D графики. Создание растрового редактора (OpenGL).

6.1 Описание задачи, создание базовой оболочки программы, базовых классов. Тестирование работы редактора.
6.2 Здесь мы доведем до ума оболочку программы, а именно добавим несколько инструментов рисования, функцию выбора цвета.
6.3 Завершение системы слоев.
6.4 Завершение оболочки программы.
6.5 Оптимизация функции визуализации - добавление дисплейных списков, отрисовка массивов вершин.
Исходный код проекта - Создание мини растрового редактора C# OpenGL.


Глава 7. Алгоритмы обработки растровых изображений - реализация на OpenGL.

7.1 Алгоритмы обработки растровых изображений - теоретическое введение.
7.2 Реализация фильтра «Инверсия цветов», «Размытие», «Резкость», «Теснение», «Акварелизация».


Глава 8 - Сплайны - реализация на OpenGL.

8.1 Теоретическое введение - cплайны.
8.2 Реализация программы построения равномерного B сплайна и его корректировки.
Исходный код проекта - сплайны, openGL


Глава 9 - Трансформация графических объетов (без использования glTranslate*, glRotate*, glScale*).

9.1 Теоретическое введение - трансформация графических объетов.
9.2 Реализация программы демонстрации трансформации (управление с помощью опроса клавиш).
Исходный код проекта - трансформация геометрических объектов, openGL


Глава 10. Тела вращения - реализация на OpenGL.

10.1 Теоретическое введение - построение тел вращения.
10.2 Реализация алгоритма построения тела вращения.
Исходный код проекта - тела вращения, openGL


Глава 11. Отрисовка геометрических 3D фигур с использованием GLUT.

11.1 Немного о библиотеке GLUT. Модельные трансформации. Оболочка программы.
11.2 Реализация функций рисования и трансформации объектов.
Исходный код проекта - GLUT (FreeGLUT), openGL.


Глава 12. Текстурирование. Бибилиотека DevIL (OpenIL)

12.1 Текстурирование - теоретическое введение.
12.2 Загрузка изображения и текстурирование вращающейся плоскости.
Исходный код проекта - текстурирование, DevIL, openGL


Глава 13. Загрузка 3D объектов (OpenGL)

13.1 Теоретическое введение - представление 3D объектов, формат ASE. Экспорт 3D модели в формат ASE из 3D studio Max.
13.2 Загрузка и визуализация 3D модели.
13.3 Загрузка и визуализация 3D модели часть 2.
Исходный код проекта - загрузка трехмерной модели, openGL


Глава 14. Системы частиц. Основы. Взрыв (OpenGL)

14.1 Теоретическое введение - системы частиц, видео результата работы программы.
14.2 Реализация класса для работы с системой частиц.
14.3 Создание оболочки, завершение программы
Исходный код проекта - система частиц, openGL