Inertia - это библиотека для трехмерного рендеринга
в реальном времени, которую вы можете встроить в вашу собственную программу.
Первоначально этот трехмерный движок был частью графической библиотеки
GFXFX3 by Bas van Gaalen.
И хотя библиотека GFXFX3 в настоящее время безнадежно устарела,
движок Inertia не потерял своей актуальности
и продолжает развиваться, и будет поддерживаться еще долгое время.
Изначально Inertia была разработана весной 1996 года
для Borland Turbo Pascal 6/7, и представляла из себя полностью
16-битную библиотеку с необольшими 32-битными расширениями
для растеризации и трансформации.
Зимой 1996-97 я поддерживал и дорабатывал движок Inertia в соответствии
с возможностями моего новенького сияющего Пентиума,
и в результате появились более продвинутые версии
для 32-разрядных компиляторов TMT Pascal и Watcom C.
В связи с этим внутреннее устройство движка претерпело значительные изменения.
Я полностью переработал системы трансформации с использованием арифметики
с плавающей точкой, и добавил модули растеризации
с коррекцией перспективы и текстурирования.
Движок Inertia разрабатывался в течение долгого времени
(ну, может, и не очень долгого, но по крайней мере всё,
что было разработано до того, как Windows превратилась
в игровую платформу, и до массового внедрения аппаратных 3D акселераторов,
можно уже считать историей древнего мира :).
Более 90% всех функций, ранее заложенных мной в движок Inertia,
на сегодняшний день могут быть легко реализованы
с помощью 3D API OpenGL или Direct3D.
В связи с этим, я решил открыть исходный код, который я когда-либо
написал для Inertia, для всех желающих.
Мне кажется, что эти исходники могкт послужить хорошим учебным
пособием для тех, кто изучает машинную графику.
В общем, если у вас появятся вопросы по исходному коду,
не стесняйтесть обращаться ко мне по
email.
Различные модели затенения: Ambient, Lambert, Gouraud, Phong, без затенения
Сглаживание, текстурирование и отражение поверхностей
Любая комбинация эффектов сглаживания и затенения
Эффект прозрачности для любой модели сглаживания и затенения
Поддержка множественных объектов и камер
Импорт моделей объектов из 3D Studio .ASC и .3DS файлов
Поддержка текстур, хранимых в PCX файлах
Совместимость с компиляторами: Turbo Pascal 6/7. Borland Pascal 7
(16-bit DPMI), TMT Pascal (32-bit DOS), Watcom C v10 & v11,
и MSVC++ v5 & v6.
Оптимизация операций с плавающей точкой для процессоров Pentium
(только для TMT Pascal и C/C++).
Супер-точная растеризация для sub-pixel и sub-texel полигонов
со 100%-ной оптимизацией ассемблерного кода для процессоров Pentium
(только для TMT Pascal и C/C++).
Коррекция перспективы при текстурировании с использованием метода
16-пиксельных афинных преобразований (только для TMT Pascal и C/C++).
Быстрое 3D отсечение многоугольников (только для TMT Pascal и C/C++).
Поддержа 3DFX с помощью API библиотеки Glide Rasterization (только для Watcom C).
Полностью открытый исходный код.
Документация к Inertia
Включает в себя всю документацию, поставляемую с Inertia.
Основная часть документации подготовлена в формате MS Word.
Включена информация о регистрации библиотеки
(в связи с выпуском иходников она, разумеется, уже не актульна),
история изменений, описание формата файлов GVO,
руководство программиста,
руководство по программированию с использованием Glide
(для тех моментов, которые специфичны для версии Glide,
используемой в Inertia), a также справочник по Inertia.
Inertia/16.
Полный исходный код версии Inertia для Turbo Pascal v6 & v7
и Borland Pascal 7 (16-bit DPMI). Статус - "как есть" (as is).
Inertia/TMT.
Полный исходный код версии Inertia для TMT Pascal.
Статус - "как есть" (as is).
Inertia/Watcom C.
Полный исходный код версии Inertia для Watcom C.
Статус - "как есть" (as is).
Inertia/Windows.
Полный исходный код версии Inertia для Windows (MSVC).
Представлены только файлы исходников (без файлов проекта).
Статус - "как есть" (as is).
Примеры и Демо.
Несколько примеров использования движка, демонстрирующих возможности Inertia.
Включены исполняемые модули, файлы данных
(модели, текстуры, таблицы затенения), и исходники для TMT, Watcom C,
и MSVC.
Статус - "как есть" (as is).
Inertia/Tool Set.
Набор дополнительных утилит, входящих в состав пакета Inertia.
Приведены исполняемые модули и исходники.
В основном, это старые паскальные утилиты для конвертирования
3DS и ASC файлов в формат GVO, а также рад других утилит.