Недавно я прочитал на Webmonkey новость о том, что предложение Adobe по CSS-шейдерам, которое принесет в Интернет высококачественные кинематографические эффекты с помощью некоторых новых инструментов CSS, было принято W3C. Если вы еще не видели, посмотрите видео.
В последней версии Google Chrome Canary добавлена поддержка шейдеров CSS, поэтому я решил поэкспериментировать с ними.
В этом эксперименте я использовал собственный вершинный шейдер ( spherify.vs
) и фрагментный шейдер ( spherify.fs
), чтобы создать глобус с помощью Google Maps.
<iframe
class="globe"
src="https://maps.google.com/?ie=UTF8&amp;ll=14.597042,-15.625&amp;spn=158.47027,316.054688&amp;t=h&amp;z=2&amp;output=embed"
scrolling="no"></iframe>
.globe {
width: 550px;
height: 550px;
border: 0;
-webkit-filter: contrast(1.4) custom(url(shaders/spherify.vs) mix(url(shaders/spherify.fs) multiply source-atop),
50 50 border-box,
amount 1,
sphereRadius 0.5,
sphereAxis -0.41 1 0.19,
sphereRotation 43.5,
ambientLight 0.15,
lightPosition 1 0.87 0.25,
lightColor 1 1 1 1,
transform perspective(500));
}
Здесь мы применяем вершинный шейдер ( spherify.vs
), который будет работать с сеткой, имеющей 50 строк и 50 столбцов ( 50 50 border-box
). Не стесняйтесь читать исходный код вершинного шейдера: spherify.vs . Он написан на GLSL , но вы, вероятно, сможете следовать ему.
Функция mix()
предоставляет базовые функции для манипулирования цветом, таких как смешивание и альфа-компоновка во фрагментном шейдере.
Мы можем изменить радиус, ось, вращение шара прямо в CSS. В этом примере мы устанавливаем sphereRadius: 0.5
и это дает исходный размер сферы.
Наслаждайтесь демо!
Ниже видео эффекта. Если у вас включены шейдеры, вы можете поиграть с реальными вещами прямо ниже!
Если вы видите просто плоские карты Google выше, вы можете включить их, следуя инструкциям ниже.
Поддержка браузеров: CSS-шейдеры
В настоящее время это передовая технология, поэтому она доступна только в последних версиях Google Chrome Canary и WebKit каждую ночь. Чтобы насладиться всеми возможностями, вам придется повернуть несколько ручек.
Шаги Chrome Canary
- Введите
about:flags
на панели навигации браузера. - Найдите «Включить CSS-шейдеры». Включите это
- Перезапустите браузер
Ночные шаги WebKit
- Загрузите и установите WebKit каждую ночь для Mac OSX.
- Откройте панель настроек браузера. Перейдите на вкладку «Дополнительно» и установите флажок, чтобы в строке меню отображалось меню «Разработка» > «Включить WebGL» .
- В строке меню браузера выберите «Разработать».