playcanvas
Version:
PlayCanvas WebGL game engine
3 lines (2 loc) • 1.39 kB
TypeScript
declare const _default: "\n#ifdef STD_NORMAL_TEXTURE\n uniform material_bumpiness: f32;\n#endif\n\n#ifdef STD_NORMALDETAIL_TEXTURE\n uniform material_normalDetailMapBumpiness: f32;\n\n // https://blog.selfshadow.com/publications/blending-in-detail/#detail-oriented\n fn blendNormals(inN1: vec3f, inN2: vec3f) -> vec3f {\n let n1: vec3f = inN1 + vec3f(0.0, 0.0, 1.0);\n let n2: vec3f = inN2 * vec3f(-1.0, -1.0, 1.0);\n return n1 * dot(n1, n2) / n1.z - n2;\n }\n#endif\n\nfn getNormal() {\n#ifdef STD_NORMAL_TEXTURE\n var normalMap: vec3f = {STD_NORMAL_TEXTURE_DECODE}(textureSampleBias({STD_NORMAL_TEXTURE_NAME}, {STD_NORMAL_TEXTURE_NAME}Sampler, {STD_NORMAL_TEXTURE_UV}, uniform.textureBias));\n normalMap = mix(vec3f(0.0, 0.0, 1.0), normalMap, uniform.material_bumpiness);\n\n #ifdef STD_NORMALDETAIL_TEXTURE\n var normalDetailMap: vec3f = {STD_NORMALDETAIL_TEXTURE_DECODE}(textureSampleBias({STD_NORMALDETAIL_TEXTURE_NAME}, {STD_NORMALDETAIL_TEXTURE_NAME}Sampler, {STD_NORMALDETAIL_TEXTURE_UV}, uniform.textureBias));\n normalDetailMap = mix(vec3f(0.0, 0.0, 1.0), normalDetailMap, uniform.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;