This presentation was given at the WebVisions conference held in Barcelona, Spain on Saturday, July 7th. The slides are supporting the presentation, and do not have enough textual information to be understood by themselves.
At the time it was created, the presentation required a prototype build of the Chromium browser to view the prototype features it uses. You can get the prototype implementation on github.com/adobe/webkit/downloads.
You can navigate with the left and right arrow keys and with the up/down keys to drill into sections.
Raul Hudea
Computer Scientist
Web Platform
#myelement {
filter: shorthand-function(params);
}
#myelement {
filter: url(#svg-filter-id);
}
<filter id='Emboss' filterUnits='objectBoundingBox' >
<feColorMatrix result='pict0' in='SourceGraphic'
type='luminanceToAlpha'/>
<feSpecularLighting result='pict1' in='pict0'
lighting-color='white'
specularConstant='1'
specularExponent='16' surfaceScale='6'>
<fePointLight x='-200' y='100' z='380'
id="light"/>
</feSpecularLighting>
<feComposite in2='pict1' in='SourceGraphic'
operator='out' k1='3.3' k2='0.2' k3='0.1' k4='0'/>
</filter>
#myelement {
filter: custom(params)
}
#myelement {
filter: custom(
);
}
#myelement {
filter: custom( url(vertex.vs)
,4 4);
}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore.
#myelement {
filter: custom( url(vertex.vs)
url(fragment.fs)
,4 4);
}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore.
#myelement {
filter: custom( url(vertex.vs)
url(fragment.fs)
,4 4
,amount(0.5));
}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore.
precision mediump float;
// vertex attributes
attribute vec4 a_position;
attribute vec2 a_texCoord;
// shader uniform
uniform mat4 u_projectionMatrix;
//
varying vec2 v_texCoord;
uniform mat4 txf;
... const defines (PI, PHI) ...
void main() {
v_texCoord = a_texCoord;
vec4 pos = a_position;
pos.z = 40.0 * cos(pos.x * PI * 2.0 + PHI);
gl_Position = u_projectionMatrix * txf * pos;
}
precision mediump float;
// These uniform values are passed in using CSS.
uniform float frontColor;
uniform float backColor;
// This varying value is passed from vertex shader.
varying float shadow;
void main()
{
// Use gl_FrontFacing to hide the back face.
float c = gl_FrontFacing ? frontColor : backColor;
float a = shadow * c;
css_BlendColor = vec4(a, a, a, c);
}
#myelement {
alpha-compositing: value;
}
#myelement {
blend-mode: value;
}
Icons from the Noun project
Image with permission from miChou
Image from personal collection
Fonts