Разработчики из компании Google представили новый эксперимент под названием WebGL Globe, основанный на использовании технологии WebGL и JavaScript.
WebGL Globe - это глобус, построенный на основе WebGL, на котором могут быть отмечены различные данные, такие как население планеты или объём поисковых запросов к поисковой машине Google по странам.
Первым примером использования WebGL Globe является отображение населения планеты:
Второй - объём поисковых запросов к Google с разделением по странам:
Команда разработчиков для визуализации использовала библиотеку Three.js: "Для каждой точки данных мы создаем куб с пятью гранями - нижняя грань, которая касается мира (глобуса), удаляется для повышения производительности. Затем куб растягивается относительно значения данных и помещается на основе широты и долготы. Наконец, мы объединяем все кубы в одной плоскости для более эффективной отрисовки".
Уже после проходила анимация глобусов: "Благодаря WebGL, мы в состоянии отображать тысячи движущихся точек при сохранении высокой частоты кадров с помощью графического процессора (GPU) для 3D вычислений. Каждое состояние мира имеет свою геометрию, и мы изменяем состояния с помощью вершинных шейдеров (vertex shader), сохраняя драгоценные ресурсы процессора. Кроме того, чтобы глобус смотрелся лучше, мы воспользовались возможностями GLSL и создали два шейдерных фрагмента, один для моделирования атмосферы, а другой для имитации фронтального освещения планеты".
При этом другие разработчики могут создать собственные глобусы, формат данных представлен в формате JSON, код доступен на code.google.com.
Таким образом получилось очень красивое изображение, которую можно воспроизвести прямо в браузере без установки каких-либо дополнительных плагинов.
Для запуска демонстрации требуется браузер с поддержкой WebGL, такими являются Opera 11.50 Preview [прямая ссылка на файл] (не путать с Alpha-версией, в которой WebGL недоступен), Google Chrome 9 и выше, ночные сборки Apple Safari, Firefox 4 и выше.