UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

3 lines (2 loc) 1.2 kB
declare const _default: "\n#ifdef STD_NORMAL_TEXTURE\n uniform float material_bumpiness;\n#endif\n\n#ifdef STD_NORMALDETAIL_TEXTURE\n uniform float material_normalDetailMapBumpiness;\n\n vec3 blendNormals(vec3 n1, vec3 n2) {\n // https://blog.selfshadow.com/publications/blending-in-detail/#detail-oriented\n n1 += vec3(0, 0, 1);\n n2 *= vec3(-1, -1, 1);\n return n1 * dot(n1, n2) / n1.z - n2;\n }\n#endif\n\nvoid getNormal() {\n#ifdef STD_NORMAL_TEXTURE\n vec3 normalMap = {STD_NORMAL_TEXTURE_DECODE}(texture2DBias({STD_NORMAL_TEXTURE_NAME}, {STD_NORMAL_TEXTURE_UV}, textureBias));\n normalMap = mix(vec3(0.0, 0.0, 1.0), normalMap, material_bumpiness);\n\n #ifdef STD_NORMALDETAIL_TEXTURE\n vec3 normalDetailMap = {STD_NORMALDETAIL_TEXTURE_DECODE}(texture2DBias({STD_NORMALDETAIL_TEXTURE_NAME}, {STD_NORMALDETAIL_TEXTURE_UV}, textureBias));\n normalDetailMap = mix(vec3(0.0, 0.0, 1.0), normalDetailMap, material_normalDetailMapBumpiness);\n normalMap = blendNormals(normalMap, normalDetailMap);\n #endif\n\n dNormalW = normalize(dTBN * normalMap);\n#else\n dNormalW = dVertexNormalW;\n#endif\n}\n"; export default _default;