SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
3D  плеер  на  WebGL
Василика  Климова  
Разработчик  интерфейсов
Artec  Group
@lik04ka
MoscowJS  21
Содержание
2
        Применение  WebGL
        Преимущества
        Основные  понятия  3D  графики
        Библиотека  Three.js
        Плеер  для  просмотра  3D  моделей
• HTML5  <canvas>  
• OpenGL  ES  2.0  
• GLSL  ES  
• 2D/3D
3
WebGL
4
caniuse.com/webgl
IEWebGL
Игры
5
gooengine.com/pearl-­‐boy
6
Навигация
7
bookcase.chromeexperiments.com
Редакторы
8
3dtin.com
9
Инфографика
globe.chromeexperiments.com
10
Технологии  3D
O3D
Преимущества
11
Преимущества
• Открытый  стандарт  
• Кроссплатформенность  
• Высокая  производительность
12
Преимущества
• Автоматическое  управление  памятью  
• Отсутствие  компиляции
13
14
GLSL
Основные  понятия
• Сцена  
• Свет  
• Камера
15
Взаимосвязь  объектов
16
Камера 3D  объектыСвет
Сцена
Рендер
3D  объект
17
Полигональная  сетка
Геометрия Материал Текстура
Визуализация
• Рендер  
• Шейдер  
• Анимация
18
Three.js
19
• three.min.js                                                            420  kb  
• OBJLoader.js                                                                  
• TrackballControls.js                                      14  kb
threejs.org
@mrdoob
8  kb
Входные  данные
20
texture.jpg object.obj
Алгоритм
21
Загрузка  текстуры
Рендер,  canvas
Загрузка  3D  объекта
Сцена,  Камера,  Свет
Анимация
Сцена
22
Player.container  =  document.getElementById("webgl-­‐player");  
Player.size  =  {  
            width:  Player.container.offsetWidth,  
            height:  Player.container.offsetHeight  
};
Player.scene  =  new  THREE.Scene();
Алгоритм
23
Загрузка  текстуры
Рендер,  canvas
Загрузка  3D  объекта
Сцена,  Камера,  Свет
Анимация
Камера
24
Player.camera.position.z  =  300;  
Player.scene.add(Player.camera);
//  PerspectiveCamera(  fov,    aspect,    near,    far  )  
aspect  =  Player.size.width  /  Player.size.height;  
Player.camera  =  new  THREE.PerspectiveCamera(45.0,  aspect,  2,  8000);
25
Перспективная  проекция  
PerspectiveCamera
Ортогональная  проекция  
OrthographicCamera
Типы  камер
Алгоритм
26
Загрузка  текстуры
Рендер,  canvas
Загрузка  3D  объекта
Сцена,  Камера,  Свет  
Анимация
Свет,  рендер,  canvas  
27
Player.light  =  new  THREE.AmbientLight();  
Player.scene.add(Player.light);
//  canvas  
Player.container.appendChild(Player.renderer.domElement);
Player.renderer  =  new  THREE.WebGLRenderer({alpha:  true});  
Player.renderer.setSize(Player.size.width,  Player.size.height);
28
//  Player.scene.add(Player.light)
Player.scene.add(Player.light)
Свет
29
THREE.WebGLRenderer({alpha:  true})
THREE.WebGLRenderer()
WebGLRenderer
Алгоритм
30
Загрузка  текстуры
Рендер,  canvas
Загрузка  3D  объекта
Сцена,  Камера,  Свет
Анимация
Текстура
31
Player.textureLoader  =  new  THREE.TextureLoader();  
Player.textureLoader.load("texture.jpg",  function(texture)  {  
            Player.texture  =  texture;  
            Player.loadModel();  
});
Алгоритм
32
Загрузка  текстуры
Рендер,  canvas
Загрузка  3D  объекта
Сцена,  Камера,  Свет
Анимация
Загрузка  3D  модели
33
loadModel:  function()  {  
        objectLoader  =  new  THREE.OBJLoader();    
                
        
          
        objectLoader.load("object.obj",  function(object)  {  
                object.traverse(function(child)  {  
                        if  (child  instanceof  THREE.Mesh)  {  
                     child.material.map  =  Player.texture;  
                        }  
                });  
                Player.scene.add(object);  
        });  
}
Загрузка  3D  модели
34
loadModel:  function()  {  
        objectLoader  =  new  THREE.OBJLoader();    
                
        
      
        objectLoader.load("object.obj",  function(object)  {  
                object.traverse(function(child)  {  
                        if  (child  instanceof  THREE.Mesh)  {  
                     child.material.map  =  Player.texture;  
                        }  
                });  
                Player.scene.add(object);  
        });  
}
Загрузка  3D  модели
35
loadModel:  function()  {  
        objectLoader  =  new  THREE.OBJLoader();    
                
        
          
        objectLoader.load("object.obj",  function(object)  {  
                object.traverse(function(child)  {  
                        if  (child  instanceof  THREE.Mesh)  {  
                     child.material.map  =  Player.texture;  
                        }  
                });  
                Player.scene.add(object);  
        });  
}
Алгоритм
36
Загрузка  текстуры
Рендер,  canvas
Загрузка  3D  объекта
Сцена,  Камера,  Свет
Анимация
Анимация
37
Player.controls  =  new  THREE.TrackballControls(Player.camera,    
                      Player.container);              
