Раздел ведет Сергей Ермак

  3D-колледж

 

Внимание! Сергей Ермак aka Mi открыл собственную страничку:
http://ru-prog.newmail.ru

Добро пожаловать, там Вы найдете много интересного по 3D - в том числе и новые материалы 3D-колледжа

А теперь слово Mi:


Итак я приветствую тех, кто решил наконец-то заняться 3D программированием. Курс занятий у нас будет таким:

1. Введение в трехмерную графику
    1.1. Что такое трехмерная графика
    1.2. Объект, сцена, камера, источник света - основные понятия
    1.3. Предположения и соглашения
    1.4. Инициализация монитора и видеокарты

2. Основы 3D графики
    2.1. Задание объектов и сцен
    2.2. Проецирование
    2.3. Матричные преобразования
    2.4. Рисование одноцветного треугольника
    2.5. Работа с произвольной камерой

3. Удаление невидимых частей
    3.1. Отсечение нелицевых граней
    3.2. Алгоритм художника
    3.3. Z-буфер
    3.4. Порталы
    3.5. Z-отсечение
    3.6. Отсечение
        3.6.1. Отсечение при растеризации
        3.6.2. Алгоритм Сазерленда-Ходжмана
        3.6.3. 3D-отсечение
        3.6.4. BSP-дерево

4. Текстурирование
    4.1. Точное
    4.2. Афинное
    4.3. Перспективно-корректное
    4.4. Параболическое
    4.5. Билинейная фильтрация текстур
    4.6. Мипмэппинг

5. Освещение
    5.1. Модель освещения
    5.2. Расчет нормали к объекту
    5.3. Освещение по Ламберту
    5.4. Освещение по Гуро
    5.5. Освещение по Фонгу
    5.6. Как совместить текстуру и освещение
    5.6.1. 256-цветные режимы
        5.6.2 . 24/32-битные режимы
        5.6.3.15/16-битные режимы

6. Оптимизация
    6.1. Приемы оптимизации для процессоров Intel Pentium
        6.1.1. Спаривание целочисленных команд
        6.1.2. Кэш-память
        6.1.3. Разные трюки
    6.2. Примеры внутренних циклов текстурирования
    6.3. Использование инструкций MMX
    6.4.Тайловые текстуры
    6.5. Поворот вектора за 6 умножений
    6.6. Предварительные расчеты

7. Разное
    7.1. Субпиксельная точность
    7.2. Субтексельная точность
    7.3. Рисование линии
    7.4. Алгоритм "бегущих кубиков" для полигонизации изоповерхностей
    7.6. Сплайны Кочанека-Бартельса
    7.7. Квартернионы
    7.8. Обратная трассировка лучей
    7.9. Алгоритм контрольных кубов
    7.10. Воксельная графика
    7.11 Сортировка полигонов
        7.11.1. Обзор алгоритмов сортировки
    7.12. Collision Detection в трехмерном пространстве

8. Форматы файлов
    8.1. 3DS - 3D Studio
    8.2. BMP - Windows Bitmap
    8.3. GIF89a, GIF87a

9. Использование стандартных библиотек
    9.1. Microsoft OpenGL
    9.2. Microsoft Direct3D

10. Спецэффекты
    10.1. Имитация водной поверхности
    10.2. Имитация огня
    10.3. Bump mapping
    10.4. Блики на линзах (Lens Flare)
    10.5. Процедуральные текстуры
    10.6. Частицы
    10.7. Volumetric fog

11. Пример трехмерного приложения
    11.1. Cube.CPP - 1 версия
    11.2. Cube.CPP - 2 версия
    11.3. Cube.CPP - 3 версия

12. Полезные алгоритмы и всякие разности :)
    12.1. Пересечения, расстояния и т.д.
        12.1.1. Пересечение луча и сферы
        12.1.2. Пересечение линии и плоскости
        12.1.3. Пересечение луча и полигона
        12.1.4. Пересечение двух треугольников
        12.1.5. Расстояние между двумя линиями
    12.2. Просчет объемных фигур