Об этом проекте
G3N (произносится «ген») — это открытый 3D-движок на OpenGL, написанный на языке программирования Go, предназначенный для создания кроссплатформенных приложений с богатыми и динамичными 3D-представлениями.
### Основные возможности
- **Кроссплатформенность:** Работает на Windows, Linux и macOS, поддержка WebAssembly завершена на 90%.
- **Встроенный GUI:** Включает базовый фреймворк с различными виджетами.
- **Иерархический граф сцены:** Узлы могут содержать другие узлы для организации 3D-сцен.
- **Пространственный звук:** Поддержка 3D-звука через OpenAL, включая форматы .wav и .ogg.
- **Освещение и рендеринг:** Реализованы ambient, направленные, точечные и прожекторные источники света в реальном времени, а также физически корректный рендеринг (отражение Френеля, геометрическое затенение, распределение микрограней).
- **Поддержка моделей и геометрии:** Загрузчики для glTF (.gltf, .glb), Wavefront OBJ (.obj) и COLLADA (.dae). Включает генераторы геометрии для кубов, сфер, цилиндров и торов, поддерживает morph targets и мультиматериалы.
- **Анимация и шейдеры:** Фреймворк анимации для позиции, вращения и масштаба, поддержка пользовательских GLSL-шейдеров (вершинных, фрагментных и геометрических).
- **Другие функции:** Поддержка HiDPI-дисплеев, перспективных и ортографических камер, TrueType-шрифтов, текстур изображений (GIF, PNG, JPEG), а также экспериментальный базовый физический движок.
### Зависимости и установка
Для работы требуются Go 1.8+, драйвер OpenGL и C-компилятор, совместимый с GCC. На Unix-системах необходимы определенные C-библиотеки (например, xorg-dev, libgl1-mesa-dev, libopenal-dev и libvorbis-dev). Для сборки на Windows используется инструментарий mingw-w64, а на macOS требуются пакеты Homebrew для OpenAL и Vorbis. Установка выполняется стандартными командами Go: клонирование репозитория и запуск `go install ./...`.
### Примеры и сообщество
В репозитории есть базовый пример «Hello G3N», показывающий синий тор и кнопку, меняющую его цвет, что демонстрирует работу камер, освещения и GUI. Проект предоставляет документацию API через GoDoc, вики-руководства и канал сообщества в Discord для поддержки и обсуждений.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.