Лабораторная работа № 9. Освещение и текстурирование
Требуемые условия завершения
Открыто с: понедельник, 21 октября 2024, 08:00
Срок сдачи: среда, 4 декабря 2024, 23:00
1. Освещение
Реализовать модели освещения для затенения фигур. (для 3d-модели, удаляя нелицевые грани)
- Вычислить нормаль к каждой вершине (или взять из из obj-файла, если модель загружается из него).
- Добавить положение источника света и цвет объекта.
- Добавить возможность применения аффинных преобразований к объекту.
1.1 Шейдинг Гуро для модели Ламберта
- Вычислить цвет в каждой вершине по модели Ламберта (диффузное отражение).
- Закрасить грань методом Гуро, интерполируя цвет между цветами вершин методом билинейной интерполяции.
1.2 Шейдинг Фонга для модели туншейдинг
- Интерполировать нормали между вершинами методом билинейной интерполяции, с последующей нормализацией.
- Закрасить грань, вычисляя цвет в соответствии с моделью туншейдинга и интерполированной нормалью.
2. Текстурирование
Реализовать алгоритм наложения текстуры на полигон. (для 3d-модели, удаляя нелицевые грани)
- Добавить координаты текстуры к каждой вершине.
- При отрисовке грани интерполировать координаты текстуры между координатами вершин.
- Продемонстрировать текстурирование на правильных многогранниках (тетраэдр, куб, октаэдр).
- Добавить возможность применения преобразований к объекту.