Появляющиеся новые технологии меняют сеть с ее обычных 2D-входов и выходов на 3D и виртуальные миры. Даже у смартфонов достаточно мощности, чтобы проецировать новые миры на ходу. Вместо того, чтобы формировать новый веб-стандарт, известные технологии перерабатываются для поддержки такого впечатляющего результата. Это благословение или проклятие. Пока разработчики не должны менять инструменты и свои привычки, доступные возможности ограничены наследием. Для обычных вещей этого достаточно, но для требовательных к производительности приложений, таких как виртуальная реальность, это узкое место является важным мотивом для разработки платформенно-зависимого невеб-контента.

В этой еженедельной серии блогов мы попытаемся раскрыть возможности и выявить узкие места и ограничения. Я попытаюсь облегчить мир WebGL и Unity3D с нетехнической точки зрения.

В нашей первой статье мы рассмотрим технологию, используемую для проецирования 3D-пространства на 2D-экран. WebGL — ключевая технология, позволяющая использовать OpenGL в вашем браузере. В то время как OpenGL был первым широко распространенным стандартом, позволяющим использовать 3D на вашем компьютере с 1992 года, WebGL — это расширение в вашем браузере, позволяющее использовать OpenGL ES 2.0 (WebGL 1.0).

OpenGL — это хорошо известный API-интерфейс растеризатора, который генерирует графические выходные данные в основном через конечный автомат. Вы устанавливаете правильное поведение состояния OpenGL, устанавливаете свои матрицы, отправляете геометрическую информацию, текстуры на свой графический процессор и запускаете растеризацию, на которую будут влиять используемые шейдеры. Шейдеры — это очень быстрые программы для графических процессоров, которые почти мгновенно изменяют визуальный вывод.
При первом просмотре вы обнаружите, что этот процесс принципиально отличается от динамического подхода REST, где вы в основном используете события для создания правильного поведения. Именно для этого событийно-ориентированного подхода и был разработан JavaScript. С WebGL сталкиваются два разных мира. Это одна из основных причин, по которой этот стандарт не так популярен среди веб-разработчиков. В большинстве случаев только программист графики может справиться со сложностью программы OpenGL.

На этом этапе Unity3D (и другие замечательные движки) придут вам на помощь из темных пустот математического программирования. Unity3D — это кроссплатформенный движок, который может генерировать все виды потрясающих визуальных эффектов удобным способом. Магазин активов поможет вам создать собственный стек разработки и сократит циклы разработки. Для реализации пользовательского поведения вы можете использовать C# или даже модифицированную версию JavaScript. Эти называемые скрипты прикрепляются к игровым объектам, которые являются вашими актерами в вашем графе сцены. Эта организационная структура будет преобразована в команды OpenGL и логику JavaScript в выходных данных WebGL.

Обходя прямой WebGL, вы можете разрабатывать 3D-контент быстро, дешево и удобно. Не зная деталей конвейера рендеринга или математических основ процесса растеризации. Это не значит, что эти знания бесполезны, если вы используете Unity3D. Но вы можете добиться больших результатов и без этого опыта. А если вам нужно больше, есть действительно хорошие специалисты, которые могут помочь вам с вашими проектами.

Первоначально опубликовано в fxw blog.