UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

2 lines (1 loc) 1.12 kB
export default "varying vec3 vNormal;\nvarying vec3 vWorldPosition;\nvarying vec3 vWorldOrigin;\n\nuniform vec3 lightColor;\n\n// uniform vec3 spotPosition;\n\nuniform float attenuation;\nuniform float anglePower;\n\nvoid main(){\n\n //////////////////////////////////////////////////////////\n // distance attenuation //\n //////////////////////////////////////////////////////////\n float intensity = distance(vWorldPosition, vWorldOrigin) / attenuation;\n intensity = 1.0 - clamp(intensity, 0.0, 1.0);\n\n //////////////////////////////////////////////////////////\n // intensity on angle //\n //////////////////////////////////////////////////////////\n vec3 normal = vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity = pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity = intensity * angleIntensity;\n // 'gl_FragColor = vec4( lightColor, intensity );\n\n //////////////////////////////////////////////////////////\n // final color //\n //////////////////////////////////////////////////////////\n\n // set the final color\n gl_FragColor = vec4( lightColor, intensity);\n}";