WebGL library for 2GIS projects


Keywords
canvas, javascript, webgl, webmaps
License
Sendmail
Install
npm install 2gl@0.13.3

Documentation

2gl Build Status Coverage Status

УзкоспСциализированная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° WebGL для использования Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… 2GIS

ДокумСнтация

  • Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° glMatrix
  • Π Π°Π±ΠΎΡ‚Π° с гСомСтричСскими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Plane, Line3, Ray, взята ΠΈΠ· three.js

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для отобраТСния:

  1. Basic mesh - мСш, Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ Ρ†Π²Π΅Ρ‚
  2. Complex mesh - мСш, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ: Ρ†Π²Π΅Ρ‚Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½, освСщСниС, тСкстуру ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ для ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ тСкстура
  3. Sprite - спрайт, ΠΊ ΠΊΠ°ΠΌΠ΅Ρ€Π΅ располоТСн всСгда ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€Π°Π½ΡŒΡŽ, ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ Π½Π΅ влияСт Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ изобраТСния
  4. 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 install
  • npm start

Checking examples locally

  • Install http-server
  • Run http-server at the root project directory
  • Open http://localhost:8080/ and navigate to some *.html demo at the examples directory

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.