Эксперименты с WebGL
В своем индивидуальном разделе я хотел бы рассказать о своих экспериментах с трехмерной графикой, которая теперь доступна в новых браузерах.
WebGL (Web-based Graphics Library) — программная библиотека для языка программирования JavaScript, позволяющая создавать на JavaScript интерактивную 3D-графику, функционирующую в широком спектре совместимых с ней веб-браузеров.
В ходе магистерской работы мной был создан примитивный редактор помещений, в нем помощью блоков можно создать основу простой сцены. Он не подходит для создания сложных моделей, однако позволяет импортировать их из специальных файлов. Основа сцены выглядит так:
 
			Для создания наполнения из более сложных моделей, я использовал бесплатную программу Blender
 [2].
 
			Для сохранения модели в файл можно было использовать любой из доступных форматов, однако я сохранял с помощью скрипта на Python в простой .txt
 файл примерно такого вида:
 
			Данный формат слишком громоздский и неудобный для загрузки, так как является текстовым. Поэтому я создал небольшую программу, которая упаковывает описание модели в компактный бинарный файл. При ее создании я использовал бесплатную библиотеку Tri Stripper
 [3] для оптимизации рисования модели. После добавления моделей в редакторе сцена выглядит так:
 
			После загрузки всего этого в браузере, я получил такую картинку:
 
			В качестве источника света взят направленный источник, имитирующий солнце. Очевидно, не хватает тени. Обычно для этого используют карты теней
. Наиболее надежным и простым способом покрытия большого участка являются каскадные тени. Они позволяют обойтись картой небольшого разрешения [4], разбивая область вида на несколько частей. 
			
 
			После создания простой (и скорее всего с ошибками) реализации я получил это:
 
			В конечный вариант я добавил еще несколько фильтров изображения: свечение, затенение краев и сглаживание FXAA [5].
 
			 
			«Живая» демонстрация всего этого доступна по ссылке. [Электронный ресурс]. – Режим доступа: http://yablokowtzi.zz.mu/
Список источников:
1. Сайт с уроками по OpenGL. [Электронный ресурс]. – Режим доступа: http://nehe.gamedev.net/
			2. Сайт редактора Blender. [Электронный ресурс]. – Режим доступа: https://www.blender.org/
			3. Библиотека TriStripper. [Электронный ресурс]. – Режим доступа: http://users.telenet.be/tfautre/softdev/tristripper/
			4. Cascaded Shadow Maps. [Электронный ресурс]. – Режим доступа: https://msdn.microsoft.com/
			5. Сглаживание FXAA. [Электронный ресурс]. – Режим доступа: http://en.wikipedia.org/wiki/Fast_approximate_anti-aliasing
			
