Освоение среды разработки, подключения графической библиотеки, сборки приложения Запустить среду разработки, скомпилировать любое приложение с вызовами библиотеки Open GL, при необходимости настроить работу с библиотеками и заголовочными файлами. Среда программирования – Visual C++ или QT Creator c MinGW и Open GL.
Результат работы:
Работа с трехмерными объектами Создать приложение, выводящее объемный объект средствами Open GL. Среда программирования – Visual C++ или QT Creator c MinGW и Open GL.
Результат работы:
Работа с источником света и свойствами материала поверхности. Включить источник света, задать отражающие свойства поверхностей: диффузное, зеркальное отражение, цвет поверхности. Вывести несколько объемных объектов. Каждый из них должен иметь различные свойства поверхностей (доминирующее зеркальное или диффузное отражение, различный цвет внешних поверхностей).
Результат работы:
Работа с источником света и свойствами источников и материалов. Включить 3 источника света, задать отражающие свойства поверхностей, положение и цвет источников света. Рекомендуется цвет поверхностей сделать одинаковым, а отражающие свойства – разными. Вывести несколько объемных объектов. Источники света должны иметь различный цвет. Необходимо организовать вращение сцены, управляемое с клавиатуры (сцена с объектами объекты вращается, источники неподвижны)
Результат работы:
Работа с буфером глубины, прозрачностью. Вывести несколько пересекающихся объектов, как минимум один из них должен быть прозрачным. Включить 3 источника света, задать свойства поверхностей и источников. Организовать раздельное вращение источников света вокруг неподвижной сцены, управляемое с клавиатуры или мышью.
Результат работы:
Свет от источников падает частично падает на лицевую сторону сцены , из-за чего мы наблюдаем блики на торе, и окрашивание сторон тетраэдра.
В данном примере источники светят на заднюю сторону сцены, поэтому грани тетраэдра потемнели ,а тор почти не отбрасывает бликов.
Работа со списками, текстурой и NURBS-поверхностями. Вывести сложный трехмерный объект, сохранить его в виде списка и размножить в виде нескольких копий различного масштаба на экране путем повторного вывода списка. Выводимые объекты располагаются над рельефом, задаваемым NURBS-поверхностью. Наложить текстуру на выводимые объекты, сцена должна быть освещена, необходимо предусмотреть возможность включения эффекта тумана (при помощи клавиатуры или мыши).
Результат работы:
Пирамиды с включенным туманом.
Пирамиды с выключенным туманом.
Вывод трехмерных объектов с динамическим расчетом проекционных теней. Вывести трехмерную сцену с движущимся объектом, который отбрасывает тень на другой объект (напр. плоскость). Тень должна перемещаться вместе с движением объекта исходя из взаимного положения источника света, объекта, который отбрасывает тень и объектов, на которые тень проецируется.
Результат работы:
При перемещении источника света ,изменяется тень чайника.
Освоение работы с программируемыми шейдерами Выполнить на выбор один из вариантов:
- Шейдер с сохранением данных в текстуре,
- Процедурный, текстурный шейдер,
- Традиционные шейдер,
- Фрагментный шейдер,
- Вершинный шейдер. Примеры из пакета с компилятором Cg не допускаются
Результат работы:
При перемещении трехмерных объектов ,изменяется их цвет.
Освоение Open Scene Graph Вывести трехмерную сцену средствами библиотеки Open Scene Graph. В работе должны быть использованы только вызовы OSG. Cостав сцены (количество и внешний вид объектов создаваемой сцены) для каждого варианта уточняется с преподавателем.
Результат работы: