drawBunny = regl({
frag: `
#extension GL_OES_standard_derivatives : enable
precision mediump float;
${reglContext}
varying vec3 vnormal, vbc;
void main () {
// gl_FragColor = vec4(vnormal * 0.75 + 0.25, 1.0);
// gl_FragColor = vec4(vbc, 1.0);
// The alpha = 0.0 refers it is on the wireframes.
float alpha = wireframes(vbc);
gl_FragColor = vec4(mix(vec3(1.0), vnormal * 0.75 + 0.25, alpha), 0.5);
// gl_FragColor = vec4(mix(vec3(1.0), vbc, alpha), 1.0);
}`,
vert: `
precision mediump float;
uniform mat4 projection, view;
attribute vec3 position, normal, bc;
varying vec3 vnormal, vbc;
void main () {
vnormal = normal;
vbc = bc;
gl_Position = projection * view * vec4(position, 1.0);
}`,
attributes: {
position: obj.positions,
bc: obj.barycentricCoord,
normal: normals(obj.cells, obj.positions)
},
elements: obj.cells,
blend: {
enable: true,
func: {
srcRGB: "src alpha",
srcAlpha: 1,
dstRGB: "one minus src alpha",
dstAlpha: 1
},
equation: {
rgb: "add",
alpha: "add"
},
color: [0, 0, 0, 0]
},
cull: {
enable: true,
face: "back"
},
depth: {
enable: true,
mask: false,
func: "less",
range: [0, 1]
}
})