Несколько мини-проектов по компьютерной графике

Необходимо написать 3 проекта небольшого-среднего объёма, используя С++ в качестве языка и библиотеки OpenGL + SFML по следующим техническим заданиям

1) Программа должна работать в реальном времени, с возможностью динамической смены
положения камеры и трансформаций объектов. Управление камеры должно быть
назначено на клавиатуру или мышь. Все объекты должны корректно отрисовываться с учетом положения камеры и примененных трансформаций. Постройте куб в 3D-пространстве. Реализуйте возможность вращения куба относительно положения камеры (то есть объект
всегда вращается вокруг точки, на которую смотрит камера). Управляйте направлением вращения с помощью клавиатуры.Реализуйте возможность переключения между вращением вокруг центра
объекта и вращением относительно камеры.

2) Программа должна корректно отображать освещение с учетом типов источников света,
используя написанные вами шейдеры. Постройте пирамиду в 3D-пространстве.
Реализуйте бликовое освещение (specular lighting) с возможностью управления
интенсивностью блика. Включите параметры контроля материала объекта (например, сила зеркального блика, specular power) через пользовательский интерфейс.

3) Реализуйте алгоритм трассировки лучей для отрисовки простой сцены, используя
минимальный набор примитивов (сферы, плоскости и т.д.). Реализуйте базовые эффекты: отражения, тени и освещение. Трассировка должна быть реализована как на CPU, так и с возможной оптимизацией на GPU (опционально). Постройте сцену с одной сферой и одной плоскостью (пол).
Реализуйте направленный источник света, который отбрасывает тени на объект.
Реализуйте мягкие тени (soft shadows) с помощью распределенной трассировки лучей.
Дополнительно: Реализуйте возможность изменения размера источника света, чтобы
контролировать степень мягкости теней.

Читайте на 123ru.net