Skip to content

Latest commit

 

History

History
81 lines (50 loc) · 3 KB

File metadata and controls

81 lines (50 loc) · 3 KB

ogl-renderer

OCaml OpenGL renderer

Лабораторная работа #4

  • Тема: Просмотр моделей через OpenGL
  • Преподаватель: Пенской Александр Владимирович
  • Выполнил: Горляков Даниил Петрович, 367165
  • ИТМО, Санкт-Петербург, 2025

Описание работы

Данная лабораторная работа направлена на изучение основ 3D графики и применение функционального программирования для создания графических приложений.

Основные компоненты:

  1. Система рендеринга с использованием современного OpenGL
  2. Загрузка и отображение 3D моделей через библиотеку ASSIMP
  3. Реализация камеры и управления сценой
  4. Система шейдеров и текстурирования

Структура проекта

  • bin/ — основная точка входа в приложение
  • lib/ — основные модули
    • render/ — модули рендеринга (шейдеры, текстуры, модели)
    • math/ — математические утилиты (векторы, матрицы, камера)
  • test/ — тесты для проверки функциональности
  • resources/ — ресурсы (модели, текстуры)

Реализация компонентов

Запуск проекта

OCaml packages

opam install tgls stb_image assimp ppx_inline_test

Сборка и запуск

Сборка проекта

dune build

Запуск приложения

dune exec _build/default/bin/main.exe

Управление

  • W/A/S/D: Движение камеры
  • Левая кнопка мыши + перемещение: Осмотр сцены
  • Прокрутка мыши: Масштабирование
  • ESC: Выход

Выводы

Разработка 3D приложения на OCaml с использованием OpenGL позволила глубже понять как основы компьютерной графики, так и особенности функционального программирования при работе с графикой. Основные наблюдения:

  1. OCaml ПЛОХО подходит для создания графических приложений
  2. Что и правда выручило, система типов OCaml помогает избежать многих ошибок на этапе компиляции

Лицензия

MIT License

deps

opam:

glfw-ocaml 3.3.1-2

tgls 0.8.6

ocaml 5.0.0

dune 3.17.2