animate:  function()  {  
        requestAnimationFrame(Player.animate);  
        Player.renderer.render(Player.scene,  Player.camera);  
}
Player.animate();
Player.controls.update();
Анимация
38
Запросить  браузер  повторить  
animate()
Отрисовать  модель
Обновить  положение  камеры
requestAnimationFrame
animate:  function()  {  
        requestAnimationFrame(Player.animate);  
        Player.controls.update();  
        Player.renderer.render(Player.scene,  Player.camera);  
}
39
viewshape.com
WebGL  библиотеки
•   Three.js  
•   Babylon.js  
•   Turbulenz  
•   PhiloGL
40
Полезные  ссылки
davidscottlyons.com/threejs  
Книга  Learning  Three.js:  The  JavaScript  3D  Library  for  WebGL  
Книга  WebGL.  Программирование  трехмерной  графики  
Никита  Северинов  diductio.ru/course/2060/
41
Исходники
42
github.com/Likita
43
Геймификация
Интерактивность
Василика  Климова
vasilika.klimova

likita
lik04ka
Спасибо  за  внимание!
44

Más contenido relacionado

La actualidad más candente

Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"Yandex
 
Иструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойИструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойakimovpro
 
20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_time20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_timeComputer Science Club
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKitNoveo
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...Омские ИТ-субботники
 
Python + GPGPU
Python + GPGPUPython + GPGPU
Python + GPGPUPyNSK
 
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...Yandex
 

La actualidad más candente (7)

Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
 
Иструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойИструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикой
 
20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_time20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_time
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
 
Python + GPGPU
Python + GPGPUPython + GPGPU
Python + GPGPU
 
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...
 

Similar a «3D-плеер на WebGL», Василика Климова, MoscowJS 21

Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33MoscowJS
 
Qualitative reconstruction of the camera and geometry of a scene, as a key to...
Qualitative reconstruction of the camera and geometry of a scene, as a key to...Qualitative reconstruction of the camera and geometry of a scene, as a key to...
Qualitative reconstruction of the camera and geometry of a scene, as a key to...Alexander Lavrov
 
проект Gpu digital lab швабе
проект Gpu digital lab швабепроект Gpu digital lab швабе
проект Gpu digital lab швабеoleg gubanov
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)AvitoTech
 
Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"Yandex
 
Тестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевТестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевYandex
 
технология Imagine3 d 1 1
технология Imagine3 d 1 1технология Imagine3 d 1 1
технология Imagine3 d 1 1oleg gubanov
 
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”Lviv Startup Club
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15OdessaFrontend
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...it-people
 
Василика Климова
Василика КлимоваВасилика Климова
Василика КлимоваCodeFest
 
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Dmitri Soshnikov
 
Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2PyNSK
 
Windows Phone 7 Game Development
Windows Phone 7 Game DevelopmentWindows Phone 7 Game Development
Windows Phone 7 Game DevelopmentSergii Lutai
 
Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияАрхитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияRoman_Lut
 
NettleBox - Products
NettleBox - ProductsNettleBox - Products
NettleBox - ProductsNettleTech
 
Куда катится этот веб?
Куда катится этот веб?Куда катится этот веб?
Куда катится этот веб?Mikhail Larchanka
 

Similar a «3D-плеер на WebGL», Василика Климова, MoscowJS 21 (20)

Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
 
Qualitative reconstruction of the camera and geometry of a scene, as a key to...
Qualitative reconstruction of the camera and geometry of a scene, as a key to...Qualitative reconstruction of the camera and geometry of a scene, as a key to...
Qualitative reconstruction of the camera and geometry of a scene, as a key to...
 
проект Gpu digital lab швабе
проект Gpu digital lab швабепроект Gpu digital lab швабе
проект Gpu digital lab швабе
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)
 
Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"
 
Тестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевТестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей Татаринцев
 
технология Imagine3 d 1 1
технология Imagine3 d 1 1технология Imagine3 d 1 1
технология Imagine3 d 1 1
 
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
 
Василика Климова
Василика КлимоваВасилика Климова
Василика Климова
 
Lime.JS
Lime.JSLime.JS
Lime.JS
 
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
 
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
 
Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2
 
Windows Phone 7 Game Development
Windows Phone 7 Game DevelopmentWindows Phone 7 Game Development
Windows Phone 7 Game Development
 
Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияАрхитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
 
NettleBox - Products
NettleBox - ProductsNettleBox - Products
NettleBox - Products
 
Куда катится этот веб?
Куда катится этот веб?Куда катится этот веб?
Куда катится этот веб?
 
Matchmoving Introduction
Matchmoving IntroductionMatchmoving Introduction
Matchmoving Introduction
 

Más de MoscowJS

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionMoscowJS
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидахMoscowJS
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийMoscowJS
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyMoscowJS
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkMoscowJS
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31MoscowJS
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31MoscowJS
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31MoscowJS
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31MoscowJS
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33MoscowJS
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33MoscowJS
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...MoscowJS
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...MoscowJS
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29MoscowJS
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29MoscowJS
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29MoscowJS
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28MoscowJS
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27MoscowJS
 
"Web Audio Api", Анатолий Найда, MoscowJS 27
"Web Audio Api", Анатолий Найда, MoscowJS 27"Web Audio Api", Анатолий Найда, MoscowJS 27
"Web Audio Api", Анатолий Найда, MoscowJS 27MoscowJS
 

Más de MoscowJS (20)

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидах
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложений
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkey
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
 
"Web Audio Api", Анатолий Найда, MoscowJS 27
"Web Audio Api", Анатолий Найда, MoscowJS 27"Web Audio Api", Анатолий Найда, MoscowJS 27
"Web Audio Api", Анатолий Найда, MoscowJS 27
 

«3D-плеер на WebGL», Василика Климова, MoscowJS 21