Revision control

Copy as Markdown

{
"QEN": {
"description": "Generates normal mapping effect where texture is used for adding 3D appearance for the source item. This is useful for example to faking the lighting of bumps and dents.",
"fragmentCode": [
"@main",
"{",
" vec2 coord = vec2(fract(texCoord * normalMapTextureScale));",
" vec4 normalMapTexture = texture(normalMapImage, coord);",
" vec3 lightDir = vec3(normalMapLightPosition.xy - texCoord, normalMapLightPosition.z);",
" // Aspect ratio correction",
" lightDir.x *= iResolution.x / iResolution.y;",
" float d = length(lightDir);",
" vec3 n = normalize(normalMapTexture.rgb * 2.0 - 1.0);",
" vec3 l = normalize(lightDir);",
" vec3 normalMapDiffuse = (normalMapLightColor.rgb * normalMapLightColor.a) * max(dot(n, l), 0.0);",
" float lightFade = 1.0 / (normalMapLightFade + normalMapLightFade * d + normalMapLightFade * d * d);",
" // Fade based on normal map alpha",
" lightFade *= pow(normalMapTexture.a, 10.0);",
" vec3 normalMap = fragColor.rgb * normalMapDiffuse * lightFade;",
" fragColor.rgb = mix(fragColor.rgb, normalMap, normalMapOpacity);",
"}"
],
"name": "NormalMapping",
"properties": [
{
"defaultValue": "../images/scratches_n.png",
"description": "Texture for the normal mapping effect. If scaling is used then this should support seamless tiling.",
"name": "normalMapImage",
"type": "image"
},
{
"defaultValue": "1",
"description": "Scaling of the normal map texture. The default value is 1.0, meaning the texture matches to source item size.",
"maxValue": "4",
"minValue": "0.2",
"name": "normalMapTextureScale",
"type": "float"
},
{
"defaultValue": "0.5, 0.5, 0.5",
"description": "Position of the point light relative to the item coordinates. Bigger z value means the light if further away from the surface.",
"maxValue": "1, 1, 1",
"minValue": "0, 0, 0",
"name": "normalMapLightPosition",
"type": "vec3"
},
{
"defaultValue": "1, 1, 1, 1",
"description": "Defines color of the light. The default value is white (1.0, 1.0, 1.0, 1.0).",
"name": "normalMapLightColor",
"type": "color"
},
{
"defaultValue": "0.5",
"description": "Defines the fading rate at which the lighting effect dims the light in proportion to the distance to the light. The default value is 0.5.",
"maxValue": "1",
"minValue": "0",
"name": "normalMapLightFade",
"type": "float"
},
{
"defaultValue": "1",
"description": "Defines the opacity of the normal map effect. Value 1.0 means full opacity while 0.0 means full transparency. The default value is 1.0.",
"maxValue": "1",
"minValue": "0",
"name": "normalMapOpacity",
"type": "float"
}
],
"version": 1
}
}