Эта программа представляет собой 3D-движок, предназначенный для отображения и взаимодействия с 3D-моделями, основанными на данных высот и цветов. Она позволяет загружать модели из файлов формата FDF или конвертировать изображения в FDF для последующего 3D-отображения.
- Загрузка файлов формата FDF: Файл FDF содержит данные о высоте и цвете каждой точки модели.
- Конвертация изображений в FDF: Программа поддерживает изображения форматов PNG, JPG и JPEG, конвертируя их в 3D-модели.
- Интерактивное взаимодействие: Возможность вращения модели, масштабирования и перемещения с помощью мыши.
- Рендеринг с использованием OpenGL: 3D-отображение и рендеринг моделей выполняются с использованием OpenGL.
- Python 3.6+
- Библиотеки:
pygamePyOpenGLnumpyPIL(илиPillow)
Для установки всех необходимых библиотек используйте следующую команду:
pip install pygame PyOpenGL numpy Pillow- Клонируйте репозиторий или скачайте исходный код.
- Убедитесь, что у вас установлены все необходимые библиотеки.
- Запустите программу, используя следующую команду:
python main.py
- При запуске программы откроется окно выбора файла. Выберите файл формата
.fdfили изображение (PNG, JPG, JPEG). - Если выбран файл изображения, программа конвертирует его в FDF-формат и отобразит результат в 3D.
- Используйте мышь для взаимодействия с моделью:
- Левая кнопка мыши: Вращение модели.
- Колесико мыши: Масштабирование модели.
Формат FDF представляет собой текстовый файл, в котором каждая строка содержит данные о высоте и цвете в следующем формате:
высота1,цвет1 высота2,цвет2 ...
Например:
1.2,FF0000 1.5,00FF00 0.8,0000FF
1.1,FFAA00 1.4,AAFF00 0.7,00AAFF
main.py- основной файл для запуска программы.model_viewer.py- класс для отображения и управления 3D-моделью.convert_to_fdf.py- модуль для конвертации изображений в формат FDF.utils.py- содержит функциюread_fdf_file, которая загружает данные из FDF-файла.
При запуске программа предложит выбрать файл FDF или изображение. После выбора изображения оно будет конвертировано в FDF и отобразится в виде 3D-модели, где высота определяется яркостью пикселя изображения.
- При отсутствии информации о цветах в FDF, программа будет отрисовывать модель в белом цвете.
- При работе с большими изображениями или моделями возможно увеличение времени загрузки и рендеринга.
Программа является свободным программным обеспечением и распространяется под лицензией MIT.
