в самое начало


demo.design
3D programming FAQ




СОДЕРЖАНИЕ

Текущий release - 2. Если вы хотите дополнить FAQ, что-либо предложить или что-то увидеть в очередном release - пишите!


1. Введение
1.1 Предположения и соглашения

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-отсечение

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. Тайловые текстуры

7. Разное
7.1. Субпиксельная точность
7.2. Субтексельная точность
7.3. Поворот 3D вектора за шесть умножений
7.4. Алгоритм "бегущих кубиков" для полигонизации изоповерхностей
7.5. Формат 3DS-файла
7.6. Сплайны Кочанека-Бартельса
7.7. Кватернионы
7.8. Обратная трассировка лучей

Примеры (исходные тексты на Си)
accuracy.c - z-буфер, субпиксельная и субтексельная точность.
affine.c - аффинное текстурирование.
bicubic.c - псевдобикубическая фильтрация текстур.
bilinear.c - билинейная фильтрация текстур.
gouraud.c - z-буфер, освещение по Гуро.
iso.c - алгоритм "бегущих кубиков" для полигонизации изоповерхностей.
load3ds.c - z-буфер, освещение по Гуро, загрузка 3DS-файла.
para.c - параболическое текстурирование.
perfect.c - точное текстурирование.
persp.c - перспективно-корректное текстурирование.
phong.c - z-буфер, освещение по Фонгу.
tracer.c - обратная трассировка лучей.
3d.h - поддержка базового 3D.
mappers.h - поддержка z-буфера.
scene.h - поддержка и генерация 3D сцены.
video.h - поддержка работы с видео.