export declare const speckleViewportFrag = "\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\nuniform float minIntensity;\nvarying vec3 vViewPosition;\n\n#ifdef MATCAP_TEXTURE\n\tuniform sampler2D tMatcap;\n#endif\n\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t// #include COMMENTED CHUNK\n\t#ifdef OPAQUE\n\t\tdiffuseColor.a = 1.0;\n\t#endif\n\n\t// https://github.com/mrdoob/three.js/pull/22425\n\t#ifdef USE_TRANSMISSION\n\t\tdiffuseColor.a *= transmissionAlpha + 0.1;\n\t#endif\n\n\tvec3 normal = normalize( vNormal );\n\tvec3 viewDir = normalize( vViewPosition );\n vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n vec3 y = cross( viewDir, x );\n vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\n\tvec3 color = vec3(1.0);\n\t#ifdef MATCAP_TEXTURE\n\t\tcolor = texture2D(tMatcap, uv).rgb;\n\t#else\n\t\tcolor = vec3( mix( minIntensity, 1., uv.y ) );\n\t#endif\n\n\tgl_FragColor = vec4( color.rgb, diffuseColor.a);\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n";