Сделано полностью мною за 3 недели. Полностью SoftWare(Picture1.Picture
), вообще без Direct3D! Использует только базовые функции DirectDraw для быстрого вывода пикселей.
Демонстрационная программа показывает, как осуществлять программную растеризацию сцены с базовыми возможностями: преобразование, 3D-отсечение, текстурирование, освещение, Z-Buffer, mip-mapping, и т.д. Фактически, все построено на векторной и аналитической геометрии, так что без ее знания врядли что-то можно понять в исходниках
Но посмотреть на результат все равно стоит! Перемещаться по сцене - как в играх, с помошью стрелок, мыши, CTRL/SHIFT.
Можно поставить любое разрешение, глубину цвета. В процессе работы можно переключать режими (WireFrame->Solid->Textured->Textured(persp) 1/z buffer-> Textured(persp) 1/z buffer gouraud, + ULTRA режим с билинейной фильтрацией
). В последнем режиме изображение выглядит ни чуть не хуже, чем, например, уровень Unreal Tournament на уппаратном ускорении.
А теперь самое интересное: все это сделано на VB
, причем дает не такие уж плохие скоростные показатели. Две самые мощные функции отображения треугольников все-таки переписаны еще и на на C++ (не удержался), и это уже дало выигрыш в два раза. Увы, VB слабо подходит для оптимизационных целей .
В придачу еще и загрузчик MD2.
Весит 2М, но оно того стоит! Тестируйте, хвалите
. И не забудьте поэкспериментировать с разными режимами экрана и отображения!
У вас нет доступа для просмотра вложений в этом сообщении.