2gl
WebGL library for 2gis projects
Install / Use
/learn @2gis/2glREADME
2gl

Узкоспециализированная библиотека WebGL для использования в проектах 2GIS
- Для работы с матрицами и векторами используется библиотека glMatrix
- Работа с геометрическими объектами, например, Plane, Line3, Ray, взята из three.js
На данный момент может работать со следующими типами объектов для отображения:
- Basic mesh - меш, закрашивается в один цвет
- Complex mesh - меш, для которого можно установить: цвета для каждой из вершин, освещение, текстуру и определять для какой из вершин будет использоваться текстура
- Sprite - спрайт, к камере расположен всегда одной гранью, удалённость не влияет на размеры изображения
- MultiSprite - мультиспрайт представляет собой множество спрайтов, которые рисуются в один draw call
Examples
Установка
npm install 2gl
Подключение
Есть несколько способов подключения библиотеки:
- Напрямую через тег, скрипт
2gl.jsлежит в папкеdistи содержит все компоненты библиотеки:
<script src="2gl.js"></script>
- Если вы используете сборщики, например,
browserifyилиwebpack:
var dgl = require("2gl"); // CommonJS
import dgl from "2gl"; // ES6
- Можно подключать только нужные компоненты для уменьшения размера:
var Mesh = require("2gl/Mesh");
var AmbientLight = require("2gl/lights/AmbientLight");
Development
npm installnpm start
Checking examples locally
- Install
http-server - Run
http-serverat the root project directory - Open http://localhost:8080/ and navigate to some
*.htmldemo at theexamplesdirectory
Release
If you plan to release a new version from your branch
- Bump version via
npm version major | minor | patch - Merge your branch into master
- Create a new release, this will run the release workflow
Beta-release
Beta-release is suitable to perform some checks/integrations with npm-package.
It releases the same npm package as a regular release, but in the beta tag, which do not update latest version on npm.
To make beta-release you should create a tag with a current version in package.json and suffix, e.g.
npm version 0.12.0-foo-bar
And then push tag.
git push --tags
Pushed tag will run the beta-release workflow.
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
