{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/queen3d/queen/osgAnimation/Bone.js","webpack:///./src/queen3d/queen/osg/PooledArray.js","webpack:///./src/queen3d/queen/osg/MatrixTransform.js","webpack:///./src/queen3d/queen/osg/Projection.js","webpack:///./src/queen3d/queen/osg/KdTree.js","webpack:///./src/queen3d/queen/osgAnimation/MorphAttribute.js","webpack:///./src/queen3d/queen/osg/BufferArray.js","webpack:///./src/queen3d/queen/osgDB/options.js","webpack:///./src/queen3d/queen/osgDB/Input.js","webpack:///./src/queen3d/queen/osg/WebGLCaps.js","webpack:///./src/queen3d/queen/osg/primitiveFunctor.js","webpack:///./src/queen3d/queen/osgShader/node/Node.js","webpack:///./src/queen3d/queen/osgDB/fileHelper.js","webpack:///./src/queen3d/queen/osg/StateAttribute.js","webpack:///./src/queen3d/queen/osg/CullSettings.js","webpack:///./src/queen3d/queen/osg/GLObject.js","webpack:///./src/queen3d/queen/osg/primitiveSet.js","webpack:///./src/queen3d/queen/osg/Plane.js","webpack:///./src/queen3d/queen/osg/math.js","webpack:///./src/queen3d/queen/osgAnimation/SkinningAttribute.js","webpack:///./src/queen3d/queen/osg/Timer.js","webpack:///./src/queen3d/queen/osg/BillboardAttribute.js","webpack:///./src/queen3d/queen/osg/ColorMask.js","webpack:///./src/queen3d/queen/osg/EllipsoidModel.js","webpack:///./src/queen3d/queen/osg/ImageStream.js","webpack:///./src/queen3d/queen/osg/LineWidth.js","webpack:///./src/queen3d/queen/osg/PointSizeAttribute.js","webpack:///./src/queen3d/queen/osg/TextureCubeMap.js","webpack:///./src/queen3d/queen/osg/TriangleIndexFunctor.js","webpack:///./src/queen3d/queen/osg/osg.js","webpack:///./src/queen3d/queen/osg/PooledResource.js","webpack:///./src/queen3d/queen/osg/primitiveIndexFunctor.js","webpack:///./src/queen3d/queen/osg/StateSet.js","webpack:///./src/queen3d/queen/osg/Transform.js","webpack:///./src/queen3d/queen/osg/Uniform.js","webpack:///./src/queen3d/queen/osgAnimation/AnimationUpdateCallback.js","webpack:///./src/queen3d/queen/osgViewer/Renderer.js","webpack:///./src/queen3d/queen/osg/FrameStamp.js","webpack:///./src/queen3d/queen/osgShader/ShaderGenerator.js","webpack:///./src/queen3d/queen/osg/Shader.js","webpack:///./src/queen3d/queen/comm/events.js","webpack:///./src/queen3d/queen/application/Config.js","webpack:///./src/queen3d/queen/application/shaders/baseShaderChunks.js","webpack:///./src/queen3d/queen/application/shaders/postProcessShaderChunks.js","webpack:///./src/queen3d/queen/osgGA/Manipulator.js","webpack:///./src/queen3d/queen/osgGA/Controller.js","webpack:///./src/queen3d/queen/osgViewer/input/InputConstants.js","webpack:///./src/queen3d/queen/osgGA/FirstPersonManipulatorDeviceOrientationController.js","webpack:///./src/queen3d/queen/osgGA/OrbitManipulatorDeviceOrientationController.js","webpack:///./src/queen3d/queen/osgGA/OrbitManipulatorGamePadController.js","webpack:///./src/queen3d/queen/osgGA/OrbitManipulatorHammerController.js","webpack:///./src/queen3d/queen/osgGA/orbitManipulatorEnums.js","webpack:///./src/queen3d/queen/osgGA/OrbitManipulatorStandardMouseKeyboardController.js","webpack:///./src/queen3d/queen/osgGA/OrbitManipulatorWebVRController.js","webpack:///./src/queen3d/queen/osgUtil/DelayInterpolator.js","webpack:///./src/queen3d/queen/osgGA/OrbitManipulator.js","webpack:///./src/queen3d/queen/osgViewer/webgl-debug.js","webpack:///./src/queen3d/queen/osgStats/Graph.js","webpack:///./src/queen3d/queen/osgStats/BufferStats.js","webpack:///./src/queen3d/queen/osgStats/Counter.js","webpack:///./src/queen3d/queen/osgStats/TextGenerator.js","webpack:///./src/queen3d/queen/osgStats/Stats.js","webpack:///./src/queen3d/queen/osgStats/defaultStats.js","webpack:///./src/queen3d/queen/osgStats/glStats.js","webpack:///./src/queen3d/queen/osgStats/browserStats.js","webpack:///./src/queen3d/queen/osgViewer/input/InputManager.js","webpack:///./src/queen3d/queen/osgViewer/input/source/InputSource.js","webpack:///./src/queen3d/queen/osgViewer/input/source/InputSourceMouse.js","webpack:///./src/queen3d/queen/osgViewer/input/source/InputSourceKeyboard.js","webpack:///./src/queen3d/queen/osgViewer/input/source/InputSourceWebVR.js","webpack:///./src/queen3d/queen/osgViewer/input/source/InputSourceGamePad.js","webpack:///./src/queen3d/queen/osgViewer/input/source/InputSourceDeviceOrientation.js","webpack:///./src/queen3d/queen/osgViewer/input/source/InputSourceTouchScreen.js","webpack:///./src/queen3d/queen/osgViewer/Viewer.js","webpack:///./src/queen3d/queen/osgViewer/osgViewer.js","webpack:///./src/queen3d/queen/application/FeatureEventManager.js","webpack:///./src/queen3d/queen/application/RenderDetail.js","webpack:///./src/queen3d/queen/application/GLState.js","webpack:///./src/queen3d/queen/application/PickMask.js","webpack:///./src/queen3d/queen/osgUtil/ComposerPostProcess.js","webpack:///./src/queen3d/queen/osgUtil/gizmoGeometry.js","webpack:///./src/queen3d/queen/osgUtil/debug.js","webpack:///./src/queen3d/queen/osgUtil/NodeGizmo.js","webpack:///./src/queen3d/queen/osgUtil/PolytopeIntersectFunctor.js","webpack:///./src/queen3d/queen/osgUtil/PolytopeIntersector.js","webpack:///./src/queen3d/queen/osgUtil/SphereIntersectFunctor.js","webpack:///./src/queen3d/queen/osgUtil/SphereIntersector.js","webpack:///./src/queen3d/queen/osgUtil/TangentSpaceGenerator.js","webpack:///./src/queen3d/queen/osgUtil/WebVRCustom.js","webpack:///./src/queen3d/queen/osgUtil/WebVR.js","webpack:///./src/queen3d/queen/osgUtil/osgUtil.js","webpack:///./src/queen3d/queen/application/NodeGizmo.js","webpack:///./src/queen3d/queen/application/ComputeBoundsVisitor.js","webpack:///./src/queen3d/queen/application/BoundingComputer.js","webpack:///./src/queen3d/queen/application/ShaderMaker.js","webpack:///./src/queen3d/queen/application/WorldGrid.js","webpack:///./src/queen3d/queen/application/FeatureManager.js","webpack:///./src/queen3d/queen/application/PresetLights.js","webpack:///./src/queen3d/queen/application/GeometryCreator.js","webpack:///./src/queen3d/queen/application/DummyTexture.js","webpack:///./src/queen3d/queen/application/CreatePromise.js","webpack:///./src/queen3d/queen/application/TextureCubeMap.js","webpack:///./src/queen3d/queen/application/ResourceManager.js","webpack:///./src/queen3d/queen/application/StateAttributeRegister.js","webpack:///./src/queen3d/queen/application/EditorLight.js","webpack:///./src/queen3d/queen/osgShadow/ShadowCastAttribute.js","webpack:///./src/queen3d/queen/osgShadow/ShadowCasterVisitor.js","webpack:///./src/queen3d/queen/osgShadow/ShadowFrustumIntersection.js","webpack:///./src/queen3d/queen/osgShadow/ShadowReceiveAttribute.js","webpack:///./src/queen3d/queen/osgShadow/ShadowTechnique.js","webpack:///./src/queen3d/queen/osgShadow/ShadowTexture.js","webpack:///./src/queen3d/queen/osgShadow/ShadowMap.js","webpack:///./src/queen3d/queen/osgShadow/ShadowTextureAtlas.js","webpack:///./src/queen3d/queen/osgShadow/ShadowMapAtlas.js","webpack:///./src/queen3d/queen/osgShadow/ShadowSettings.js","webpack:///./src/queen3d/queen/osgShadow/ShadowedScene.js","webpack:///./src/queen3d/queen/osgShadow/osgShadow.js","webpack:///./src/queen3d/queen/application/MaxTextureUnit.js","webpack:///./src/queen3d/queen/application/material/PBRMaterial.js","webpack:///./src/queen3d/queen/application/ChangeColorAttribute.js","webpack:///./src/queen3d/queen/application/DiamondAttribute.js","webpack:///./src/queen3d/module/objects/Env3d/defaultEnv3d.ts","webpack:///./src/queen3d/queen/application/UVTransformAttribute.js","webpack:///./src/queen3d/queen/application/objects/GeomNodeVisitor.js","webpack:///./src/queen3d/queen/application/objects/GeomNodeVisitorV3.js","webpack:///./src/queen3d/queen/application/UVProjectionAttribute.js","webpack:///./src/queen3d/queen/application/objects/ModelLoader.js","webpack:///./src/queen3d/queen/application/material/UrlResolver.js","webpack:///./src/queen3d/queen/application/material/MaterialUtils.js","webpack:///./src/queen3d/queen/application/features/Lighting.js","webpack:///./src/queen3d/queen/application/CullVisitor.js","webpack:///./src/queen3d/queen/application/RenderPassEnum.js","webpack:///./src/queen3d/queen/application/RenderStage.js","webpack:///./src/queen3d/queen/application/ColorHelper.js","webpack:///./src/queen3d/queen/application/PostProcessNode.js","webpack:///./src/queen3d/queen/application/features/PostProcess.js","webpack:///./src/queen3d/queen/application/BackgroundNode.js","webpack:///./src/queen3d/queen/application/TextureEnvironment.js","webpack:///./src/queen3d/queen/application/EnvironmentNode.js","webpack:///./src/queen3d/queen/application/features/Environment.js","webpack:///./src/queen3d/queen/application/features/Background.js","webpack:///./src/queen3d/queen/application/features/ScreenShot.js","webpack:///./src/queen3d/queen/application/StickerAttribute.js","webpack:///./src/queen3d/queen/application/features/StickerFeature.js","webpack:///./src/queen3d/queen/osgAnimation/channel.js","webpack:///./src/queen3d/queen/osgAnimation/animation.js","webpack:///./src/queen3d/queen/osgAnimation/interpolator.js","webpack:///./src/queen3d/queen/osgAnimation/CollectAnimationUpdateCallbackVisitor.js","webpack:///./src/queen3d/queen/osgAnimation/BasicAnimationManager.js","webpack:///./src/queen3d/queen/osgAnimation/easing.js","webpack:///./src/queen3d/queen/osgAnimation/StackedMatrix.js","webpack:///./src/queen3d/queen/osgAnimation/StackedQuaternion.js","webpack:///./src/queen3d/queen/osgAnimation/StackedRotateAxis.js","webpack:///./src/queen3d/queen/osgAnimation/StackedScale.js","webpack:///./src/queen3d/queen/osgAnimation/StackedTranslate.js","webpack:///./src/queen3d/queen/osgAnimation/osgAnimation.js","webpack:///./src/queen3d/queen/application/UpdateCallbackChecker.js","webpack:///./src/queen3d/queen/application/features/Outline.js","webpack:///./src/queen3d/queen/application/FrameManager.js","webpack:///./src/queen3d/queen/application/SuperSample.js","webpack:///./src/queen3d/queen/osgGA/CADManipulatorStandardMouseKeyboardController.js","webpack:///./src/queen3d/queen/osgGA/CADManipulatorHammerController.js","webpack:///./src/queen3d/queen/osgGA/CADManipulator.js","webpack:///./src/queen3d/queen/osgGA/FirstPersonManipulatorHammerController.js","webpack:///./src/queen3d/queen/osgGA/FirstPersonManipulatorWebVRController.js","webpack:///./src/queen3d/queen/osgGA/FirstPersonManipulatorStandardMouseKeyboardController.js","webpack:///./src/queen3d/queen/osgGA/FirstPersonManipulator.js","webpack:///./src/queen3d/queen/osgGA/SwitchManipulator.js","webpack:///./src/queen3d/queen/osgGA/osgGA.js","webpack:///./src/queen3d/queen/application/OrbitManipulator.js","webpack:///./src/queen3d/queen/application/FirstPersonManipulator.js","webpack:///./src/queen3d/queen/application/SwitchManipulator.js","webpack:///./src/queen3d/queen/application/Material.js","webpack:///./src/queen3d/queen/application/EditorCompiler.js","webpack:///./src/queen3d/queen/application/isMobile.js","webpack:///./src/queen3d/queen/application/shaders/auto_diamond.js","webpack:///./src/queen3d/queen/application/PBRCompiler.js","webpack:///./src/queen3d/queen/application/OutlineCompiler.js","webpack:///./src/queen3d/queen/application/EarlyZCompiler.js","webpack:///./src/queen3d/queen/application/ShadowCastCompiler.js","webpack:///./src/queen3d/queen/application/EditorShaderGenerator.js","webpack:///./src/queen3d/queen/application/CanvasPixelRatio.js","webpack:///./src/queen3d/queen/application/shaders/earlyZFrag.glsl","webpack:///./src/queen3d/queen/application/shaders/cubemapFragment.glsl","webpack:///./src/queen3d/queen/application/shaders/cubemapSampler.glsl","webpack:///./src/queen3d/queen/application/shaders/cubemapVertex.glsl","webpack:///./src/queen3d/queen/application/shaders/math.glsl","webpack:///./src/queen3d/queen/application/shaders/changeColor.glsl","webpack:///./src/queen3d/queen/application/shaders/panoramaSampler.glsl","webpack:///./src/queen3d/queen/application/shaders/pbr_ue4.glsl","webpack:///./src/queen3d/queen/application/shaders/pbrFrag.glsl","webpack:///./src/queen3d/queen/application/shaders/baseVert.glsl","webpack:///./src/queen3d/queen/application/shaders/sphericalHarmonics.glsl","webpack:///./src/queen3d/queen/application/shaders/sphericalHarmonicsFragment.glsl","webpack:///./src/queen3d/queen/application/shaders/sphericalHarmonicsVertex.glsl","webpack:///./src/queen3d/queen/application/shaders/triplanar_projection.glsl","webpack:///./src/queen3d/queen/application/shaders/shadowCastFrag.glsl","webpack:///./src/queen3d/queen/application/shaders/sticker.glsl","webpack:///./src/queen3d/queen/application/objects/Scene.js","webpack:///./src/queen3d/queen/application/Explode.js","webpack:///./src/queen3d/queen/application/application.js","webpack:///./src/queen3d/queen/comm/bus.js","webpack:///./src/queen3d/queen/osgWrappers/serializers/osg.js","webpack:///./src/queen3d/queen/osgWrappers/serializers/osgAnimation.js","webpack:///./src/queen3d/queen/osgText/Text.js","webpack:///./src/queen3d/queen/osgWrappers/serializers/osgText.js","webpack:///./src/queen3d/queen/osgDB/osgDB.js","webpack:///./src/queen3d/queen/application/objects/ShoeNodeVisitor.js","webpack:///./src/queen3d/util/useMaterial.ts","webpack:///./src/queen3d/util/scenePackageEn3d.ts","webpack:///./src/queen3d/util/scenepack.ts","webpack:///./src/queen3d/module/objects/Env3d/index.ts","webpack:///./src/queen3d/module/objects/picker.ts","webpack:///./src/queen3d/module/objects/Application.ts","webpack:///./src/queen3d/module/objects/Mat/index.ts","webpack:///./src/queen3d/module/objects/Mesh/index.ts","webpack:///./src/queen3d/module/objects/Mesh/loader.ts","webpack:///./src/queen3d/module/objects/ResController.ts","webpack:///./src/queen3d/queen/application/GroundShadow.js","webpack:///./src/queen3d/index.ts","webpack:///./src/pages/website/routes/preview/productObj.ts","webpack:///./src/pages/website/routes/preview/actions/defaultEnv3d.ts","webpack:///./src/pages/website/routes/preview/actions/env.ts","webpack:///./src/pages/website/routes/preview/actions/geom.ts","webpack:///./src/pages/website/routes/preview/objects/ColorReplacer/index.ts","webpack:///./src/pages/website/routes/preview/objects/Pack/sources/create.ts","webpack:///./src/pages/website/routes/preview/objects/Pack/sources/PackEnvBackground.ts","webpack:///./src/pages/website/routes/preview/objects/Pack/sources/extends.ts","webpack:///./src/pages/website/routes/preview/objects/Pack/sources/PackEnv.ts","webpack:///./src/pages/website/routes/preview/objects/Pack/sources/PackMat.ts","webpack:///./src/pages/website/routes/preview/objects/Pack/sources/PackProductComp.ts","webpack:///./src/pages/website/routes/preview/objects/defaultMat.ts","webpack:///./src/pages/website/routes/preview/objects/material.ts","webpack:///./src/pages/website/routes/preview/Queen3dCtrl.ts","webpack:///./src/pages/website/routes/preview/MeshOsgjs.tsx","webpack:///./src/pages/website/routes/preview/Mesh.tsx","webpack:///./src/pages/website/routes/preview/utils.ts","webpack:///./src/pages/website/routes/preview/SceneOsgjs.tsx","webpack:///./src/pages/website/routes/preview/Scene.tsx","webpack:///./src/pages/website/routes/preview/MatOsgjs.tsx","webpack:///./src/pages/website/routes/preview/Mat.tsx","webpack:///./src/pages/website/routes/preview/Image.tsx","webpack:///./src/pages/website/routes/preview/index.tsx","webpack:///./src/queen3d/queen/osgPlugins/ReaderWriterGLTF.js","webpack:///./src/queen3d/queen/osgPlugins/ReaderWriterZIP.js","webpack:///./src/queen3d/queen/osgPlugins/ReaderWriterQueen.js","webpack:///./src/queen3d/queen/osgPlugins/osgPlugins.js","webpack:///./src/pages/website/routes/dotqueen/test.ts","webpack:///./src/pages/website/routes/dotqueen/index.tsx","webpack:///./src/pages/website/routes/index.ts","webpack:///./src/pages/website/App.tsx","webpack:///./src/pages/website/main.ts","webpack:///./src/queen3d/queen/osg/PooledMap.js","webpack:///./src/queen3d/queen/osg/Node.js","webpack:///./src/queen3d/queen/osg/LightSource.js","webpack:///./src/queen3d/queen/osgUtil/DisplayGeometryVisitor.js","webpack:///./src/queen3d/queen/osg/Camera.js","webpack:///./src/queen3d/queen/config.js","webpack:///./src/queen3d/queen/osg/glMatrix.js","webpack:///./src/queen3d/queen/osgAnimation/channelType.js","webpack:///./src/queen3d/queen/osg/Viewport.js","webpack:///./src/queen3d/queen/osgUtil/DisplayNormalVisitor.js","webpack:///./src/queen3d/queen/osgDB/zlib.js","webpack:///./src/queen3d/queen/osg/RenderStage.js","webpack:///./src/queen3d/queen/osg/Object.js","webpack:///./src/queen3d/queen/osg/polyfill.js","webpack:///./src/queen3d/queen/osg/Lod.js","webpack:///./src/queen3d/queen/osg/Image.js","webpack:///./src/queen3d/queen/osgShadow/ShadowCastCompiler.js","webpack:///./src/queen3d/queen/osg/NodeVisitor.js","webpack:///./src/queen3d/queen/osgShader/ShaderGeneratorProxy.js","webpack:///./src/queen3d/queen/osgShader/ShaderProcessor.js","webpack:///./src/queen3d/queen/osgShader/osgShader.js","webpack:///./src/queen3d/queen/osg/Polytope.js","webpack:///./src/queen3d/queen/osg/shape.js","webpack:///./src/queen3d/queen/osgViewer/webgl-utils.js","webpack:///./src/queen3d/queen/osg/TimerGPU.js","webpack:///./src/queen3d/queen/osg/BufferArrayProxy.js","webpack:///./src/queen3d/queen/osg/CullingSet.js","webpack:///./src/queen3d/queen/osg/BlendColor.js","webpack:///./src/queen3d/queen/osg/Material.js","webpack:///./src/queen3d/queen/osgDB/Registry.js","webpack:///./src/queen3d/queen/osgAnimation/UpdateBone.js","webpack:///./src/queen3d/queen/osg/AutoTransform.js","webpack:///./src/queen3d/queen/osg/DrawArrays.js","webpack:///./src/queen3d/queen/osgDB/readerParser.js","webpack:///./src/queen3d/queen/osg/FrontFace.js","webpack:///./src/queen3d/queen/osgUtil/IntersectFunctor.js","webpack:///./src/queen3d/queen/osg/TextureManager.js","webpack:///./src/queen3d/queen/osg/Texture.js","webpack:///./src/queen3d/queen/osgShadow/ShadowCastShaderGenerator.js","webpack:///./src/queen3d/queen/osg/UpdateVisitor.js","webpack:///./src/queen3d/queen/osg/CullStack.js","webpack:///./src/queen3d/queen/osgDB/DatabasePager.js","webpack:///./src/queen3d/queen/osg/Light.js","webpack:///./src/queen3d/queen/osgShader/NextShaderProcessor.js","webpack:///./src/queen3d/queen/osg/VertexArrayObject.js","webpack:///./src/queen3d/queen/osgViewer/View.js","webpack:///./src/queen3d/queen/osg/DrawElements.js","webpack:///./src/queen3d/queen/osg/KdTreeBuilder.js","webpack:///./src/queen3d/queen/osgAnimation/MorphGeometry.js","webpack:///./src/queen3d/queen/osg/Geometry.js","webpack:///./src/queen3d/queen/osg/Options.js","webpack:///./src/queen3d/queen/osg/Depth.js","webpack:///./src/queen3d/queen/osgUtil/IntersectionVisitor.js","webpack:///./src/queen3d/queen/osg/notify.js","webpack:///./src/queen3d/queen/osgShader/node/data.js","webpack:///./src/queen3d/queen/osgShader/node/operations.js","webpack:///./src/queen3d/queen/osgShader/nodeFactory.js","webpack:///./src/queen3d/queen/osgShader/node/common.glsl","webpack:///./src/queen3d/queen/osgShader/node/functions.glsl","webpack:///./src/queen3d/queen/osgShader/node/lightCommon.glsl","webpack:///./src/queen3d/queen/osgShader/node/lights.glsl","webpack:///./src/queen3d/queen/osgShader/node/skinning.glsl","webpack:///./src/queen3d/queen/osgShader/node/morphing.glsl","webpack:///./src/queen3d/queen/osgShader/node/textures.glsl","webpack:///./src/queen3d/queen/osgShader/node/colorEncode.glsl","webpack:///./src/queen3d/queen/osgShader/node/billboard.glsl","webpack:///./src/queen3d/queen/osgShader/shaderLib.js","webpack:///./src/queen3d/queen/osg/BoundingSphere.js","webpack:///./src/queen3d/queen/osg/FrameBufferObject.js","webpack:///./src/queen3d/queen/osgAnimation/UpdateMatrixTransform.js","webpack:///./src/queen3d/queen/osg/Scissor.js","webpack:///./src/queen3d/queen/osg/BlendFunc.js","webpack:///./src/queen3d/queen/osgAnimation/target.js","webpack:///./src/queen3d/queen/osg/CullFace.js","webpack:///./src/queen3d/queen/osgViewer/Scene.js","webpack:///./src/queen3d/queen/osg/utils.js","webpack:///./src/queen3d/queen/application/assets/grid.png","webpack:///./src/queen3d/queen/osg/ComputeBoundsVisitor.js","webpack:///./src/queen3d/queen/osg/Program.js","webpack:///./src/queen3d/queen/osgShader/CompilerVertex.js","webpack:///./src/queen3d/queen/osgShader/CompilerFragment.js","webpack:///./src/queen3d/queen/osgShader/Compiler.js","webpack:///./src/queen3d/queen/osg/Switch.js","webpack:///./src/queen3d/queen/osg/computeMatrixFromNodePath.js","webpack:///./src/queen3d/queen/osg/RenderBin.js","webpack:///./src/queen3d/queen/osg/StateGraph.js","webpack:///./src/queen3d/queen/osg/RenderLeaf.js","webpack:///./src/queen3d/queen/osgUtil/LineSegmentIntersectFunctor.js","webpack:///./src/queen3d/queen/osgUtil/Intersector.js","webpack:///./src/queen3d/queen/application/assets/light_icon.png","webpack:///./src/queen3d/queen/osg/StateCache.js","webpack:///./src/queen3d/queen/osg/State.js","webpack:///./src/queen3d/queen/osg/DrawArrayLengths.js","webpack:///./src/queen3d/queen/osgShadow/shaders/shadowCast.glsl","webpack:///./src/queen3d/queen/osgShadow/shaders/shadowReceive.glsl","webpack:///./src/queen3d/queen/osgShadow/shaders/shadowLinearSoft.glsl","webpack:///./src/queen3d/queen/osgShadow/shaders/floatFromTex.glsl","webpack:///./src/queen3d/queen/osgShadow/shaders/tapPCF.glsl","webpack:///./src/queen3d/queen/osgShadow/shaderLib.js","webpack:///./src/queen3d/queen/osg/StackObjectPairPool.js","webpack:///./src/queen3d/queen/osgDB/requestFile.js","webpack:///./src/queen3d/queen/osgUtil/DisplayGraphNode.js","webpack:///./src/queen3d/queen/osgUtil/DisplayGraphRenderer.js","webpack:///./src/queen3d/queen/osgUtil/DisplayGraph.js","webpack:///./src/queen3d/queen/osgAnimation/FindNearestParentSkeleton.js","webpack:///./src/queen3d/queen/osgAnimation/UpdateRigGeometry.js","webpack:///./src/queen3d/queen/osgAnimation/CollectBoneVisitor.js","webpack:///./src/queen3d/queen/osgAnimation/RigTransformHardware.js","webpack:///./src/queen3d/queen/osgAnimation/RigGeometry.js","webpack:///./src/queen3d/queen/osgUtil/intersectionEnums.js","webpack:///./src/queen3d/queen/osg/PagedLOD.js","webpack:///./src/queen3d/queen/osg/BoundingBox.js","webpack:///./src/queen3d/queen/osg/transformEnums.js","webpack:///./src/queen3d/queen/osg/CullVisitor.js","webpack:///./src/queen3d/queen/osgShader/utils.js","webpack:///./src/queen3d/queen/osgUtil/LineSegmentIntersector.js","webpack:///./src/queen3d/queen/osgAnimation/Skeleton.js","webpack:///./src/queen3d/queen/osgAnimation/UpdateSkeleton.js","webpack:///./src/queen3d/queen/osg/cullVisitorHelper.js","webpack:///./src/queen3d/queen/osgAnimation/UpdateMorph.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Bone","undefined","this","setName","MatrixTransform","_invBindInSkeletonSpace","mat4","_boneInSkeletonSpace","_boneBoundingBox","BoundingBox","utils","createPrototypeNode","objectInherit","getOrCreateDebugColor","_boneColor","vec3","fromValues","Math","random","getBoneBoundingBox","setBoneBoundingBox","bb","getMatrixInSkeletonSpace","getInvBindMatrixInSkeletonSpace","setMatrixInSkeletonSpace","copy","setInvBindMatrixInSkeletonSpace","getBoneParent","parents","getParents","typeID","getTypeID","setDefaultUpdateCallback","addUpdateCallback","UpdateBone","getName","PooledArray","_pool","_length","clean","reset","getLength","getArray","back","pop","forEach","func","Transform","matrix","getMatrix","setMatrix","dirtyBound","computeLocalToWorldMatrix","referenceFrame","TransformEnums","RELATIVE_RF","mul","computeWorldToLocalMatrix","minverse","invert","Projection","Node","projection","getProjectionMatrix","setProjectionMatrix","KdNode","first","second","_bb","_first","_second","_nodeRayStart","_nodeRayEnd","InfoCollector","_numVertexIndices","node","getAttributes","Vertex","primitiveIndexFunctor","operatorPoint","operatorLine","operatorTriangle","PrimitiveIndicesCollector","buildKdTree","_buildKdTree","_numIndices","i0","vertices","_kdTree","getVertices","iv","addPoint","_primitiveIndices","centers","_centers","idCenter","i1","iv0","iv1","addLine","numIndices","v0x","v0y","v0z","v1x","v1y","v1z","minx","miny","minz","maxx","maxy","maxz","i2","iv2","addTriangle","v2x","v2y","v2z","BuildKdTree","kdTree","_axisOrder","_stackLength","build","options","geom","targetTris","_targetNumTrianglesPerLeaf","vertexAttrib","getVertexAttributeList","getElements","nbVertices","getBoundingBox","setVertices","computeDivisions","_numVerticesProcessed","totalLenArray","geomPrimitives","getPrimitiveSetList","nbPrimitives","prim","getMode","primitiveSet","TRIANGLE_STRIP","TRIANGLE_FAN","abs","getCount","infoCollector","vertexIndicesSize","Uint32Array","Float32Array","setPrimitiveIndices","vertexIndicesArray","Uint16Array","setVertexIndices","pic","kdPrimIndices","getPrimitiveIndices","getNumPrimitiveIndices","kdVertexIndices","getVertexIndices","getNumVertexIndices","nodeNum","addNode","divide","primitiveIndices","getNodes","_maxNumLevels","max","_max","min","_min","dx","dy","dz","axisOrder","sum","nodeIndex","level","primitives","nodes","needToDivide","istart","iend","computeNodeBox","axis","originalMin","originalMax","mid","originalLeftChildIndex","originalRightChildIndex","insitueDivision","left","right","tmp","restore","leftChildIndex","rightChildIndex","bnode","init","expandByBoundingBox","Infinity","vertexIndices","primitiveIndex","numPoints","vi","vx","vy","vz","epsilon","bmin","bmax","KdTree","_vertices","_kdNodes","_vertexIndices","_numPrimitiveIndices","createPrototypeObject","indices","p0","p1","p2","buildTree","_intersectFunctor","functor","vIds","setPrimitiveIndex","pIndex","numVertices","notify","error","intersect","enter","leave","intersectLineSegment","ls","le","e","kNode","kNodes","MorphAttribute","nbTarget","disable","StateAttribute","_nbTarget","_enable","_targetNames","_hashNames","_hash","_dirtyHash","uniforms","createPrototypeStateAttribute","attributeType","cloneType","hasTarget","copyTargetNames","names","tNames","hash","nbNames","att","getOrCreateUniforms","obj","unifHash","getNumTargets","uTargetWeights","Uniform","createFloat4","setNumTargets","nb","setTargetWeights","targetWeight","_targetWeights","getTargetWeights","isEnabled","getHash","_computeInternalHash","getTypeMember","uniformMap","setFloat4","getAttributeType","array","type","Int16Array","Int8Array","Uint8Array","Uint8ClampedArray","Int32Array","BufferArray","target","elements","itemSize","GLObject","_instanceID","getInstanceID","dirty","_itemSize","_target","_type","_normalize","byteLength","warn","ELEMENT_ARRAY_BUFFER","setElements","_usage","STATIC_DRAW","ARRAY_BUFFER","DYNAMIC_DRAW","STREAM_DRAW","_sDeletedGLBufferArrayCache","Map","deleteGLBufferArray","gl","buffer","has","set","flushDeletedGLBufferArrays","availableTime","elapsedTime","beginTime","Timer","instance","tick","deleteList","numBuffers","deleteBuffer","deltaS","flushAllDeletedGLBufferArrays","onLostContext","setUsage","usage","getUsage","setItemSize","size","isValid","_buffer","_elements","invalidate","releaseGLObjects","_gl","removeObject","setNormalize","normalize","getNormalize","setGraphicContext","bindBuffer","createBuffer","_numItems","getItemSize","_dirty","isDirty","compile","bufferData","getType","defaultOptions","prefixURL","databasePath","progressXHRCallback","readNodeURL","readImageURL","readBinaryArrayURL","imageLoadingUsePromise","imageOnload","imageCrossOrigin","rejectObject","Input","json","identifier","_json","map","_identifierMap","_objectRegistry","_cacheReadObject","setOptions","objectMix","Options","imageFallback","fallback","Image","src","clone","input","_defaultOptions","getOptions","setProgressXHRCallback","setReadNodeURLCallback","registerObject","fullyQualifiedObjectname","constructor","getJSON","setJSON","setPrefixURL","prefix","getPrefixURL","setDatabasePath","path","getDatabasePath","computeURL","url","requestFile","fileHelper","requestURI","getObjectWrapper","scope","osg","splittedPath","split","fetchImage","image","checkInlineImage","isInlineImage","substring","img","crossOrigin","setURL","setImage","P","resolve","onerror","onload","substr","opt","that","index","lastIndexOf","ReaderParser","require","default","readSceneGraph","parseSceneGraph","then","child","log","ungzipFile","arrayBuffer","pad","uintToString","uintArray","str","len","toString","decodeURIComponent","unpacked","zlib","isGunzipBuffer","gunzip","typedArray","time","INFO","fileTextPromise","JSON","parse","fileGzipPromise","responseType","file","strUnzip","catch","status","err","finally","timeEnd","_unzipTypedArray","binary","_zlib","zdec","Gunzip","decompress","filePromise","progress","initializeBufferArray","vb","buf","File","bigEndian","a","b","offset","Offset","bytesPerElement","BYTES_PER_ELEMENT","nbItems","Size","nbCoords","totalSizeInBytes","TypedArray","tmpArray","DataView","getUint16","getFloat32","getUint32","readBufferArray","osgjsObject","promise","jsonObj","uniqueID","UniqueID","Elements","Array","ItemSize","Type","keys","readUserDataContainer","Values","readPrimitiveSet","count","drawElements","DrawElementUShort","DrawElementUByte","DrawElementUInt","DrawElementsUShort","DrawElementsUByte","DrawElementsUInt","drawArray","DrawArray","DrawArrays","drawArrayLengths","DrawArrayLengths","Mode","TRIANGLES","DrawElements","Indices","setIndices","First","Count","ArrayLengths","readObject","objKeys","prop","ObjectWrapper","serializers","sub","reader","_uniqueID","Texture","WebGLCaps","_checkRTT","_webGLExtensions","_webGLParameters","_webGLShaderMaxInt","_webGLShaderMaxFloat","_bugsDB","_webGLPlatforms","glParam","force","_instance","oldWebGLInspector","webglInspector","gli","host","inspectContext","document","createElement","width","height","extend","antialias","extendWithOptionsURL","WebGLUtils","setupWebGL","getContext","initContextDependant","_isGL2","WebGL2RenderingContext","initWebGLExtensions","hasLinearHalfFloatRTT","hasLinearFloatRTT","hasHalfFloatRTT","hasFloatRTT","initWebGLParameters","initPlatformSupport","initBugDB","nativeExtension","ext","getWebGLExtensions","dummyFunc","isWebGL2","Apple","UNMASKED_VENDOR_WEBGL","indexOf","getExtension","test","text","join","hasSupport","checkShader","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","isContextLost","getShaderInfoLog","navigator","vendor","Mobile","userAgent","getWebGLPlatform","getWebGLPlatforms","getWebGLParameter","getWebGLParameters","getShaderMaxPrecisionFloat","MAX_SHADER_PRECISION_FLOAT","getShaderMaxPrecisionInt","MAX_SHADER_PRECISION_INT","checkSupportRTT","typeFloat","typeTexture","texture","createTexture","bindTexture","TEXTURE_2D","texImage2D","RGBA","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","framebuffer","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteTexture","deleteFramebuffer","HALF_FLOAT_OES","LINEAR","FLOAT","NEAREST","queryPrecision","shaderType","precision","answer","getShaderPrecisionFormat","hasVAO","getDisjointTimerQuery","limits","params","par","getParameter","FRAGMENT_SHADER","HIGH_FLOAT","MEDIUM_FLOAT","LOW_FLOAT","HIGH_INT","MEDIUM_INT","LOW_INT","debugInfo","UNMASKED_RENDERER_WEBGL","applyExtension","suffix","suffixRE","RegExp","prefixRE","val","unsuffixedKey","replace","unprefixedKey","getWebGLExtension","_checkShader","_doubleCheckExtension","extension","filterBugs","doFilter","supported","getSupportedExtensions","sup","extToCheck","anisoExt","ANISOTROPIC_SUPPORT_EXT","ANISOTROPIC_SUPPORT_MAX","MAX_TEXTURE_MAX_ANISOTROPY_EXT","functorDrawElements","functorDrawArrays","POINTS","v","indexes","cb","end","LINES","v1","v2","LINE_STRIP","LINE_LOOP","last","v3","pos","primitiveFunctor","cbFunctor","primitive","getFirst","_name","_inputs","_outputs","_id","_text","getID","getInputs","getOutputs","checkInputsOutputs","validInputs","validOutputs","inputs","arguments","isArray","outputs","autoLink","output","computeShader","comment","txt","_comment","getComment","isString","String","isBlobURL","isHttpURL","isURL","zip","mimeTypes","createImageFromURL","reject","createImageFromBlob","blob","privateURL","URL","createObjectURL","revokeObjectURL","createArrayBufferFromBlob","fr","FileReader","readAsArrayBuffer","createArrayBufferFromURL","createJSONFromURL","string","createJSONFromString","requestResource","uri","mimetype","getMimeType","toLowerCase","match","resolveData","createData","Blob","resolveFilesMap","filesMap","promises","filename","fname","dataResolved","all","_unzipEntry","entry","Writer","BlobWriter","TextWriter","getData","unzipBlob","filePromises","createReader","BlobReader","zipReader","getEntries","entries","directory","close","filesMapResolved","unzip","ArrayBuffer","readFileList","fileList","fileName","promiseArray","readerWriter","Registry","getReaderWriterForExtension","mimeType","files","readerParser","addMimeTypeForExtension","_attributeTypeIndex","OFF","ON","OVERRIDE","PROTECTED","INHERIT","OVERRIDE_ON","CullSettings","_computeNearFar","_nearFarRatio","_enableFrustumCulling","_settingsSourceOverrider","_LODScale","_clampProjectionMatrixCallback","setCullSettings","settings","setNearFarRatio","ratio","getNearFarRatio","setComputeNearFar","getComputeNearFar","setEnableFrustumCulling","getEnableFrustumCulling","getSettingSourceOverrider","setClampProjectionMatrixCallback","callback","getClampProjectionMatrixCallback","setLODScale","scale","getLODScale","_onLostContextCallback","addObject","getGraphicContext","setLostContextCallback","_sResourcesArrayCache","glObject","resourcesArray","Plane","vec4","INSIDE","INTERSECT","OUTSIDE","transformProvidingInverse","iplane","x","y","z","w","normalizeEquation","plane","inv","sqrt","getNormal","setNormal","normal","getDistance","setDistance","distance","distanceToPlane","position","intersectsOrContainsBoundingSphere","bSphere","valid","center","radius","instersectsBoundingSphere","intersectsOrContainsBoundingBox","retCorner","bbox","upperBBCorner","lowerBBCorner","corner","intersectsBoundingBox","absPlane","intersectOrContainsVertices","side","intersectVertices","clamp","smoothStep","edge0","edge1","fastIsNaN","isNaN","SkinningAttribute","boneUniformSize","_boneUniformSize","maxBoneUniformSize","maxBoneUniformAllowed","getBoneUniformSize","boneSize","uBones","createFloat4Array","setMatrixPalette","matrixPalette","_matrixPalette","getMatrixPalette","getInternalArray","now","global","performance","Date","fn","mozNow","msNow","oNow","webkitNow","t0","t1","deltaM","BillboardAttribute","_attributeEnable","setEnabled","state","ColorMask","red","green","blue","alpha","_red","_green","_blue","_alpha","setMask","applyColorMask","EllipsoidModel","_radiusEquator","WGS_84_RADIUS_EQUATOR","_radiusPolar","WGS_84_RADIUS_POLAR","computeCoefficients","setRadiusEquator","getRadiusEquator","setRadiusPolar","getRadiusPolar","convertLatLongHeightToXYZ","latitude","longitude","sinLatitude","sin","cosLatitude","cos","N","_eccentricitySquared","X","Y","Z","convertXYZToLatLongHeight","theta","atan2","eDashSquared","sinTheta","cosTheta","atan","cosLat","computeLocalUpVector","coord","isWGS84","flattening","computeLocalToWorldTransformFromLatLongHeight","fromTranslation","computeCoordinateFrame","computeLocalToWorldTransformFromXYZ","lla","up","east","north","localToWorld","cross","ImageStream","video","_canPlayDefered","PAUSE","PLAYING","_status","STOP","addEventListener","_imageObject","loop","stop","setLooping","bool","play","pause","whenReady","readyState","LineWidth","lineWidth","PointSizeAttribute","_pointSize","_circleShape","setCircleShape","isCircleShape","setPointSize","pointSize","createFloat","setFloat","TextureCubeMap","_images","TEXTURE_CUBE_MAP_POSITIVE_X","setDefaultParameters","_textureTarget","TEXTURE_CUBE_MAP","_flipY","faceImage","getImage","imageFace","imageFormat","face","setImageFormat","setTextureSize","getWidth","getHeight","_textureNull","initCubemapContent","internalFormat","_internalFormat","applyTexImage2D","_textureWidth","_textureHeight","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_CUBE_MAP_NEGATIVE_Z","generateMipmap","hasMipmapFilter","hasMipmap","getMipmap","_dirtyMipmap","applyImageTarget","isReady","setDirty","isTypedArray","_unrefImageDataAfterApply","release","initCubemapContentImage","_dirtyTextureObject","_textureObject","computeTextureFormat","applyFilterParameter","isDirtyMipmap","TriangleIndexFunctor","_geom","_cb","AutoTransform","BlendColor","BlendFunc","BoundingSphere","BufferArrayProxy","Camera","ComputeBoundsVisitor","ComputeMatrixFromNodePath","CullFace","FrontFace","CullingSet","CullStack","CullVisitor","Depth","FrameBufferObject","FrameStamp","Geometry","KdTreeBuilder","Light","LightSource","Lod","Material","osgjsMath","PooledResource","PooledMap","NodeVisitor","PagedLOD","Polytope","Program","RenderBin","RenderLeaf","RenderStage","Shader","Shape","StackObjectPairPool","State","StateGraph","StateSet","Scissor","Switch","UpdateVisitor","Viewport","VertexArrayObject","vec2","glm","quat","mat3","ABSOLUTE_RF","TimerGPU","createFunction","_createFunction","getOrCreateObject","_parents","_attributeArray","_textureAttributeArrayList","_activeTextureAttributeUnit","_activeAttribute","_activeTextureAttribute","_binName","_binNumber","_shaderGeneratorPair","_updateCallbackList","_hasUniform","_drawID","AttributePair","attr","_object","_value","getShaderGeneratorName","getAttribute","getUniform","getValue","setDrawID","id","getDrawID","getAttributePair","attribute","addUniform","uniform","originalMode","addParent","removeParent","idx","removeUniform","removeUniformByName","uniformName","hasUniform","getUniformList","setTextureAttributeAndModes","unit","_setTextureAttribute","getNumTextureAttributeLists","getTextureAttribute","typeMember","getTextureIdFromTypeMember","_hasTextureAttribute","textureArray","removeTextureAttribute","_computeValidTextureUnit","getIdFromTypeMember","_hasAttribute","setAttributeAndModes","_setAttribute","setAttribute","removeAttribute","_computeValidAttribute","setRenderingHint","hint","setRenderBinDetails","getUpdateCallbackList","removeUpdateCallback","parent","setNumChildrenRequiringUpdateTraversal","getNumChildrenRequiringUpdateTraversal","requiresUpdateTraversal","dontNoticeParents","Boolean","hasUpdateCallback","num","binName","getAttributeMap","attributePair","getBinNumber","getBinName","setBinNumber","binNum","setBinName","getAttributeList","attributeArray","list","setShaderGeneratorName","generatorName","getShaderGeneratorPair","k","arrayDense","getOrCreateTextureStateAttributeTypeMemberIndex","textureAttributeArrayList","attributeList","hasValidAttribute","getOrCreateStateAttributeTypeMemberIndex","typeIndex","setReferenceFrame","getReferenceFrame","computeBoundingSphere","identity","transformMat4","_data","_transpose","_glCall","_cache","_isMatrix","isUniform","getPrototypeOf","location","setInternalArray","f","setFloat1","setFloat2","setFloat3","setFloat9","setFloat16","setVec2","setVec3","setVec4","setMatrix4","setMatrix3","setInt","setInt1","setInt2","setInt3","setInt4","createUniformX","dataOrName","nameOrNbItem","internalArray","glSignature","isMatrix","nbElts","createMat2","nbItem","out","createMat3","createMat4","_getNbItem","createFloat1","createFloat2","createFloat3","createInt1","createInt2","createInt3","createInt4","createMatrix2","createMatrix3","createMatrix4","float","createFloatArray","createFloat2Array","createFloat3Array","int","createIntArray","createInt","vec2i","createInt2Array","vec3i","createInt3Array","vec4i","createInt4Array","mat2","createMat2Array","createMat3Array","createMat4Array","AnimationUpdateCallback","checkPathIsAnimated","nbNodes","ups","nbUp","computeChannels","Renderer","camera","_state","_camera","_renderStage","_stateGraph","_frameStamp","_previousCullsettings","setDefaults","debugGraph","osgShader","ShaderGeneratorProxy","_cullVisitor","setRenderer","getCamera","setClearColor","setRenderStage","stateSet","getOrCreateStateSet","getCullVisitor","setCullVisitor","cv","getRenderer","rs","setFrameStamp","fs","getFrameStamp","getState","setState","gc","cullAndDraw","cull","draw","view","getView","resetStats","setStateGraph","pushStateSet","getStateSet","pushCameraModelViewProjectionMatrix","getViewMatrix","getBound","light","getLight","View","getLightingMode","LightingMode","HEADLIGHT","addPositionedAttribute","SKY_LIGHT","viewport","getViewport","scissor","getScissor","pushViewport","setClearDepth","getClearDepth","getClearColor","setClearMask","getClearMask","setViewport","setScissor","setDatabaseRequestHandler","getDatabasePager","handleCullCallbacksAndTraverse","popCameraModelViewProjectionMatrix","popViewport","popStateSet","sort","resetCacheFrame","setCamera","DisplayGraph","createRenderGraph","applyDefault","_frame","_startSimulation","_currentSimulation","_deltaTime","setReferenceTime","getReferenceTime","setSimulationTime","getSimulationTime","setDeltaTime","getDeltaTime","setFrameNumber","getFrameNumber","ShaderGenerator","_shaderProcessor","NextShaderProcessor","_ShaderCompiler","setShaderCompiler","Compiler","ShaderCompiler","_validAttributeTypeMemberCache","_computeStateAttributeCache","getShaderCompiler","getShaderProcessor","setShaderProcessor","shaderProcessor","filterAttributeTypes","getActiveAttributeList","cacheType","attributeStack","_lastApplied","getActiveAttributeListCache","getActiveTextureAttributeListCache","_validTextureAttributeTypeMemberCache","textureUnitList","textureUnit","textureUnitLength","isTextureNull","getActiveTextureAttributeList","_attributeArrayList","_attributeArrayForUnit","getActiveUniforms","textureAttributeList","at","attributeUniformMap","keyAttribute","tat","texUniformMap","tname","tuniform","CompilerShader","typeMemberName","il","cache","typeMemberNames","stateAttributeConfig","validTypeMemberList","textureAttribute","_createWaitingProgram","attributes","textureAttributes","vsDefault","fsDefault","program","VERTEX_SHADER","setActiveUniforms","generated","getOrCreateProgram","cachedProgram","_getProgram","_createProgram","shaderGen","debug","Attributes","Hash","getFragmentShaderName","fragmentshader","createFragmentShader","vertexshader","createVertexShader","resetCache","setText","debugName","VS_DBG","FS_DBG","_sDeletedGLShaderCache","deleteGLShader","flushDeletedGLShaders","numShaders","deleteShader","flushAllDeletedGLShaders","getText","failSafe","shaderText","shaderName","debugShaderTxt","processErrors","errors","source","lines","linesLength","exec","lastIndex","line","parseInt","minLine","maxLine","getCompilationResult","errorCallback","splittedText","newText","errorFold","EventHandle","owner","unbind","on","WeightEventHandle","unbindWeight","Events","_events","_suspendEvents","_weightEvents","timer","clearTimeout","args","setTimeout","events","weight","event","ok","self","evt","arg0","arg1","arg2","arg3","arg4","arg5","arg6","arg7","ex","console","info","_suspendHighEvents","allowSwiftShader","animationAutoplay","anisotropy","annotation","annotationTooltipVisible","arkit","arkitDebug","asyncImage","asyncShader","autoMaterial","autospin","autostart","cameraConstraints","cameraFollowBones","cardboard","carmel","cleanShader","continuousRender","convertVertexColor8Bit","debug3D","depthMipmap","dofAttenuateDistance","dofAttenuateSpeed","dofCircle","dofRes","dofSticky","dofTransition","doubleClick","downloadPicture","drs","drsRatio","drsFps","drsMin","drsTest","epsilonAlpha","floatRtt","forceController","forceControllerOrientation","forceControllerRayOrientation","forceFallback","forceMs","forceTriangles","fpsSpeed","grainSpeed","graphOptimizer","imageCompression","internal","isApp","keepEmptyGeometries","materialNames","materialPacking","materialShowcase","maxTextureUnits","maxDevicePixelRatio","maxTextureSize","maxVertexUniforms","mergeMaterials","morphEpsilon","morphGpu","navigation","orbitPanFactor","orbitRotationFactor","orbitZoomFactor","panorama","powerPreference","preload","preserveDrawingBuffer","processMaterial","processOptions","refractionRes","resizeTimeout","rgbm","scaleEpsilon","scrollwheel","shadow","shadowAtlas","shadowJitterOffset","shadowNormalOffset","shadowPCF","shadowTextureSize","share","snapKeyframe","soundEnable","soundMute","soundPreload","splitLimit","ssaoNormal","ssrTransparent","sssJitter","sssKernel","stats","svgSize","substanceDisplacement","supersample","tracking","taaAnimation","taaFeedbackMax","taaFeedbackMin","textureFrameBudget","transparent","uiAnimations","uiAnnotations","uiAr","uiArHelp","uiArQrcode","uiColor","uiControls","uiFadeout","uiFullscreen","uiGeneralControls","uiHelp","uiHint","uiInfos","uiInspector","uiInspectorOpen","uiLoading","uiSettings","uiSnapshots","uiSound","uiStart","uiStop","uiTheatre","uiVr","uiWatermark","uiWatermarkLink","unitRenderLocal","unitRenderReporter","useVao","varyingSorting","vrAr","vrBrowserEnv","vrFade","vrLauncherAlphaCardFactor","vrMirror","vrMobileMaxFaces","vrGenerateUiTextures","vrForceRaf","vrLinkNavigation","vrInNavigation","vrScaleRtt","vrStereo","webglExt","webglRestore","webglTimerGpu","webglUniforms","zoct","zq","zw","zratio","zz","annotationCycleAutostart","annotationCycleDuration","sssHalfKernel","preferOriginalNormalMap","Manipulator","_boundStrategy","boundStrategy","setInputManager","inputManager","COMPUTE_HOME_USING_SPHERE","_controllerList","_inverseMatrix","_node","_frustum","_computeBoundNodeMaskOverride","_tmpSphere","setNode","setComputeBoundNodeMaskOverride","mask","getComputeBoundNodeMaskOverride","_inputManager","getInputManager","getHomeBoundingSphere","overrideStrat","COMPUTE_HOME_USING_BBOX","box","cbv","setNodeMaskOverride","getBoundingSphere","bsphere","volume","copyBoundingBox","getHomeBound","getHomeDistance","bound","frustum","dist","getFrustum","vertical2","zNear","horizontal2","top","bottom","update","getInverseMatrix","getControllerList","Controller","manipulator","_manipulator","setEnable","InputGroups","degtorad","PI","makeRotateFromEuler","q","order","c1","c2","c3","s1","s2","s3","FirstPersonManipulatorDeviceOrientationController","computeQuaternion","screenTransform","worldTransform","deviceOrientation","screenOrientation","beta","gamma","screenAngle","minusHalfAngle","yTemp","_quat","_pos","_deviceOrientation","_screenOrientation","manager","group","FPS_MANIPULATOR_DEVICEORIENTATION","addMappings","setDeviceOrientation","setScreenOrientation","ev","_update","setPoseVR","OrbitManipulatorDeviceOrientationController","ORBIT_MANIPULATOR_DEVICEORIENTATION","FirstPersonDeviceOrientation","OrbitManipulatorGamePadController","_delay","_zoomFactor","_rotateFactor","_panFactor","_rotate","getRotateInterpolator","_zoom","getZoomInterpolator","_pan","getPanInterpolator","setDelay","ORBIT_MANIPULATOR_GAMEPAD","addZoom","addRotateX","addRotateY","panUp","pan","panDown","panLeft","panRight","delta","panTarget","getTarget","setTarget","addTarget","OrbitManipulatorHammerController","_lastScale","_zooming","_dragStarted","_initInputs","ORBIT_MANIPULATOR_TOUCH","pinchEnd","pinchStart","pinchInOut","startPan","startRotate","rotate","endMotion","_panning","startMotion","_rotating","move","interpolator","factor","canvasX","canvasY","zoomInterpolator","zoomFactor","minDezoom","maxDezoom","aSmooth","velocity","osgMath","setManipulator","ROTATE","PAN","ZOOM","OrbitManipulatorStandardMouseKeyboardController","_mode","_inMotion","ORBIT_MANIPULATOR_MOUSEKEYBOARD","ORBIT_MANIPULATOR_RESETTOHOME","globalGroup","resetToHomeGroup","setRotationMode","setMode","OrbitManipulatorEnums","setPanMode","setZoomMode","startZoom","stopMotion","zoom","getZoomFactor","setZoomFactor","posX","posY","isReset","setStart","getStart","intDelta","deltaY","zoomTarget","computeHomePosition","tempQuat","tempPos","OrbitManipulatorWebVRController","ORBIT_MANIPULATOR_WEBVR","pose","orientation","sitToStandMatrix","getRotation","worldFactor","DelayInterpolator","delay","redrawCB","_current","_delta","_reset","_start","_redrawCB","dt","dtDelay","getCurrent","getDelta","start","OrbitManipulator","_homePosition","AvailableControllerList","ControllerList","TWO_PI","lowerOrEqual","limit","MIN_ZOOM","MAX_ZOOM","_distance","_upz","rot1","fromRotation","rot2","_rotation","_time","_vrMatrix","_minSpeed","_scaleMouseMotion","_autoPushTarget","_limitPitchUp","_limitPitchDown","_limitYawLeft","_limitYawRight","_limitZoomIn","_limitZoomOut","_constrainYaw","_constrainPitch","_constrainZoom","_rotationFactor","setRotationFactor","setPanFactor","setLimitPitchUp","setLimitPitchDown","down","setLimitYawLeft","setLimitYawRight","setLimitZoomOut","zoomOut","setLimitZoomIn","zoomIn","setConstrainPitch","_previousPitch","isConstrainPitch","setConstrainYaw","constrain","_previousYaw","isConstrainYaw","setConstrainZoom","isConstrainZoom","eyePos","getEyePosition","setEyePosition","u","eye","enabled","Groups","ORBIT_MANIPULATOR","bs","getHomePosition","computeEyePosition","setMinSpeed","getMinSpeed","getSpeedFactor","computePan","proj","vFov","speed","add","computeRotation","rightDir","prevPitch","pitch","_computePitch","deltaYaw","previousYaw","yaw","_computeYaw","isOutsideLimit","computeZoom","setAutoPushTarget","dir","newValue","tmpDist","tmpInverse","nv","panFactor","lookAt","fromQuat","DeviceOrientation","GamePad","Hammer","WebVR","StandardMouseKeyboard","WebGLDebugUtils","msg","glValidEnumContexts","enable","1","0","drawArrays","3","4","2","getProgramParameter","getVertexAttrib","vertexAttribPointer","6","activeTexture","getTexParameter","texParameterf","copyTexImage2D","8","copyTexSubImage2D","getBufferParameter","pixelStorei","bindRenderbuffer","framebufferRenderbuffer","5","getFramebufferAttachmentParameter","getRenderbufferParameter","renderbufferStorage","clear","enumBitwiseOr","depthFunc","blendFunc","blendFuncSeparate","blendEquation","blendEquationSeparate","stencilFunc","stencilFuncSeparate","stencilMaskSeparate","stencilOp","stencilOpSeparate","cullFace","frontFace","drawArraysInstancedANGLE","drawElementsInstancedANGLE","blendEquationEXT","bufferSubData","copyBufferSubData","getBufferSubData","blitFramebuffer","10","9","framebufferTextureLayer","invalidateFramebuffer","invalidateSubFramebuffer","readBuffer","getInternalformatParameter","renderbufferStorageMultisample","texStorage2D","texStorage3D","7","texImage3D","11","texSubImage2D","texSubImage3D","12","copyTexSubImage3D","compressedTexImage2D","compressedTexImage3D","compressedTexSubImage2D","compressedTexSubImage3D","vertexAttribIPointer","drawArraysInstanced","drawElementsInstanced","drawRangeElements","readPixels","clearBufferfv","clearBufferiv","clearBufferuiv","clearBufferfi","beginQuery","endQuery","getQuery","getQueryParameter","samplerParameteri","samplerParameterf","getSamplerParameter","fenceSync","clientWaitSync","waitSync","getSyncParameter","bindTransformFeedback","beginTransformFeedback","transformFeedbackVaryings","bindBufferBase","bindBufferRange","getIndexedParameter","getActiveUniformBlockParameter","glEnums","enumStringToValue","ctx","propertyName","checkInit","mightBeEnum","glEnumToString","glFunctionArgToString","functionName","numArgs","argumentIndex","funcInfo","enums","orResult","orEnums","enumValue","glFunctionArgsToString","argStr","ii","makePropertyWrapper","wrapper","original","__defineGetter__","__defineSetter__","makeDebugContext","opt_onErrorFunc","opt_onFunc","opt_err_ctx","glErrorShadow","makeErrorWrapper","getError","wrapped","NO_ERROR","resetToInitialState","isWebGL2RenderingContext","createTransformFeedback","bindVertexArray","numAttribs","MAX_VERTEX_ATTRIBS","disableVertexAttribArray","vertexAttrib1f","vertexAttribDivisor","numTextureUnits","MAX_TEXTURE_IMAGE_UNITS","TEXTURE0","TEXTURE_2D_ARRAY","TEXTURE_3D","bindSampler","useProgram","RENDERBUFFER","BLEND","CULL_FACE","DEPTH_TEST","DITHER","SCISSOR_TEST","blendColor","FUNC_ADD","ONE","ZERO","clearColor","clearDepth","clearStencil","colorMask","BACK","LESS","depthMask","depthRange","CCW","GENERATE_MIPMAP_HINT","DONT_CARE","PACK_ALIGNMENT","UNPACK_ALIGNMENT","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_COLORSPACE_CONVERSION_WEBGL","BROWSER_DEFAULT_WEBGL","polygonOffset","sampleCoverage","canvas","ALWAYS","stencilMask","KEEP","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","drawBuffers","COPY_READ_BUFFER","COPY_WRITE_BUFFER","PIXEL_PACK_BUFFER","PIXEL_UNPACK_BUFFER","numTransformFeedbacks","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","TRANSFORM_FEEDBACK_BUFFER","numUBOs","MAX_UNIFORM_BUFFER_BINDINGS","UNIFORM_BUFFER","RASTERIZER_DISCARD","UNPACK_IMAGE_HEIGHT","UNPACK_SKIP_IMAGES","UNPACK_ROW_LENGTH","UNPACK_SKIP_ROWS","UNPACK_SKIP_PIXELS","PACK_ROW_LENGTH","PACK_SKIP_ROWS","PACK_SKIP_PIXELS","FRAGMENT_SHADER_DERIVATIVE_HINT","makeLostContextSimulatingCanvas","unwrappedContext_","onLost_","onRestored_","wrappedContext_","contextId_","contextLost_","resourceDb_","numCallsToLoseContext_","numCalls_","canRestore_","restoreTimeout_","glErrorShadow_","wrapEvent","listener","handleEvent","WebGLRenderingContext","makeLostContextSimulatingContext","addOnContextLostListener","addOnContextRestoredListener","wrapAddEventListener","bubble","clearErrors","loseContextIfTime","loseContext","makeLostContextFunctionWrapper","freeResources","resource","WebGLBuffer","WebGLFramebuffer","WebGLProgram","deleteProgram","WebGLRenderbuffer","deleteRenderbuffer","WebGLShader","WebGLTexture","WebGLQuery","deleteQuery","WebGLSampler","deleteSampler","WebGLSync","deleteSync","WebGLTransformFeedback","deleteTransformFeedback","WebGLVertexArrayObject","deleteVertexArray","makeWebGLContextEvent","statusMessage","preventDefault","CONTEXT_LOST_WEBGL","callbacks","restoreContext","loseContextInNCalls","numCalls","getNumCalls","setRestoreTimeout","timeout","creationFunctions","__webglDebugContextLostId__","functionsThatShouldReturnNull","isFunctions","FRAMEBUFFER_UNSUPPORTED","getAttribLocation","getVertexAttribOffset","getFragDataLocation","WAIT_FAILED","getUniformBlockIndex","INVALID_INDEX","Graph","_values","maxGraphValue","_index","_maxValue","_x","_y","getIndex","getValues","setDisplayPosition","getX","getY","addValue","uvColor","BufferStats","_usageHint","nbVertexes","_nbVertexes","_maxNbVertexes","_captionNbVertexes","_valuesNbVertexes","_graphsNbVertexes","resize","backgroundColor","redColor","greyColor","whiteColor","getGeometry","_geometry","generateBackground","h","vertexes","_vertexes","x1","y1","generateCharacter","ux","ux1","color","generateText","textGenerator","zColor","characterSizeUV","_characterSizeUV","characterWidth","_characterWidth","characterHeight","_characterHeight","characterCode","charCodeAt","uvx","getCharacterUV","generateGraph","graph","graphValues","nbGraphValues","graphStartIndex","graphIndex","graphValue","bufferIndex","vertexIndex","nbCharacters","ceil","_indexes","_characterPrimitive","getIndices","indexArray","drawElement","getPrimitives","_graphPrimitive","nbTotalCharacters","setCount","setFirst","resetCaptions","resetValues","captionsEnd","valuesEnd","graphsEnd","getCharacterPrimitive","getGraphPrimitive","getNbVertexes","Counter","config","_caption","caption","_accumValue","_accumSamples","_accumStart","_averageValue","_avgMs","_over","over","_below","below","_graph","average","avgMs","_display","isDisplayable","setDisplayable","boolean","getOver","getBelow","getGraph","getAverageMs","getAverageValue","frame","DefaultFont","determineFontHeight","fontStyle","body","getElementsByTagName","dummy","dummyText","createTextNode","appendChild","offsetHeight","removeChild","loadFont","fontFamily","WebFontConfig","google","families","active","inactive","wf","scripts","async","parentNode","insertBefore","TextGenerator","_canvas","_fontSize","_fontFamily","_characterFirstCode","_characterLastCode","_backgroundColor","_createCanvas","setFontSize","getCharacterWidth","getCharacterHeight","getCanvas","_promise","_fillCanvas","fontSize","style","pixelHeight","font","textBaseline","measureText","fillStyle","code","fromCharCode","fillText","PICKING_NODEMASK","toFixed","Stats","viewer","_captionsBuffer","_valuesBuffer","_dirtyCaptions","_dirtyValues","_viewer","_labelMaxWidth","_viewport","_offsetGroup","_counters","_groups","_updates","_displayableCounters","_width","_height","_maxCaptionTextLength","_lineFactor","_displayFilter","_backgroundWidth","_backgroundHeight","_bufferStats","_historyGraph","_graphToDisplay","_valuesMaxWidth","_showGraph","_backgroundPicking","shape","createTexturedQuadGeometry","_dragStop","_dragStart","_startTransformation","_init","getCounter","getBufferStats","addConfig","valueName","values","valueConfig","counter","groups","groupConfig","textCursorY","_dirtyValue","_checkViewportChanged","_checkCounterDisplayableChanged","_generateCaptions","_generateValues","getNode","setShowFilter","groupNamesArray","setRenderOrder","POST_RENDER","addChild","_nodeTransform","setNodeMask","statsGroupList","getString","filterList","statsFontSize","getNumber","getBoolean","setMinFilter","setMagFilter","getCanvasPixelRatio","geometry","setBound","DISABLE","STATS","onMouseMove","onMouseDown","onMouseUp","setPriority","getHigherPriority","SCENE","hits","computeNearestIntersection","_onStats","tmpVec3","translate","lsi","LineSegmentIntersector","origIntersect","dstIntersect","IntersectionVisitor","setIntersector","glX","glY","setTraversalMask","accept","getIntersections","_updateBackgroundPicking","initialX","textCursorX","filters","groupName","groupText","textWidth","counterName","nbSplits","splitText","valuesOffsetX","graphOffsetX","valuesMaxWidth","Number","isInteger","valueWidth","g","totalWidth","totalHeight","changed","ortho","fps","raf","render","glframe","textureused","texturereserved","texturetotal","pushstateset","applyStateSet","updatecallback","cullcamera","cullmatrixtransform","cullprojection","cullnode","culllightsource","cullgeometry","base","contextList","glProxy","totalDrawArraysCalls","totalDrawElementsCalls","totalUseProgramCalls","totalFaces","totalVertices","totalPoints","totalBindTexures","statsVertices","statsFaces","statsLines","hasContext","WebGLContext","bufferStats","glDrawCalls","glDrawElements","glDrawArrays","glBindTexture","glUseProgram","glFaces","glVertices","glPoints","memory","log1024","floor","round","pow","totalJSHeapSize","usedJSHeapSize","browserMemory","browserMemoryTotal","DEFAULT_PRIORITY","MODIFIERS","InputGroup","_enabled","_mask","_mappings","_boundCallback","_collectNativeEvents","_priority","_hasSources","mappings","nativeEvent","_source","isEventRegistered","_parsedEvent","populateEvent","_nativeEvents","queue","_queues","_addEvent","eventName","fullName","registerEvent","_findEvent","raw","eventList","Event","_getSource","nativeRaw","_setEnable","InputManager","_sources","_callbacks","_params","_maskedGroups","dumpInputGroups","_dumpInputGroups","dumpEventSequence","_dumpEventSequence","registerInputSource","supportsEvent","stringify","getInputSource","nativeEvents","groupEvent","parsedEvent","_getOrCreateGroup","_parseNativeEvent","priority","getParam","setParam","cleanup","tokens","token","action","mod","poll","triggerName","filter","onlyEnabled","groupCollapsed","groupEnd","groupKey","eventKey","evts","prevEvt","grp","InputSource","_supportedEvents","mouseDeltaFactor","deltaYFactor","platform","InputSourceMouse","_defaultRatio","removeEventListener","customEvent","offsetX","layerX","offsetY","layerY","clientHeight","clientX","clientY","screenX","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","button","buttons","wheelDelta","deltaMode","deltaX","deltaZ","ctrl","alt","meta","InputSourceKeyboard","keyCode","repeat","InputSourceWebVR","elem","_nbCallbacks","_pollInterval","pollInterval","_schedulePolling","_cancelPolling","vrDisplay","_pollingTimeout","setInterval","pollHeadset","clearInterval","getVRDisplays","_hmd","_frameData","triggerNotFoundEvent","displays","_dispatchEvent","VRFrameData","message","setPollInterval","interval","getFrameData","sitToStand","stageParameters","sittingToStandingTransform","InputSourceGamePad","_gamePadState","_valueThreshold","_newGamePad","gamepad","_onConnectionStateChange","_previousState","_buttonEvents","_axisEvents","buttondown","_initEvent","buttonup","buttonvalue","axes","setValueThreshold","threshold","gamepadIndex","_fireCallbacks","gamepads","getGamepads","buttonDownCallbacks","buttonUpCallbacks","buttonValueCallbacks","btnDownEvent","btnUpEvent","pressed","btnValueEvent","axisCallback","axisValueEvent","InputSourceDeviceOrientation","_event","onDeviceOrientation","absolute","InputSourceTouchScreen","_hammerEvents","_hammer","Manager","Pan","Pinch","pointers","pinch","recognizeWith","Tap","taps","posThreshold","_isNativeEvent","off","touches","changedTouches","nbTouches","rotation","deltaTime","direction","offsetDirection","getBoundingClientRect","pointerType","getHammer","Viewer","userOptions","_startTick","_stats","_done","initOptions","initWebGLContext","_updateVisitor","setUpView","initInputManager","initStats","_requestAnimationFrame","requestAnimationFrame","_options","_contextLost","_forceRestoreContext","renderBinded","_initInputSource","setVRDisplay","_devicePixelRatio","sourceClass","optionName","defaultSrcElem","InputSources","sourceElement","traceLogCall","contextLost","contextRestored","reportWebGLError","initWebGLCaps","setContextLostCallback","_contextLostCallback","setContextRestoreCallback","_contextRestoreCallback","cancelAnimationFrame","_requestID","getTextureManager","resetCaches","_requestRedraw","_runImplementation","getUpdateVisitor","timerGPU","defaultStats","glStats","browserStats","setCallback","callbackTimerGPU","queryID","getViewerStats","renderingTraversal","getScene","getSceneData","renderer","pollQueries","cullVisitor","_numCamera","_numMatrixTransform","_numProjection","_numNode","_numLightSource","_numGeometry","_numPushStateSet","_numApply","updateTraversal","updateSceneGraph","_numUpdateCallback","releaseGLExpiredSubgraphs","flushDeletedGLObjects","advance","simulationTime","sTime","MAX_VALUE","frameStamp","previousFrameNumber","lastSimulationTime","beginFrame","endFrame","frameNumber","updateStats","checkNeedToDoFrame","_requestContinousUpdate","canvasSizeChanged","updateViewport","getManipulator","isPresenting","submitFrame","setDone","done","run","hmd","getVRDisplay","setPresentVR","doPresentVR","capabilities","canPresent","layers","requestPresent","exitPresent","setupManipulator","hasChanged","computeCanvasSize","vp","prevWidth","prevHeight","widthChangeRatio","heightChangeRatio","aspectRatioChange","fromScaling","setEnableManipulator","dispose","pooledStateGraph","osgViewer","Scene","GLOBAL_ACTIONS","GLOBAL_FOCUS","SCENE_VIEWERAPI","SCENE_VIEWERAPI_1_4","FOCUS_INSPECTOR","SCENE_INSPECTOR","UI_INSPECTOR","UI","SCENE_INSPECTOR_ZOOM","UI_INSPECTOR_ZOOM","ENVIRONMENT","DEBUG","DEBUG_TRIPICK","DEBUG_GEOMPICK","AUTOSPIN","HOTSPOT","HOTSPOT_VIEWER","HOTSPOT_EDITOR","CAMERA","CAMERA_GIZMO","SOUND","SOUND_GIZMO","WEBVR","WEBVREDITOR","WEBVR_NAVIGATION","WEBVR_DISPLAY","AR","AR_DEBUG","STICKER","FeatureEventManager","_manager","featureManager","xpos","ypos","translation","onDoubleClick","onSingleClick","preventclick","preventmousemove","fallbacksingleclick","focus","preventScroll","envFeature","endRotate","MANIPULATORS","stickerFeature","currentX","currentY","onPreventMouseMove","tempTranslation","onFallbackSingleClick","singleclick","onPreventClick","hotspotFeature","cameraFeature","motion","startDrag","endDrag","OPAQUE","OPAQUE_NO_EARLYZ","BACKGROUND","REFRACTION","TRANSPARENT_CUSTOM_EARLYZ","TRANSPARENT_NO_EARLYZ_PRE","TRANSPARENT","TRANSPARENT_NO_EARLYZ_POST","EXTRA","EDITOR_GIZMO","GRID","TOOLTIP","VR_MENU","WIREFRAME","VR_CURSOR","OUTLINE","DEBUG_2","DEPTH_LESS_WRITE","DEPTH_LESS_NO_WRITE","DEPTH_DISABLE","DEPTH_ALWAYS","DEPTH_NEVER","NEVER","DEPTH_LEQUAL_BACKGROUND_NO_WRITE","LEQUAL","DEPTH_LEQUAL_WRITE","DEPTH_LEQUAL_NO_WRITE","DEPTH_EQUAL_NO_WRITE","EQUAL","COLOR_MASK_NONE","COLOR_MASK_ALPHA","COLOR_MASK_RGBA","BLEND_DISABLE","BLEND_SUBSTRACTIVE","ONE_MINUS_SRC_ALPHA","BLEND_ADDITIVE","CULL_BACK","CULL_FRONT","FRONT","CULL_DISABLE","PickMask","PICK_GEOMETRY_FIXED","PICK_GEOMETRY_ANIMATED","PICK_GEOMETRY_RIG_BOX","PICK_GIZMO_LIGHT","SHADOW_CAST","SHADOW_BOUNDS","PICK_GEOMETRY_SLOW","PICK_GEOMETRY_FAST","PICK_GEOMETRY","PICK","SHADOW","PICK_GEOMETRY_SHADOW","NO_SHADOW","NO_PICK","NO_PICK_NO_SHADOW_CAST","NO_PICK_NO_SHADOW_BOUNDS","NO_PICK_NO_SHADOW","ComposerPostProcess","functionsFile","_functionsFile","_feedbackSwapped","_syncFeedbackUniforms","_syncOnNextFrame","_lastXratio","_lastYratio","_xViewportRatio","_yViewportRatio","_xTextureRatio","_yTextureRatio","_finalPassUpScaleToScreen","_methodWrapUV","_thresholdWrapUV","_texInfos","_screenWidth","_screenHeight","_feedbackData","_cameras","_stateSets","_textureUniforms","_programs","_externalTextures","_internalPasses","_textures","_userTextures","_currentPoolIndex","_texturePool","_firstTexture","setCullCallback","VertexShader","FragmentShader","tex","removeChildren","clearShaderCache","getGlobalXRatio","getGlobalYRatio","setFinalPassUpScaleToScreen","_enforceFromInputParameter","paramName","inputTexture","texName","prevTexture","prevFeedbackTexture","newParam","_updatePassInfoFromInputs","pass","passName","lastPassInfo","outTexture","lastPassSrgb","srgb","textures","_renameTextureAlias","texInfoName","_usages","requestSrgb","orig","encodeSRGB","_setInferredParameter","srgbInferred","paramInfer","param","dest","_createTextureOut","isLastPass","isFloat","UNSIGNED_BYTE","_processUserPasses","userPasses","concat","passes","_preprocessUserPasses","numPasses","outPasses","duplicateNames","_collapsePasses","isNext","funcs","feedbackLoop","rgbmInferred","_hasFreeTexture","immuable","poolTexture","reusable","divisor","getInternalFormatType","getMinFilter","_setOrCreateTextureKey","isLinear","filterEnum","poolKey","_createTexture","_addStateSet","_addTextureToStateSet","textureInfo","isFeedback","_addTextureUniforms","_getUniformName","toUpperCase","uName","uSize","uRatio","_checkInferredParameters","_buildPass","feedbackName","previousTextureUnit","texInfo","nextPass","nextPasses","outputTexture","outputKey","_createFeedbackLoopCameras","_createCamera","_buildGraphFromPasses","previousKey","previousTexture","common","setStateSet","camera1","_createFeedbackLoopCamera","camera2","feedbackLoopData","texture1","texture2","cameraName","dstTexture","srcTexture","srcUnit","PRE_RENDER","attachTexture","quad","createTexturedFullScreenFakeQuadGeometry","swapFeedbackLoopTextures","frame0","_createFuncFromUserData","userFunc","_createTextureInfoFromUserData","userData","userPass","header","collapsible","_canBeCollapsed","currentPass","_mergeWithoutDuplicates","lastPassName","setInternalFormatType","setInternalFormat","_computeHashFromPass","_writeDeclarations","setMethodWrapUV","method","_getInfos","bodySimple","bodyNearest","bodyBias","toExponential","replaceValue","signature","TEXTURE_2D_NEAREST","TEXTURE_2D_BIAS","_extractTextures","infos","_writeFunctionBodies","colorSpacesDefines","functionBodies","defineKeys","getShaderTextPure","includeList","processIncludes","textureDefines","tex2dInfo","TEXTURE_2D_TextureInput","defineInfo","inTex","_writeMainFunction","textureName","arg","_removeDuplicatedUniforms","numLines","fragment","vertexSource","setScreenSize","_getTextureSize","resizeRatio","xViewport","yViewport","xTexture","yTexture","_resizeViewports","_resizeTextureUniforms","xRatio","yRatio","cameras","isRtt","isRenderToTextureCamera","attachment","getAttachments","xFinalRatio","yFinalRatio","tunifs","_resizeFeedbackTextureUniforms","compareFunc","element","addInternalTexture","desc","addExternalTexture","setInputTexture","getCameras","getStateSetPass","getInternalTexture","alias","program2D","programQC","updateFrustum","dR","near","far","nLeft","nRight","nTop","nBottom","fLeft","fRight","fTop","fBottom","vBuff","createDebugFrustrumGeometry","createBoundingBoxGeometry","updateGeometry","createDebugFrustumGeometry","glPrecision","getOrCreateShader","getOrCreateShader2D","getOrCreateShaderQuadCircle","resetPrograms","createDebugLineGeometry","createTorusGeometry","argRadiusOut","argRadiusWidth","argNbRadial","argNbTubular","argArc","radiusOut","radiusWidth","nbRadial","nbTubular","arc","nbTriangles","createCylinderGeometry","argRadiusTop","argRadiusBottom","argHeight","argRadialSegments","argHeightSegments","argTopCap","argLowCap","radiusTop","radiusBottom","radialSegments","heightSegments","topCap","lowCap","heightHalf","createCircleGeometry","segment","createPlaneGeometry","offx","offy","createQuadCircleGeometry","GizmoGeometry","HideCullCallback","blendAttribute","SRC_ALPHA","LineCustomIntersector","testPlane","_testPlane","_inter","setTestPlane","getTranslateDistance","_nbAxis","dist1","dot","_iStart","dist2","_iEnd","a01","b0","det","b1","intersectTriangle","intersectLine","intersectPoint","_TMP_MAT","NodeGizmo","_tmask","_autoInsertMT","_correctPivotOnAutoInsert","_rotateNode","_translateNode","_planeNode","_rotateInLocal","_translateInLocal","_showAngle","_downCanvasCoord","_hoverNode","_keepHoverColor","_isEditing","_editLineOrigin","_editLineDirection","_editOffset","_editLocal","_editWorldTrans","_editWorldScaleRot","_editInvWorldScaleRot","_debugNode","_lastDistToEye","_attachedNode","_pivotOffset","attachToNode","_lsi","_origIntersect","_dstIntersect","_iv","PICK_ARC_X","PICK_ARC_Y","PICK_ARC_Z","PICK_ARROW_X","PICK_ARROW_Y","PICK_ARROW_Z","PICK_PLANE_X","PICK_PLANE_Y","PICK_PLANE_Z","NO_FULL_CIRCLE","CORRECT_PIVOT","PICK_ARC","PICK_ARROW","PICK_PLANE","PICK_GIZMO","GetNearestEditableNode","TRAVERSE_PARENTS","_editableNode","getEditableNode","editMask","traverse","setRotateInLocal","setTranslateInLocal","tmask","setAutoMatrixTransformInsertion","setCorrectPivotOnAutoInsert","isEditing","getAttachedNode","initNodeTranslate","initNodeTranslatePlane","initNodeRotate","NODE_GIZMO","_insertEditNode","mtInsert","_isInserted","_findEditNodeFromNodePath","nodepath","_findEditNodeFromNode","_getEditNodeVisitor","attachToNodePath","editNode","_attachEditNode","userNode","updateGizmoMask","transChildren","getChildren","rotChildren","planeChildren","onNodeHovered","hoverColor","hit","np","_nodePath","unif","drawArcXYZ","drawArc","pickArc","mtXYZ","mtX","mtY","mtZ","hideNode","showAngle","aHeight","aConeHeight","pickStart","pickHeight","mtCone","mtArrow","drawArrow","pickArrow","mtPlane","updateArcRotation","qTmp","quatx","setAxisAngle","quaty","rotateNode","arcs","getTransformType","nodeIn","refFrame","getAttachedNodeWorldMatrix","worldMat","getWorldMatrix","worldTrans","tmpVec","tmpMat","ttype","setCullingActive","getTranslation","scaleFactor","scaleFov","clientWidth","gizmoMatrix","getScale","invScale","worldRot","sortByRatio","_ratio","_canvasWidth","_canvasHeight","computeIntersections","setOnlyGizmoPicking","setOnlyScenePicking","pickGizmo","getCanvasPositionFromWorldPoint","mat","worldPoint","cam","screenPoint","computeWindowMatrix","saveEditMatrices","nm","getNodeMask","startRotateEdit","startTranslateEdit","startPlaneEdit","wm","gizmoMat","projCenter","sign","tang","_localIntersectionPoint","projArc","stateAngle","origin","drawLineCanvasDebug","x2","y2","pickAndSelect","updateRotateEdit","updateTranslateEdit","updatePlaneEdit","mrot","vec","vecX","vecY","vecZ","negatePivot","ox","oy","minClient","angle","nbAxis","uAngle","attMat","negate","tra","coordx","coordy","inter","PolytopeIntersection","IntersectFunctor","Intersection","_intersectionPoints","_maxDistance","_numIntersectionPoints","PolytopeIntersectFunctor","_src","_dest","_maxNumIntersectionsPoints","_intersector","getPolytope","containsBoundingBox","pushCurrentMask","popCurrentMask","addIntersection","arrayUniq","maxDistance","referencePlane","_iReferencePlane","intersection","initIntersection","maxNum","contains","polytope","planeList","getPlanes","resultMask","getCurrentMask","selectorMask","vPrevious","dPrevious","vCurrent","dCurrent","rCurrent","vnew","swap","containsPoint","v0","containsVertex","containsLine","containsTriangle","PolytopeIntersector","Intersector","_polytope","_iPolytope","_referencePlane","transformVec4PostMult","setPolytope","setPlanes","iPlanes","setPolytopeFromWindowCoordinates","xMin","yMin","xMax","yMax","intersectBoundingBox","intersectBoundingSphere","containsBoundingSphere","setGeometry","setIntersectionVisitor","kdtree","getShape","computeTransformedVertices","setCurrentTransformation","iPlaneList","SphereIntersection","_localIntersectionNormal","_i1","_i2","_i3","_r1","_r2","_r3","SphereIntersectFunctor","_center","_radius","r2","dmin","getMin","getMax","sqrDistance","sqrDist","sqrLen","distToSegmentSqr","scaleAndAdd","edge2","diff","_limitOneIntersection","_hit","a00","a11","tmp0","tmp1","numer","denom","zone","invDet","_zone","SphereIntersector","_iCenter","_iRadius","setCenter","setRadius","intersectNode","maxScale","TangentSpaceGenerator","_T","_B","_N","_texCoordUnit","generate","setTexCoordUnit","texCoordUnit","computePrimitiveSet","getNumIndices","nx","Normal","tx","compute","nbElements","tangents","t3","subarray","nt","Tangent","ia","ib","ic","P1","P2","P3","N1","N2","N3","uv1","uv2","uv3","V","B1","B2","B3","T1","T2","T3","Tdst","Bdst","Ndst","tempVec","tempVec2","WebVRCustom","UpdateRecreateOnResize","rttScene","hmdConfig","root","_rttScene","_hmdConfig","_root","isCardboard","hResolution","vResolution","createScene","UpdateOffsetCamera","rootView","offsetView","_rootView","_offsetView","nodeView","setupWebVR","HMD","webVRUniforms","webVRMatrices","aspect","hScreenSize","lensSeparationDistance","distScale","distortionK","fov","vScreenSize","eyeToScreenDistance","perspective","hOffset","interpupillaryDistance","lensShift","leftMat","rightMat","projectionLeft","projectionRight","viewLeft","viewRight","lensCenterLeft","lensCenterRight","hmdWarpParam","chromAbParam","chromaAbParameter","scaleIn","getWebVRShader","createTextureRtt","rttSize","rttTexture","createOrthoRtt","viewportSize","canvasSize","orthoCamera","vw","vh","cw","ch","NESTED_RENDER","createCameraRtt","projMatrix","attachRenderBuffer","DEPTH_ATTACHMENT","DEPTH_COMPONENT16","HMDconfig","rootOverride","worldFactorOverride","getDefaultConfig","rootViewMatrix","rttTextureLeft","rttCamLeft","orthoCameraLeft","rttTextureRight","rttCamRight","orthoCameraRight","UpdateRttCameraCallback","getAssembleShader","fragmentShader","createCameraCanvas","leftEyeTexture","rightEyeTexture","HMDdevice","getEyeParameters","frameData","eyeTextureSize","renderWidth","renderHeight","camRttLeft","leftProjectionMatrix","camRttRight","rightProjectionMatrix","camCanvas","osgUtil","DisplayNormalVisitor","DisplayGeometryVisitor","LineSegmentIntersectFunctor","NO_LIMIT","intersectionEnums","LIMIT_ONE_PER_DRAWABLE","LIMIT_ONE","POINT_PRIMITIVES","LINE_PRIMITIVES","TRIANGLE_PRIMITIVES","ALL_PRIMITIVES","appviewer","getViewerOSGJS","_appviewer","_forcePicking","_frameManager","onFinished","attachNode","hoverNode","redrawShadow","onChanged","clearEvent","_minBox","_visitedBuffers","applyTransform","localMatrix","_matrixStack","IDENTITY","vertex","visitedBuffer","exactEquals","transformedVertices","m00","m10","m20","m30","m01","m11","m21","m31","m02","m12","m22","m32","m03","m13","m23","m33","boxMin","boxMax","curMinX","curMinY","curMinZ","curMaxX","curMaxY","curMaxZ","vertexCount","px","py","pz","m3_X_P","m0_X_P","m1_X_P","m2_X_P","BoundingComputer","modelboxWidthDisplacement","modelboxWithoutDisplacement","_maxWorldDisplacement","BIAS_MIN","BIAS_MAX","maxWorldDisp","_updateModelBoxes","min_disp","max_disp","worldDisp","visitor","getPreciseBox","min_l","max_l","ShaderMaker","_shaderCache","vert","farg","shaderId","defines","defineStrings","shaderHash","shaderCache","_createShader","frag","shaderid","shadername","shaderChunk","addShaders","getShader","SHADER_MAKER","GridVertexShader","GridFragShader","AxisVertexShader","AxisFragShader","TextureVertexShader","TextureFragSHader","WorldGrid","_timeGrid","stateset","GLState","RenderDetail","_grid","createGridGeometry","_axis","createAxisGeometry","_plane","_invalidateNodeBound","_texture","GridTextureImage","GridImage","LINEAR_MIPMAP_LINEAR","texturePlaneSS","FeatureManager","app","_app","_viewerOSGJS","_urlOptions","_features","getFeatures","_nodeGizmo","_nodeGrid","getRootModel","postProcess","_textureDepth","ratioX","ratioY","projectioN","getViewport3d","getPixelRatio","_resourceManager","ResourceManager","widgetAPI","getTabbedWidget","duration","getModel","getCurrentManipulator","boundingSphere","focusOnTargetAndEye","nodeGizmo","_boundingSphere","rootModel","bc","computePreciseBox","modelBoxWithDisp","getModelBoxWithDisplacement","modelroot","features","outline","ground","environment","lighting","sound","hotspot","postprocess","webvr","webVR","ARKit","inspector","lightShadowNode","getNodeShadow","rootNode","getNodeIn","getNodeOut","createGizmoNode","createWorldGrid","feature","nodein","nodeout","globalUniform","rootScene","nodeRootModel","featuerRoot","initGraph","preloadMaxBackground","lightingFeature","environmentFeature","_canvasPixelRatio","focusOnSavedCamera","saveCameraPosition","_featureEventManager","initGlobalClickEvents","addGlobalUniforms","drawFrame","initializePreciseBoundManager","onBeforeUnload","Config","getShadowForcedUpdate","getSuperSample","intensity","SQRT1_2","createIconGeometry","setLightType","createDirectionalGeometry","createSpotGeometry","za","ja","updateCone","createHemiGeometry","Ha","createPointGeometry","updateRadius","dummyTexture","CreatePromise","_imageProxy","ResourceManagerInstance","_enableCache","colorArg","textureOutput","reduce","pre","colorInput","albedo","linear2Srgb","option","minFilter","magFilter","setWrapT","wrapT","setWrapS","wrapS","setMaxAnisotropy","panoramaLUV","integrateBRDFLUV","loadLUV","cubemapLUV","loadCubemapLUV","osgjsImage","htmlImage","imageData","deinterleaveImage4","setWidth","setHeight","maxPower","LN2","images","power","byteSize","newData","getSortedKeyValueString","cubemap","loadImage","cubeFace","res","parameters","notEmptyParameters","StateAtributeRegister","libraryName","className","objectLibraryClass","setTypeID","attributeTypeId","getOrCreateStateAttributeTypeId","EditorLight","lightnum","_position","_ground","DIRECTION","SPOT","POINT","HEMI","tempvec3","boundingsphere","_light","_referenceFrame","getPosition","expandByVec3","ShadowCastAttribute","shadowReceiveAttribute","_shadowReceiveAttribute","setReceiveAttribute","getReceiveAttribute","getDefines","getPrecision","receiveAttributeDirty","_receiveAttributeDirty","ShadowCasterVisitor","_noCastMask","_nodeList","removeNodeFromCasting","st","blend","getSource","depth","getFunc","getWriteMask","setNoCastMask","ComputeMultiFrustumBoundsVisitor","TRAVERSE_ALL_CHILDREN","_pooledMatrix","_bs","traversalMask","worldLightPos","cameraFrustum","cameraNearFar","lightFrustum","_cameraFrustum","_lightFrustum","getCameraPlaneMaskForLightNear","point","_cameraPlaneMaskedByLightNear","setResultMask","transform","pushMatrix","popMatrix","applyBoundingBox","bbOut","ShadowReceiveAttribute","lightNum","_lightNumber","_bias","_normalBias","_precision","_kernelSizePCF","_fakePCF","_jitterOffset","_isAtlasTexture","getLightNumber","getUniformName","getAtlas","setAtlas","setBias","bias","getBias","setNormalBias","getNormalBias","setJitterOffset","jitter","getJitterOffset","getKernelSizePCF","setKernelSizePCF","setPrecision","setLightNumber","normalBias","pcf","ShadowTechnique","_shadowedScene","_continuousUpdate","_needRedraw","getShadowedScene","setContinuousUpdate","isContinuousUpdate","needRedraw","requestRedraw","setShadowedScene","shadowedScene","updateShadowTechnique","cullShadowCasting","cleanSceneGraph","ShadowTexture","_uniforms","_mapSize","_renderSize","hasLightNumber","lun","assert","ViewRight","ViewUp","ViewLook","DepthRange","MapSize","RenderSize","setViewMatrix","viewMatrix","_viewMatrix","setProjection","_projection","setDepthRange","_depthRange","_updateViewMatrixUniforms","viewUp","viewLook","texNumber","CameraCullCallback","shadowTechnique","_shadowTechnique","nodeTraverse","cs","getCurrentCullingSet","getCurrentProjectionMatrix","getComputedNear","getComputedFar","markSceneAsNoShadow","getFrustumPlanes","getCurrentModelViewMatrix","setupMask","setLightFrustum","ShadowMap","shadowTexture","_projectionMatrix","_lightNumberArrayIndex","_lightUp","_cameraShadow","_textureUnitBase","_textureUnit","_textureMagFilter","_textureMinFilter","_textureSize","unifRenderSize","_texelSizeUniform","_receivingStateset","_casterStateSet","_shadowCastShaderGeneratorName","unifRange","_worldLightPos","_worldLightDir","_castsShadowDrawTraversalMask","_castsShadowBoundsTraversalMask","_tmpVec","_tmpVecBis","_tmpVecTercio","_tmpMatrix","setShadowSettings","_infiniteFrustum","shadowStateAttribute","_debug","getDepthRange","lf","nearFarBounding","_debugGeomFrustum","_debugNodeFrustum","getTexture","setTextureUnitBase","unitBase","shadowSettings","getShadowCastShaderGeneratorName","setCastsShadowDrawTraversalMask","castsShadowDrawTraversalMask","setCastsShadowBoundsTraversalMask","castsShadowBoundsTraversalMask","setLight","textureSize","setTexturePrecision","textureType","kernelSizePCF","getCastsShadowDrawTraversalMask","_castsDrawShadowTraversalMask","getCastsShadowBoundsTraversalMask","getReceivingStateSet","checkLightNumber","lightNumber","_rebindFbo","detachAll","atlasTexture","lightIndex","initTexture","fullOverride","_preventTextureBindingDuringShadowCasting","textureNull","shouldGetMaxTextureUnits","viewportDimension","frameBufferObject","setFrameBufferObject","updateShadowTechnic","setTextureFiltering","texType","getTexturePrecision","HALF_FLOAT","textureFormat","CLAMP_TO_EDGE","format","mapSize","getCasterStateSet","getUp","zFar","EPSILON","_emptyCasterScene","makePerspectiveFromBoundingBox","eyeDir","fovRadius","tan","ymax","ymin","xmax","xmin","infiniteFrustum","lookAtDirection","makeOrthoFromBoundingBox","diameter","zNearRatio","aimShadowCastingCamera","worldLightDir","lightMatrix","positionedAttribute","getCurrentRenderBin","getPositionedAttribute","positionedAttributeElements","pa","eyeToWorld","isDirectionLight","worldMatrix","transpose","getDirection","getSpotCutoff","frameShadowCastingFrustum","clampProjectionMatrix","setShadowUniformsReceive","noDepth","_debugNodeSceneCast","setTranslation","getTraversalMask","cleanReceivingStateSet","ignoreTexture","setDebug","Debug","_debugGeomSceneCast","getDebug","ShadowTextureAtlas","_lightNumberArray","_viewMatrices","_depthRanges","_mapSizes","getLightNumberArray","setLightNumberArray","lightNumberArray","createUniforms","renderSizeUniform","lighNumber","setLightShadowMapSize","dimension","texUnit","ShadowMapAtlas","_lights","_shadowMaps","_viewportDimension","_shadowSettings","_shadowMapSize","atlasSize","_numShadowWidth","_numShadowHeight","_cameraClear","ligthtIndex","numShadow","getShadowMap","addLight","lightCount","shadowMap","recomputeViewports","numViews","viewDivideY","viewDivideX","mapSizeX","mapSizeY","numShadowWidth","numShadowHeight","updateCameraClear","fbo","getFrameBufferObject","removeShadowMap","addShadowMap","kernelSizeList","ShadowSettings","shadowProjection","shadowCastShaderGeneratorName","castsDrawShadowTraversalMask","getTextureSize","setTextureType","tt","getTextureType","setTextureFormat","tf","getTextureFormat","setShadowCastShaderGeneratorName","ShadowedScene","_shadowTechniques","_optimizedFrustum","_frustumReceivers","_tmpMat","_computeBoundsVisitor","getShadowTechniques","addShadowTechnique","technique","removeShadowTechnique","lt","_settings","userShadowCasterVisitor","_removeNodesNeverCastingVisitor","_castsShadowTraversalMask","computeShadowedSceneBounds","getVisitorType","CULL_VISITOR","hasCastingScene","getCurrentModelMatrix","registerApplyFunction","nodeTypeID","getApplyFunction","osgShadow","ShadowCastCompiler","ShadowFrustumIntersection","ShadowCastShaderGenerator","maxUnits","PBRMaterial","_enableVertexColor","_hasClearcoat","_hasNormalMap","_hasOpacityMap","_opacityFactor","_normalFactor","_normalFlipY","_depthWrite","_onlyDepthMaskNoShading","_displacementAmount","_cullFace","_unlit","_invertAlpha","_metalnessWorkFlow","_clearcoatParam","_hasAOMap","_hasDisplacementMap","flag","updateOpacity","opacityFactor","normalFactor","normalFlipY","displacementAmount","clearcoatParam","StateAttributeRegister","isPowerOf2","ChangeColorAttribute","_valid","caclLod","_targetColor","_sourceLod","_useMask","_maskRange","_useSourceColor","_sourceColor","log2","targetColor","range","sourceColor","maskRange","sourceLod","DiamondAttribute","_brightness","_scale","brightness","cls","UVTransformAttribute","_transform","offsetx","offsety","ration","GeomNodeVisitor","includeShadow","geoms","getNodeName","nodeState","currMatId","find","item","matId","compGeoms","gitem","_meshIndex","targetName","_nameIndex","GeomNodeVisitorV3","getNodeNameV3","v1Name","getNodeNameV1","UVProjectionAttribute","ProjectionMode","TRIPLANAR","_triplanarBlendWeight","validModes","uTriplanarBlendWeight","POLAR","ORTHOGONAL","ModelLoader","uvproject","version","noForceHttps","httpHeader","model","Visitor","pm","MaterialUtils","resetGeometryStateSet","uvTranform","UVProjection","DefaultUrlResolver","useCdn","imageUrl","textureConfig","uint","urlParams","URLSearchParams","search","limited","urlSearch","isPc","UrlConfig","TextureResolver","_createTextureFeature","channel","hasMap","Parse","texRes","getInstance","getOrCreateTexture","DISPLACEMENT_TEXTURE_UNIT","RGB","REPEAT","setFlipY","OPACITY_TEXTURE_UNIT","createTextureFromColor","ALBEDO_TEXTURE_UNIT","setTexture","setTargetColor","colorTexture","_defaultText","_defaultMat","classType","metalnessWorkFlow","channels","Diamond","scaleX","scaleY","Albedo","Roughness","Emissive","NormalMap","flipY","BumpMap","Opacity","sampleChannel","refractionTint","refractUseDiffuse","refractUseShininessMap","IOR","roughnessFactor","AO","occludeSpecular","MetalnessPBR","SpecularF0","ClearCoat","thickness","reflectivity","roughness","normalmap","Displacement","CavityMap","_silverMat","replaceMat","setCache","capApp","OffscreenCanvas","Error","offscreen","Application","_switchManipulator","setEnvironmentModel","defaultEnv3d","setBackgroundMode","loadModel","attachMaterial","scene","_rootScene","Promise","takeScreenShot","takeScreen","material","createPBRMaterial","configMaterial","uvtransform","isDefaultValue","uvTransform","setTransform","uvProjection","vertexColor","Color","albedoSetter","albedoChannel","metallicSetter","METALLIC_TEXTURE_UNIT","metalChannel","roughnessSetter","ROUGHNESS_TEXTURE_UNIT","roughnessChannel","normalmapSetter","NORMAL_TEXTURE_UNIT","normalChannel","normalMap","aomapSetter","AO_TEXTURE_UNIT","aoChannel","aoMap","opacitySetter","opacityChannel","hasOpacityMap","displacementSetter","diplacementChannel","hasDisplacementMap","displacementFactor","diamondAttribute","setHasNormalMap","setHasOpacityMap","setOpacityFactor","setHasAOMap","setHasDisplacementMap","setDisplacementAmount","setNormalFlipY","setNormalFactor","cullFaceEnum","setMetalnessWorkFlow","getHasOpacityMap","getOpacityFactor","pbrMaterial","setVertexColorEnable","front","both","FRONT_AND_BACK","createShadowSetting","setting","fakePCF","LightModel","matrixPrev","createNode","_mtLight","lightNode","createLight","_shadowMap","_lightSource","lightSource","_mtQuad","_quadGeom","GeometryCreator","light_icon","_dirGeom","_mtEditLight","editLightSS","_updateMatrixOnToggleCamera","_scene","depthTexture","lightEnable","getDiffuse","getSpecular","visiable","toJSON","Model","LightsModel","select","lights","forceShadowRedraw","lightModel","_lightingFeature","initLights","_finishPromise","initDepthTexture","getFeaturesManager","getTextureDepth","setDepthTexture","setScene","dirtyScene","jsonLight","setUpdateMatrixOnToggleCamera","LightingFeature","shadowmapSizeUniform","uShadowMapSize","_isScreenshot","onSelectChanged","onEnableChanged","redraw","_shadowAtlasSetting","_shadowMapAtlas","SHADOW_TEXTURE_UNIT","_nodeFeature","_shadowNode","_lightNode","lightnodeStateSet","initLightNode","_showLighting","_onLightGizmoEditing","shadowmap","getAmbient","setLinearAttenuation","shadowSetting","enableShadow","MaxTextureUnit","gizmo","getGizmo","getLightSource","_updateLightsAndIcons","setLightUnit","getNodeGizmo","gizmoNode","isLightNone","getNodeEditLight","attachnode","tempVec4","tempVec3","getIconScaleFov","editLight","nodeLight","getNodeLight","lightQuad","getNodeQuad","lightScale","getNodeScale","quadMatrix","editMatrix","nodeMatrix","multiply","screenshot","shadowNeedUpdate","showLight","needUpdate","updateNode","curMat","preMat","setIconVisibility","updateLightIcons","updateSelection","updateVisitor","setIsScreenshot","_separateVR","_isEnv","_isRootModel","popModelViewMatrix","popProjectionMatrix","_minNear","_computedNear","_maxFar","_computedFar","projectionStackTop","_projectionMatrixStack","vrConfig","doVR","leftProjection","rightProjection","nearfar","uNearFar","clampedProjectionMatrix","isMainCamera","cameraMain","updateNearFar","_handleMainCamera","nodePostProcessOut","cameraEnvironment","getCullCallback","leafs","_currentStateGraph","_leafs","_currentRenderBin","addStateGraph","isVR","leaf","createOrReuseRenderLeaf","isEnv","modelViewMat","viewMat","getCurrentViewMatrix","leftModelView","rightModelView","leftOffsetView","rightOffsetView","leftView","rightView","drawable","updateCalculatedNearFar","framebufferWidth","framebufferHeight","leftRenderWidth","rightRenderWidth","leftRenderHeight","rightRenderHeight","RenderPassEnum","DEFAULT","EARLYZ_OPAQUE","EARLYZ_TRANSPARENT","OPAQUE_SHADING","TRANSPARENT_SHADING","SHADOWMAP","ANY_OPAQUE","ANY_TRANSPARENT","renderLeafDrawGeometry","drawGeometry","PBRMaterialAttributeIndex","getOrCreateStateAttributeTypeMemberIndexFromName","drawGeometryImp","isTriangles","applyAttribute","doubleDraw","RenderInfo","getUserData","lastApplied","getCullFace","drawImplementation","needDraw","curPass","getDepthWrite","getOnlyDepthMaskNoShading","modifyDrawOpaqueUniform","uniformCache","opaqueUniform","uDrawOpaque","stateUserData","uniformCacheByInstanceId","drawOpaque","valuesArray","instanceid","isPrimitiveTriangles","primitivelist","ForceAttribute","graphicContext","getLastProgramApplied","getUniformsCache","sortBin","_binNum","getInsertPosition","previous","sg","_parent","_stateset","getStateSetStackSize","StateAttributeOverrideOn","EarlyZStateSet","ss","ClearDepthRGBA","clearTranpanrentRGBA","RenderStageSplitter","_binArraySorted","_renderBufferDepthAttachment","startsWith","binsArray","_bins","bin","fboDepth","fboTransparent","fboRefraction","fboOpaque","fboExtra","renderbufferDepthAttachment","setAttachment","colorAttachment","textureTarget","createFBO","_textureOpaque","_textureTransparent","frameBufferObjectTransparent","clearOpaqueRGBA","_clearDepth","renderLeaf","binArraySorted","sortedLength","drawExtraBin","previousLeaf","binsorted","isEarlyzTransparent","preDepth","doearlyz","getDoEarlyZ","drawLeafs","isOpaqueRenderPass","binNumber","oldDepth","drawOpaqueBin","isWritingDepth","drawTransparentBin","hasCameraDepth","bindDepthRTT","bindOpaqueRTT","stateInsertPosition","insertStateSet","drawEarlyOpaque","doEarlyTransparent","drawEarlyAlpha","removeStateSet","drawOpaqueShading","bindTransparencyRTT","drawTransparentShading","_textureExtra","bindExtraRTT","drawExtra","preLeaf","LAST_LEAF","passTypes","forceAttribute","setUserData","isShadowCasterCamera","_scissor","_positionedAttribute","applyPositionedAttribute","sortBinArray","drawImplementationEditor","_LINEAR_TO_SRGB","linear","_SRGB_TO_LINEAR","linearToSrgb1","srgbToLinear1","linearToSrgb","srgbToLinear","encodeRGBM","decodeRGBM","rgbToHex","rgb","AddGaussianBlurPass","passArray","inputName","outputName","steps","needAdjustBlurDir","blurX","blurY","shaders","stepidx","step","shaderFile","hasShader","Generate","PostProcessNode","postProcessFeature","_view3d","_effectiveConfig","_model","getEventEmitter","onPingPongTexture0","getBackgroundModel","onBackgroundUpdated","onBackgroundColor","_composer","getBackground","background","toggle","from","to","statesetPass","textureunit","bgType","_replaceTexture","getBackgroundType","uOutputLinear","ColorHelper","rgbmRange","uRGBMRange","caps","useTransparency","useExtra","useDepth","_needDepthTexture","hasBG","useFxaa","useToneMapping","useSsao","effectiveconfig","useRefraction","useSsr","useDof","useBloom","useSharpen","useSss","useTaa","composer","effectiveConfig","_getSupportedFloatTexture","supportLinearFloat","_getSupportedLinearFloatTexture","_sssTexKernel","sssByteRange","useSSSLookupFloat","getSSSWeightRange","blurdirUniform","blurDir","firstDepthUniform0","firstDepthUniform1","mipIdx","curMipIdx","inputTextureDepth","outputTextureDepth","glslExtension","_addFixedBackgroundRefraction","supportFloatTexture","define","useChromaticAberration","useColorBalance","effects","useTaaTransparent","effect","useDistortionVR","useVignette","useGrain","backgroundTexture","getNodeBackground","backgroundUniform","_updateEffectiveConfig","_initComposer","needsPackDepthMipmap","needsPackColorMipmap","mipmapPassCount","_packMipmapDepth","_addSsao","_addSss","_addCombineOpacity","_packMipmapColor","_addRefraction","_addDof","_addBloom","_addMergeable","_addFixedBackground","_addPassThrough","hasNoPass","_addSuperSample","_addFinalPass","_addInternalTextures","_assignInternalTextureToCamera","refractedTex","_textureRefraction","texWidth","texHeight","composerPrototype","_resizeMipmapHeight","getCanvasWidth","getCanvasHeight","_hookComposerResize","statset","postProcessUniform","resetAttachments","_createComposer","resetCameraAttachments","PostProcessCallback","RESIZE_OBSERVABLE","CLIENT_WIDTH","CLIENT_HEIGHT","_postProcessFeature","_interpolatorDofFocusPoint","_interpolatorDofBlurNear","_interpolatorDofBlurFar","_interpolatorDofCross","_epsilon","_dofInitialized","_dofAutoFocus","_currentEye","_lastEye","_currentRot","_lastRot","_dofLastPos","_dofLastFocal","_firstFrame","_cullConfig","_skipTaaFrames","_lastUpdateTime","canvasRatioModel","viewerToCanvasRatio","_hookViewerCheckNeedToDoFrame","_hookViewerFrame","_hookViewerComputeCanvasSize","onResetTaa","showDofCross","_nodeIn","getMainCamera","createPathStandard","setSwitch","getCurrentComposer","viewerOSG","viewerOSGCheckNeedToDoFrameBound","viewerNeedDoFrame","_toggleComposerCameras","mainCamera","frameBound","setShadowForcedUpdate","_resizeCanvasTimeout","_doResizeCanvas","_overrideCanvasWidth","_overrideCanvasHeight","_onResizeCanvas","_onForceResizeCanvas","_cbEnableResizeCanvas","_enableResizeCanvas","viewerOSGJS","_originalCanvasResize","_computeCanvasSize","postProcessFeatureCallback","overrideW","overrideH","_resetResizeCanvas","supportOffscreen","ResizeObserver","observe","canvasRatio","onEffectChanged","trigger","uGlobalTexSize","textureRatio","uGlobalTexRatio","halton","uHalton","uPreviousGlobalTexSize","uPreviousGlobalTexRatio","uPreviousHalton","frameMod","uStaticFrameNumShadow0","uStaticFrameNumShadow1","uStaticFrameNumShadow2","uStaticFrameNumShadow3","projMat","getClampedProjectionMatrix","uSsaoProjectionScale","projInfo","uSsaoProjectionInfo","framestamp","updateNearFarRatio","updateGlobalTexUniforms","uTimeViewer","uPixelRatio","framemod","_shadowJitterUpdate","uFrameMod","needsSetFramemod","uTaaEnabled","uFrameModTaaSS","reprojectMatrix","uReprojectViewProj","prevProjection","uPreviousProjection","invViewMatrix","uPreviousViewInvView","projectionMatrix","_tmpView","_tmpProjection","updateSsao","updateDirtyEffect","updateGlobalUniforms","PostProcessFeature","_onViewerToCanvasRatio","encodeURIComponent","ua","onToneMappingExposureChanged","onToneMappingBrightnessChanged","onToneMappingContrastChanged","onToneMappingSaturationChanged","onToneMappingMethodChanged","checkSsaoEnable","onSsaoIntensity","onSsaoRadius","onSsaoBias","_createMainCamera","_nodeOut","_createNodeOut","_callbackPostProcess","_initUniforms","_updateViewports","ppvp","camvp","camW","camH","attrs","toneMapMode","isEffectiveGrain","isEffectiveSharpen","isEffectiveChromaticAberration","isEffectiveVignette","isEffectiveBloom","isEffectiveDof","isEffectiveSsr","uDistortion","uProjectionLeft","uUnprojectionLeft","uGrainFactor","checkGrainEnable","uSharpFactor","checkSharpenEnable","uChromaFactor","checkChromaticAberrationEnable","lensRadius","uLensRadius","amount","hardness","checkVignetteEnable","uBloomFactor","checkBloomEnable","uBloomThreshold","uBloomRadius","uColorBalanceLow","uColorBalanceMid","uColorBalanceHigh","uToneExposure","uToneBrightness","uToneContrast","uToneSaturation","uToneMethod","updateDofFocusPoint","updateTargetDofBlurNear","checkDofEnable","updateTargetDofBlurFar","uSsaoRadius","uSsaoIntensity","uSsaoBias","uSsrFactor","checkSsrEnable","uSSAARestart","hideDofCross","backgroundEnv_vert","backgroundEnv_frag","BackgroundNode","createTexturedBoxGeometry","_show","_bgEnv","_bgFixed","_texRatio","_canvasHidth","hide","scaleArray","bgEnv","exposure","backgroundExposure","bgFixed","ambient","TextureEnvironment","_channel","_isCubemap","getChannel","isCubemap","lodRange","uniformLodRange","uniformSize","channelType","EnvironmentNode","_isPBR","_textureSpecular","_textureSpecularUnit","ENV_SPECUAR_TEXTURE_UNIT","_textureSpecularPBR","_textureIntegrateBRDF","_textureSpecularPBRUnit","_textureIntegrateBRDFUnit","ENV_BRDF_TEXTURE_UNIT","_nodeBackground","_adjustRotation","fromXRotation","_defaultExposure","_lightProbes","envLight","_shadow","_lightIntensity","_lightShadowEnabled","_shadowBias","_lightNodeRoot","setTexturesStateSet","removeTexturesStateSet","setExposure","setEnvironment","perspectResult","tempMat","envTransformUniform","envUniform","environmentTransform","cullvisitor","getPerspective","_mainCamera","fovy","aspectRatio","curModelView","fromMat4","mainCam","camNode","createCameraNode","updateTextureUnits","updateLightShadow","updateLightColorAndIntensity","probe","exposureRate","lightProbeColor","defaultExposure","eyeup","debugEnvShadow","_debugShadow","_debugDone","dirGeom","useShadow","isUsingLightShadow","maxTextureUnit","updateLightFromProbes","fromZRotation","sph","sphValues","diffuseSPH","setIsCubemap","textureSpecular","logrange","updateLodRange","textureSpecularPBR","textureIntegrateBRDF","ispbr","tempMat1","tempMat2","Environment","_nodeEnvironment","_backgroundLoaded","onExposureChanged","onRotationChanged","onBackgroundEnableChanged","onBlurChanged","onEnvironmentChanged","_resourceDefer","onShadowEnable","onShadowBiasChanged","onLightIntensityChanged","initEnvironment","initRotateEnvironment","backgroundFeature","getBackgroundEnableType","_rotEnv","lastCanvasX","_computeDelta","getWorldNode","getMinimumBound","rotateEnv","rotateLight","setLightShadowEnabled","setLightIntensity","setShadowBias","getEnvironment","setBackgroundExposure","updateRotation","isBackgroundEnvironment","setBackgroundTexture","backgroundType","setBackgroundAmbient","envModel","texturePromises","texturesPromises","isPBR","setIsPBR","setDiffuseSPH","probes","setLightProbes","setDefaultExposure","setEnvironmentPBR","setEnvironmentOld","encoding","envNode","envModelTextures","textureLodSupported","textureModel","findTexture","imageModel","getImageRes","transferToGPU","textureRes","setSpecularPBRTexture","limitSize","texturePromise","getPromiseTexture","maxUnit","setIntegrateBRDFTexture","blur","getClosestBlur","getBackgroundResource","loadedBackground","nodeEnv","Resolution","maxSetp","Background","onBackgroundChanged","_modelEnvironment","getNodeEnvironment","getResources","convertNPOT","setBackground","rescale","_viewWidth","_viewHeight","showBackground","showColor","showEnvironment","showAmbient","requireBiggerTexture","pixels","canvasSrc","canvasDSt","drawCallBack","flush","finish","contextSrc","imageDataSrc","getImageData","putImageData","contextDst","clearRect","fillRect","save","globalCompositeOperation","drawImage","drawFunc","ScreenShot","superSample","oldMask","prepareForScreenShot","setPoseForScreenshot","setFinalDrawCallback","canBeEnabled","forceEnable","updateFrame","resetAfterScreenShot","StickerAttribute","_hitPoint","_hitNormal","_feature","_stickers","stNum","highlight","getHighlight","_anchors","flat","getInvTransform","getInvQuatMat","getWorldPos","getWorldNormal","getVisible","tempWorldPosition","tempWorldNormal","tempN","tempMat3","Sticker","gbp","ref0","ref1","tmpvec3","xUnitVec3","yUnitVec3","_visible","_highlight","_invTransform","_invQuatMat","_originalImage","_globalBoundingSphere","_mirror","_worldPos","_worldNormal","_ref0","_ref1","_useGBP","invTransform","invQuatMat","worldPos","worldNormal","anchors","visible","mirror","getMirror","renderData","lodash","cloneDeep","_renderWithAnchor","pt","subtract","updateInvTransform","sx","sy","mapAspectX","mapAspectY","mapWidth","mapHeight","dynamicScale","_getDynamicScale","quatFromXtoTarget","zaxis","cross1","cross2","projectXY","rotationTo","turnup","acos","uv","getUV","transformMat3","transferToUVSpace","temp","findIndex","_activeAnchor","p3","p4","y1c","y2c","y1n","y2n","corners","_corners","lerp","anchor","MAX_STICKERS_NUM","StickerFeature","initSticker","_previousDraggingPoint","_stickerTextures","_stickerAttribute","_uHighlight","_uMat","_uT","_selected","_activeSticker","_maximumSelectedNum","_setupStickersByModelsBound","setup","yw","zMax","zMin","startPt","endPt","imagesP","sticker","fromJson","_updateStickerSlot","worldPosition","pick","worldT","computeLocalToWorld","normalFromMat4","STICKER_TEXTURE_UNIT","updatePosition","check","getStickerById","calculateReferPoints","stickers","isInUnitSquare","setHighlight","emit","hitStickersByPos","setActiveSticker","archerIndex","selectAndActiveAnchor","enableManipulator","updateAnchor","Channel","initChannel","times","channelName","createVec3Channel","chan","Vec3","createFloatChannel","Float","createQuatChannel","Quat","createQuatSlerpChannel","QuatSlerp","createFloatCubicBezierChannel","FloatCubicBezier","createVec3CubicBezierChannel","Vec3CubicBezier","create32","createInstanceChannelType","operator","targetID","Target","InvalidTargetID","createInstanceVec3Channel","createInstanceQuatChannel","createInstanceFloatChannel","createInstanceFloatCubicBezierChannel","createInstanceVec3CubicBezierChannel","createInstanceChannel","createInstanceQuatSlerpChannel","ChannelType","animationCount","createAnimation","animationName","createInstanceAnimation","animation","firstKeyTime","Animation","vec3CopyKeyFrame","Vec4CopyKeyFrame","Vec3LerpInterpolator","channelInstance","t2","z1","z2","QuatLerpInterpolator","q0","q1","nlerp","QuatSlerpInterpolator","slerp","FloatLerpInterpolator","FloatCubicBezierInterpolator","oneMinusT","oneMinusT2","oneMinusT3","Vec3CubicBezierInterpolator","moduleInterpolator","CollectAnimationUpdateCallbackVisitor","_animationUpdateCallback","getAnimationUpdateCallbackMap","cbs","cbsLength","TypeToSize","Matrix","ResultType","BasicAnimationManager","BaseObject","_simulationTime","_pauseTime","_timeFactor","_startTime","_instanceAnimations","_startAnimations","_targets","_targetsMap","_targetsByTypes","ni","_activeAnimations","_activeAnimationList","_activeChannelsByTypes","nj","_animationsUpdateCallback","_animationsUpdateCallbackArray","_animationsToRegister","_pause","_seekTime","animations","_resetTargets","addAnimations","instanceAnimationList","_addAnimation","_registerAnimations","_findAnimationUpdateCallback","_registerTargetFoundInAnimationCallback","updateManager","_processStartAnimation","activeChannelType","_updateChannelsType","Interpolator","targetType","_updateTargetType","nk","animCallback","_removeFinishedAnimation","togglePause","setSeekTime","stopAnimation","activeAnimationList","nbAnim","_removeActiveChannels","stopAllAnimation","setTimeFactor","timeFactor","getTimeFactor","isPlaying","playAnimationObject","anim","playAnimation","animationObject","getAnimations","instanceAnimation","_registerInstanceAnimation","instanceChannels","instanceChannel","uniqueTargetName","_targetMap","collector","targetMap","targets","registerTarget","keyAnimation","animCb","UpdateMatrixTransform","stackedTransforms","getStackedTransforms","numStacked","stackedTransform","UpdateMorph","numTarget","getNumTarget","getTargetName","_addActiveChannels","targetChannelsList","channelTypeList","channelIndex","targetList","operatorType","affectedChannels","nbChannels","defaultValue","accumulatedWeight","achannel","tLocal","_addActiveAnimation","cmd","resetUpdateCallbacks","anims","nbAnims","resetAllStackedTransforms","setAnimationLerpEndStart","lerpDuration","originalDuration","firstKey","animDuration","originalEnd","sizeElt","idLast","easeLinear","easeInQuadratic","easeInCubic","easeInQuartic","easeInQuintic","easeInSextic","easeInSeptic","easeInOctic","easeOutQuadratic","easeOutCubic","easeOutQuartic","easeOutQuintic","easeOutSextic","easeOutSeptic","easeOutOctic","easeInOutQuadratic","easeInOutCubic","easeInOutQuartic","easeInOutQuintic","easeInOutSextic","easeInOutSeptic","easeInOutOctic","easeInBack","easeInOutBack","easeOutBack","easeInCircle","easeInOutCircle","easeOutCircle","easeInElastic","easeOutElastic","easeInOutElastic","easeOutBounce","easeInBounce","easeInOutBounce","easeOutQuad","easeInQuad","easeInOutQuad","easeOutQuart","easeInQuart","easeInOutQuart","StackedMatrix","createMatrixTarget","resetToDefaultValue","applyToMatrix","qIdentity","StackedQuaternion","createQuatTarget","setQuaternion","matrixTmp","mtmp","StackedRotateAxis","createFloatTarget","setAxis","setAngle","quatTmp","qtmp","StackedScale","createVec3Target","setScale","StackedTranslate","setTranslate","osgAnimation","Easing","MorphGeometry","RigGeometry","Skeleton","UpdateSkeleton","updator","callbackIdx","PathCallback","_path","STATE_ATTRIBUTE_OVERRIDE_ON","OutlineNode","_durationOutline","_timerOutline","_durationHighlight","_timerHighlight","_nodeProxy","_outlineScene","_paths","_cbHideHighlight","hideHighlight","_cbHideOutline","hideOutline","GL_DEPTH_DISABLE","_stateSetSelection","_uColorSelection","_stateSetHover","_uColorHover","_uOutlineFactor","_uHighlightFactor","_uLineWidth","_clearTimeoutOutline","_clearTimeoutHighlight","children","_getMaterialNode","pathnodesArray","isHover","pathnodes","matrixtransform","logicnode","_getLastMaterialPath","UpdateCallbackChecker","addPaths","camerastateset","glCullDisable","outlineComposer","outlineTexture","cameraRTT","createSubSceneRtt","_cameraRtt","viewerosg","composerPassOutlineStateset","blendSub","tempBoundingbox","EditorComputeBoundsVisitor","_pushIfGeo","_bonesBoxMatrix","_usedBones","_stateSet","bone","bonematrix","statsset","pushIfGeo","nodePath","nameids","getBoneNameID","lastnode","editorBoundsVisitor","OutLine","colorHover","outlineWidth","colorSelection","durationOutline","durationHighlight","onColorSelectionChanged","onColorHoverChanged","onOutlineWiddthChanged","onHideOutline","onHideHighlight","onClearFocusTimeout","_nodeOutline","_onMaterialChange","setColorSelection","setColorHover","setOutlineWidth","_timer","nodeoutline","focusOnBound","focusOnHomePosition","showOutline","outlineStateset","hoverStateset","pathNodes","_focusOnBound","clearOutlineScene","addPathsHover","setDurationOutline","setDurationHighlight","FrameManager","mFrame","poseForScreenShot","preTick","frameTimeAverage","shadowForcedUpdate","SuperSampleTrigger","isSameFrame","isDrawAlreadyQueued","currentTick","_drawImpl","_doJitter","JITTER_ARRAY","SuperSample","_canBeEnabled","_sampleCount","_isFakeSupersampling","_isSupersampling","_frameNum","_frameNumTaa","_switch","_jitter","wireframeNode","getOrCreateScene","getWireframeNodes","framenum","istaa","getSortedJitterTable","taascale","switchenable","isTaaJitter","updateUniforms","isSupersampled","curFrame","_lastUpdateFrame","_postProcess","drawSameFrame","CADManipulatorStandardMouseKeyboardController","ZOOM_OFFSET","PICK_INTERVAL","CAD_MANIPULATOR_MOUSEKEYBOARD","CAD_MANIPULATOR_RESETTOHOME","savePosition","_timerRef","_lastX","_lastY","CADManipulatorHammerController","CAD_MANIPULATOR_TOUCH","CADManipulator","_tmpHomePosition","_intersectionVisitor","_lineSegmentIntersector","_polytopeIntersector","_usePolytopeIntersector","_primitiveMask","d0","d1","_right","_homeEye","_homeCenter","_homeUp","_orientation","_pivotPoint","_eye","_zoomDir","setViewer","CAD_MANIPULATOR","setPivotPoint","pivotPoint","setHomePosition","setRotateFactor","setUsePolytopeIntersector","upi","getUsePolytopeIntersector","getIntersectionVisitor","getLineSegmentIntersector","getOrCreatePolytopeIntersector","setIntersectionLimit","setPrimitiveMask","trans","rotPos","speedTmp","rotMat","vectorDistance","speedDist","zoomSpeed","rightNormalized","pitchQuat","yawQuat","pitchyawQuat","rightScalar","yawDelta","pitchDelta","transformQuat","scalar","xy","positionPitch","transMat","mouseFactor","deltapan","pTrans","pi","getPositionRelativeToCanvas","_graphicContext","getOffsetRect","getCanvasCenter","docElem","documentElement","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","FirstPersonManipulatorHammerController","FPS_MANIPULATOR_TOUCH","FirstPersonManipulatorWebVRController","FPS_MANIPULATOR_WEBVR","FirstPersonManipulatorStandardMouseKeyboardController","_stepFactor","_looking","FPS_MANIPULATOR_MOUSEKEYBOARD","startLookAt","stopLookAt","goForward","goBackward","goLeft","goRight","stopMoving","stopStrafing","changeStepFactor","FPS_MANIPULATOR_RESETTOHOME","_buttonup","setStepFactor","getLookPositionInterpolator","getForwardInterpolator","getSideInterpolator","FirstPersonManipulator","cen","_direction","_up","_forward","_side","_lookPosition","_angleVertical","_angleHorizontal","_tmpGetTargetDir","_vrEnable","_vrRot","_vrPos","_vrTrans","FPS_MANIPULATOR","asin","upy","upz","LIMIT","computePosition","len2","directFactor","moveForward","strafe","strafeVertical","tmpTarget","SwitchManipulator","_manipulatorList","_currentManipulator","cbList","getManipulatorList","getNumManipulator","addManipulator","setManipulatorIndex","getCurrentManipulatorIndex","useBoundingBox","osgGA","NO_MOUSEEVENTS","getCADManipulatorStandardMouseKeyboardController","getCADManipulatorHammerController","getFirstPersonDeviceOrientationController","getFirstPersonManipulatorHammerController","getFirstPersonStandardMouseKeyboardControllerClass","getFirstPersonWebVRControllerClass","getOrbitManipulatorDeviceOrientationController","getOrbitManipulatorGamePadController","getOrbitManipulatorHammerController","getOrbitManipulatorStandardMouseKeyboardController","getOrbitManipulatorWebVRController","Rotate","Zoom","eps","_enableRecenter","_zoomEMA","_pitchEMA","_yawEMA","_panVEMA","_panHEMA","_constrainPan","_constrainedTarget","_noPan","_noZoom","_noRotation","preventFlip","upDir","rotationMatrix","dotvalue","zoomEma","limitIn","limitOut","zoomValue","_getLimitReached","_prevDistance","limitReachy","_computeEMA","prevYaw","limitReach","_postMultRotate","_resetInitialVR","DelayInterpolatorProtoType","setter","isDone","threhold","updater","hookIsDone","_autoRotating","_autoRotateMode","_startAutoRotate","_","debounce","trailing","_stopAutoRotate","leading","orbiter","_isOrbitPan","cameraEasing","ORBIT","FPS","controlist","controller","_setManipulatorDelay","curManipulator","setTargetAndEye","currentManipulator","newHome","tempEye","tempTarget","rotateZ","SHADINGKEYS","getComponentEnums","LUMINANCE","ALPHA","getComponents","Remapping","mapper","mapping","MaskMapping","CLASSIC","CLASSIC_LIT","CLASSIC_SHADELESS","INSPECTOR","LIT","MATCAP","PBR","PBR_LIT","PBR_SHADELESS","SHADELESS","getShadingMask","isSRGB","getDefaultFormatEnum","getDefaultFormatComponent","getDefaultFormatString","getDefaultComponentCount","getPossibleFormat","getPossibleFiltering","textureParam","NEAREST_MIPMAP_LINEAR","getColorPacking","getBoxFactor","_channelMapping","_materialModel","_stateSetContext","_additive","_castShadows","_hashes","_dirtyUniforms","_activeChannels","CURRENT_COMPILER","WIREFRAME_COMPILER","getVertexAlphaEnable","SHADING_COMPILER","getShadeless","getVertexColorEnable","getHasOnlyPoints","getVertexColorColorSpace","isShadowCompiler","SHADOWCAST_COMPILER","getChannels","compilerChannel","compilerChannels","cc","isEnableEffective","getShaderHash","getChannelPacking","stateSetContext","opacity","isEffective","getTransparency","getFactor","getTextureModel","hasOnlyPoints","uReflection","addUniforms","activeChannels","cacheUniforms","_cacheChannelUniforms","getReflection","EARLYZ_COMPILER","hasVertexColor","hasVertexAlpha","EditorCompiler","textureAttrs","_vertDefines","_fragDefines","_vertAssignUV","_envBrdf","_envSpecular","_compression","_material","_skinning","_morphing","_shadows","_shadowsTextures","_targetByUnit","initAttributes","initTextureAttributes","defineShaderName","initDefines","shadows","typeName","getVertexShaderName","eps_alpha","compilerName","getCompilerName","renderMode","_channels","AlphaMask","isFrag","mainSource","getFragmentMain","getVertexMain","getSortedUnique","defineStr","processShader","E","declareAndAssignTexCoord","getTexCoordUnit","getNonIdentityUvTransform","_getTexCoordTransforms","isEnableEffectiveHardware","defineOpacity","getChannelMapping","getSRGB","getChannelUV","getLightType","getIsCubemap","defineChannel","randa","Ye","_randHardcodedScale","defineChannels","defineVertexColorAndAlpha","defineLights","defineShadows","defineEnvironment","defineSsr","defineMorphing","defineSkinning","defineCompression","definePointSize","setStateAttributeConfig","PBRCompiler","textureAttr","_changeColorAttribute","_originMaterial","_uvTransform","_uvProjection","_sticker","_diamondAttribute","materialName","diamondShader","isUseSourceColor","getHasNormalMap","getHasClearcoat","getHasAOMap","getHasDisplacementMap","getMetalnessWorkFlow","getUnLit","isMobile","defineUV","defineSticker","defineUnLit","OutlineCompiler","EarlyZCompiler","EditorShaderGenerator","shaderCompiler","compilerType","compilingProgramNum","_materialHashCompiler","textureattributes","getAsyncCompiling","getAsyncLinkingStatus","getLinkResult","_placeHolder","_waitingProgram","enableAsyncCompilation","addShaderGenerator","shaderGeneratorProxy","registerShaderGenerator","HAS_REGISTED","tempXY","CanvasPixelRatio","pixelRatio","_dynamicResolutionScaling","_pixelRatio","scaling","pixelratio","pixelratoi","nodeGrid","nodeRuler","shoes","mainShoe","initRoot","_uInverseMat","stickerUnit","show","shoe","isLeft","nodeLeft","nodeRight","udata","goemNode","_rootModel","treeBuilder","ExplodeSetupVisitor","explodeCenter","_explodeCenter","explodeNode","explode","assign","worldTraslation","sphere","worldCenter","ExplodeVisitor","newCenter","newDir","newPos","parentWorldMat","targetWorldMat","newLocalMat","shaderChunks","earlyZFrag","cubemapFragment","cubemapSampler","cubemapVertex","math","changeColor","panoramaSampler","pbr_ue4","pbrFrag","baseVert","sphericalHarmonics","sphericalHarmonicsFragment","sphericalHarmonicsVertex","triplanar_projection","shadowCastFrag","stickerglsl","baseShaderChunks","postProcessShaderChunks","ReleaseVisitor","traversalMode","_releaseVisitor","_explodeSetup","_explode","_explodeRoot","texture0","factorShadowEnv0","uProjFactor","uDofBlurNearFarFocal","uDofCross","uDofScale","uTimeGrain","uTaaInvViewMatrixLeft","uTaaCurrentFramePVLeft","uTaaLastFramePVLeft","uTaaCornersCSLeft","uTaaInvViewMatrixRight","uTaaCurrentFramePVRight","uTaaLastFramePVRight","uTaaCornersCSRight","uVrFadeFactor","uVrVeilFactor","uInverseScopeModelMatrix","uEarlyZ","uQVT","uQVS","uQW","uQUV0","uBoxRadius","uTextureToBeRefractedSize","uHoverUV","uDisplay2D","uSplitView","uInspectorView","uScatteringFactorPacker","uNormalizeFactorThickness","uIsVr","uQuality","readShaders","stencil","premultipliedAlpha","fullscreen","enableFrustumCulling","Mouse","_featuresManager","_eventEmiiter","requestContinuousUpdate","getShaderGeneratorProxy","drawNoJitter","_superSample","setSuperSample","setRoot","setSceneData","EnvironmentFeature","BackgroundFeature","OutlineFeature","screenShot","ScreenShotFeature","rootscene","displayGraph","setDisplayGraphRenderer","createGraph","finished","featureFinished","detail","ret","_drawable","rot","fixed","exp","bright","contrast","sat","setViewMode","setNoPan","setNoZoom","getScreenShot","_launchViewer","captureMaterial","forceClean","clearCache","flushAllDeletedGLObjects","PresetLights","isPreset","lightsModel","showLighting","setSelect","phi","ymatrix","fromYRotation","zmatrix","setAutoRotateMode","Bus","_hooks","osgWrapper","Name","UserDataContainer","userdata","UpdateCallbacks","cbAddCallback","pp","Children","queueNodes","RenderingHint","createAttribute","jsonAttribute","isRejected","AttributeList","createTextureAttribute","TextureAttributeList","al","Diffuse","Emission","Specular","Shininess","setAmbient","Ambient","setDiffuse","setEmission","setSpecular","setShininess","SourceRGB","SourceAlpha","DestinationRGB","DestinationAlpha","setSourceRGB","setSourceAlpha","setDestinationRGB","setDestinationAlpha","ConstantColor","setConstantColor","Direction","Position","LightNum","SpotCutoff","LinearAttenuation","ConstantAttenuation","QuadraticAttenuation","setConstantAttenuation","setDirection","setPosition","setQuadraticAttenuation","setSpotCutoff","setSpotBlend","SpotExponent","MinFilter","MagFilter","WrapT","WrapS","ReferenceFrame","VertexAttributeList","PrimitiveSetList","arraysPromise","prims","cbAddPrimitives","promisePrimitive","cbSetBuffer","vList","functionSortAttributes","promiseBuffer","plod","CenterMode","setCenterMode","UserCenter","RangeMode","setRangeMode","RangeList","setRange","RangeDataList","setFileName","addChildNode","osgAnimationWrapper","channelCtor","registry","Channels","arrayChannelsPromise","StandardVec3Channel","creator","TargetName","KeyFrames","Time","Key","jsTime","jsKeyX","jsKeyY","jsKeyZ","pArray","eTime","eKeyX","eKeyY","eKeyZ","StandardQuatChannel","jsKeyW","eKeyW","StandardFloatChannel","jsKey","eKey","Vec3LerpChannel","QuatLerpChannel","QuatSlerpChannel","FloatLerpChannel","FloatCubicBezierChannel","ControlPointOut","ControlPointIn","arrayPromise","keyFrames","controlPointIn","controlPointOut","Vec3CubicBezierChannel","cpi0","cpi1","cpi2","cpo0","cpo1","cpo2","Animations","animPromises","promiseAnimation","umt","StackedTransforms","promiseStacked","stack","Translate","Quaternion","Axis","Angle","sme","stc","Scale","InvBindMatrixInSkeletonSpace","setMax","setMin","upSkl","rigGeom","SourceGeometry","BoneMap","rigPromise","_boneNameID","geomPromise","sourceGeometry","setSourceGeometry","getSourceGeometry","mergeChildrenData","morphGeometry","MorphTargets","morphTargets","promiseResultArray","morphGeometryResolved","getMorphTargets","jn","mergeChildrenVertexAttributeList","updateMorph","TargetMap","StackedMatrixElement","StackedScaleElement","Text","_context","_matrixTransform","_font","_color","_fillStyle","textAlign","_textX","baseLine","_textY","_characterSize","_characterSizeMode","OBJECT_COORDS","_autoRotateToScreen","_layout","LEFT_TO_RIGHT","_alignment","CENTER_CENTER","_forcePowerOfTwo","drawText","_previousModelView","SCREEN_COORDS","OBJECT_COORDS_WITH_MAXIMUM_SCREEN_SIZE_CAPPED_BY_FONT_HEIGHT","RIGHT_TO_LEFT","LEFT_TOP","LEFT_CENTER","LEFT_BOTTOM","CENTER_TOP","CENTER_BOTTOM","RIGHT_TOP","RIGHT_CENTER","RIGHT_BOTTOM","setTextProperties","_nextPowerOfTwo","quadWidth","setFont","setColor","getColor","setCharacterSize","setMaximumScale","getCharacterSize","setCharacterSizeMode","setAutoScaleToScreen","getCharacterSizeMode","setFontResolution","resolution","getFontResolution","_setAlignmentValues","setAutoRotateToScreen","getAutoRotateToScreen","setLayout","layout","getLayout","setAlignment","alignment","getAlignment","doUpdate","_firstTimeToInitEyePoint","_previousWidth","_previousHeight","_previousProjection","_previousPosition","_autoScaleToScreen","psvector","computePixelSizeVector","pixelSize","_autoScaleTransitionWidthRatio","_minimumScale","_maximumScale","modelView","setRotation","setForcePowerOfTwo","getForcePowerOfTwo","osgTextWrapper","AutoRotateToScreen","CharacterSize","Layout","Alignment","osgDB","DatabasePager","osgWrappers","osgAnimationWrappers","osgText","osgTextWrappers","defaultColor","_defaultTexture","maps","SpecularMap","defaultConfig","diffuse","useTexture","specular","gloss","metalness","displace","uvMap","createMaterial","defaultConf","attrGroup","attrDefault","createRenderMaterial","MetalnessWorkFlow","rk","restAttr","createNativeMat2","colorCardConf","createTextureMat","mat3d","cusUv","orginScale","baseMap","baseColor","roughMap","roughFactor","metalMap","metalFactor","displaceMap","displaceFactor","diffuseColor","diffuseMap","glossFactor","glossMap","specColor","specMap","opacFactor","opacMap","createDefaultEvn3d","cusNum","thumbnail","createTime","hdr","toneMap","saturation","createDefaultScenePackage","mats","techMaterial","osgjs","glb","boundingBox","env3ds","products","geomId","components","scenes","envId","prodId","getAppInstance","setEnv3d","setEnvironmentRotation","setEnvironmentExposure","setToneMappingExposure","setToneMappingBrightness","setToneMappingContrast","setToneMappingSaturation","setToneMappingMethod","_touchTime","_touchPos","_rect","_picking","initEvent","touchEvent","setOutLine","evtTouchClick","getPos","setCanvasRect","activeElement","tagName","endPos","clicked","clickedOutline","getCanvsPos","env3d","dom","pickOption","enablePicker","destory","picker","getDefaultEnvHandle","env","setDefaultEnv3d","once","enableGrid","enableGizmo","inRadiuScale","outRadiuScale","inScale","outScale","mesh","_InverseModelMatrix","_tempMatrix","_version","geomVisitor","geomName","getGeomByName","updateGeomMaterial","CompName","loader","resMap","load","delete","GroundShadow","onLoad","setUnLit","enableInvertAlpha","orgMaterial","_visiable","setVisiable","Utils","Util","meshObj","sceneProdId","clearMeshParent","removeParents","frags","parseFloat","xw","maxX","objShadow","nodeShadow","quatR","trsMat","fromRotationTranslationScale","env3dConf","area","lum_ratio","luminosity","variance","samples","sizeCompressed","sizeUncompressed","writeByChannel","initSceneEnv","queen3d","backgroundTransparent","setSceneEnv","setSceneBg","setSceneLight","setEnv3dOption","setEnvToneMap","setBackgroundColor","setBackgroundFixed","setLightingEnable","setThreeLightsJson","initSceneGeoms","geomsCacher","pack","downloading","prod","finded","initMatGeom","_inputFilter","_inputWrap","_outputSize","_downSampler","_mipmapSampler","_downSamplerTarget","mipMaping","_output","createU84","context","bindRenderTarget","renderTargetMipmap","wrap","_draw","_blurIn","_blurOut1","_blurOut2","quality","tex1","tex2","_computeTarget","_splitAlpha","_histogram_scan_shader","_withoutMaskBlit","_maskBlit","_mean","_targetAlpha","_blurHQ","_scan","sourceMode","ColorMatchPass","AVERAGE","sourceTexture","color_variation_hue","color_variation_chroma","color_variation_luma","useMask","mask_hue","mask_chroma","mask_luma","mask_blur","mask_smoothness","TEXTURE","smoothTex","blurTex","targetTex","opacityTex","COLOR","defaultParams","createUid","createOss","createDiamond","createUV","excludeKeys","createObjByOwnKeys","d2","newSource","onInit","sourceId","arr","PackSourceGroup","sourceType","currItem","isHashEqual","Set","getOwnPropertyNames","newObj","diamond","groupId","uvsize","locked","colorcard","store","showLoading","nativeProductMap","nativeMatMap","defaultAlbeoColor","destroy","afterInit","showGizmo","gizmoAttach","packSource","initSceneProducts","updateController","initSceneMats","createNativeMat","setGeomMat","createSceneProductObj","prodObj","prodConf","findProductDef","geomCon","findGeomDef","createProductObj","noShadow","srcProd","defaultMat","addMat","comps","createGroup","getGeoms","updateTransform","prodDef","comp","setGeomVisible","initNativeMatMap","initSceneMat","nativeProd","packProd","matItem","matProdItem","findMatDef","matNodes","initPackMat","nativeMat","compName","props","isRequired","loading","RefCanvas","initQueen","loadPackSource","ContentStyle","loadingStyle","useContainerRefWithRadio","radio","gap","contentRef","containerRef","resizeHandler","changeContainerStyle","containerEl","contentEl","contentRatio","contentGap","loadMatSource","RefAsset","assetType","loaded","previewId","renderAsset","Mesh","Mat","msgData","postMessage","channelFactory","ReaderWriterGLTF","_filesMap","_loadedFiles","_bufferViewCache","_basicAnimationManager","_visitedNodes","_animatedNodes","_bones","_skeletonToInfluenceMap","_inputImgReader","_localPath","_extensions","_nodeAnimationTypes","base64ToArrayBuffer","base64","binary_string","atob","bytes","WEBGL_COMPONENT_TYPES","5120","5121","5122","5123","5125","5126","TYPE_TABLE","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","ATTRIBUTE_OSGJS_TABLE","POSITION","NORMAL","TANGENT","TEXCOORD_0","TEXCOORD_1","TEXCOORD_2","TEXCOORD_3","TEXCOORD_4","TEXCOORD_5","TEXCOORD_6","TEXCOORD_7","TEXCOORD_8","TEXCOORD_9","TEXCOORD_10","TEXCOORD_11","TEXCOORD_12","TEXCOORD_13","TEXCOORD_14","TEXCOORD_15","COLOR_0","JOINTS_0","WEIGHTS_0","TEXTURE_FORMAT","6406","6407","6408","6409","6410","LUMINANCE_ALPHA","TYPE_CHANNEL_PATH","weights","TYPE_STACKED_TRANSFORMS","PBR_SPEC_EXT","PBR_SPEC_MODE","PBR_METAL_MODE","DIFFUSE_TEXTURE_UNIT","SPECULAR_GLOSSINESS_TEXTURE_UNIT","METALLIC_ROUGHNESS_TEXTURE_UNIT","SPECULAR_TEXTURE_UNIT","EMISSIVE_TEXTURE_UNIT","ALBEDO_UNIFORM","METALLIC_ROUGHNESS_UNIFORM","SPECULAR_UNIFORM","NORMAL_UNIFORM","AO_UNIFORM","EMISSIVE_UNIFORM","_glTFJSON","_stateSetMap","_inputReader","_rootStateSet","_defaultBlendFunc","_transparentBlendFunc","_defaultCullFace","_doubleSideCullFace","_preProcessNodes","_gltfJSON","meshes","osgjsNodeName","loadBuffers","buffers","loadURI","loadBufferViews","bufferViews","bufferView","byteOffset","loadAccessors","accessors","bufferArray","accessor","bufferViewIndex","componentType","elementBytes","itemBytes","byteStride","normalized","_computeNodeMatrix","loadNodes","skins","usedAsBone","skin","skeleton","osgjsNode","osgjsNodeAttached","osgjsGeometry","setBoneNameID","osgjsBoneMapID","_createMatrixTransform","_linkNodes","osgjsChild","hasChild","loadSkins","_processSkin","loadScenes","_osgjsScene","sceneNodes","rootNodes","_assignGeometryAttributes","gltfAttributes","accessorIndex","osgjsAttributeName","_assignGeometryPrimitives","primitiveMode","osgPrimitive","_getMorphTargetName","_computeAbsoluteMorphData","baseAttributes","morphAttributes","morphAbsoluteComputed","baseAccessorIndex","baseAccessor","_processMorphGeometry","morphUpdateCallback","morphTarget","osgjsMorphGeometry","osgjsUpdateMorph","loadMeshes","materials","osgjsGeometries","rigGeometry","computeBoundingBox","osgjsStateSet","loadImages","decodeURI","gltfTexture","osgjsTexture","_pbrMetallicRoughnessTextureUniforms","metalnessRoughness","_pbrMetallicRoughness","pbrWorklow","baseColorTexture","baseColorFactor","metallicFactor","metallic","metallicRoughnessTexture","_KHR_materials_pbrSpecularGlossinessTextureUniforms","specluarGlossiness","_KHR_materials_pbrSpecularGlossiness","diffuseTexture","diffuseFactor","specularFactor","glossinessFactor","specularGlossinessTexture","loadMaterials","hasTransparentMaterial","hasDoubleSidedMaterial","rootStateSet","pbrMetallicRoughness","extensions","KHR_materials_pbrSpecularGlossiness","normalTexture","occlusionTexture","emissiveTexture","emissiveFactor","alphaMode","doubleSided","_createBone","nodeID","nodeAnimationTypes","updateCallback","stackTransforms","StackedType","skinID","inverseBindMatrixAccessor","joints","inverseBindMatrices","boneMap","boneMapID","boneID","parentID","boneParent","loadAnimations","osgjsAnimations","samplers","osgjsChannels","sampler","accessorValues","createChannel","nbTargets","nkKeys","targetIndex","animationFactory","animationManager","_animationManager","glTFFile","readJSON","addReaderWriter","JSZip","ReaderWriterZIP","_fileName","readZipFile","zfile","fileOrBlob","ReaderWriterQueen","req","Request","credentials","fetch","response","bf","osgPlugins","loadFileTest","routes","component","router","history","App","use","mount","_keys","_map","arrayLength","hasKey","getMap","getKeys","nodeMask","_boundingSphereComputed","_boundingBox","_boundingBoxComputed","_updateCallbacks","_cullCallback","_cullingActive","_numChildrenWithCullingDisabled","_numChildrenRequiringUpdateTraversal","_tmpBox","pooledMatrix","nodeGetMat","validNodeMask","pushOntoNodePath","popFromNodePath","deltaUpdate","_updateNumChildrenRequeringUpdateTraversal","parentNum","getUpdateCallback","hasExistingCallback","arrayIdx","getNumChildrenWithCullingDisabled","getCullingActive","setNumChildrenWithCullingDisabled","getNumChildren","getChild","nbChildren","updateCallbackRemoved","ascend","expandByBoundingSphere","expandRadiusBySphere","getWorldMatrices","CollectParentPaths","nodePaths","halt","collected","matrixCreate","matrixList","matrixGenerator","isCullingActive","CompilerColorGeometry","configColor","cloneStateAttributeConfig","createFragmentShaderGraph","getOrCreateUniform","createVariable","setValue","ShaderGeneratorCompilerColorGeometry","CompilerColorSkinning","configSkinning","getOrCreateVarying","declareVertexVaryings","roots","getOrCreateAttribute","ShaderGeneratorCompilerColorSkinning","GeometryColorDebugVisitor","_debugColor","_debugSkinning","_stCenter","CompilerSkinningGeometry","setGeometryDebug","setSkinningDebug","disableDebug","_debugCenterGeometry","verts","geo","mt","_isCenterDebug","_debugRigGeometry","BonesColor","eltBones","Bones","eltWeights","Weights","bones","_rigTransformImplementation","nbBones","bonesColor","idb","c0","w0","w1","w2","w3","idc","_debugGeometry","debugColor","debugSkinning","_originalStateSet","_isNormalDebug","renderOrder","renderOrderNum","_view","_renderer","_attachments","setView","_finalDrawCallback","getFinalDrawCallback","setInitialDrawCallback","_initialDrawCallback","getInitialDrawCallback","clearMask","modelviewMatrix","setViewMatrixAsLookAt","setProjectionMatrixAsOrtho","getRenderOrder","orderNum","bufferComponent","ArrayType","Float64Array","setMatrixArrayType","create64","fromValues32","fromValues64","transformMat4Rotate","mth","neg","INFINITY","NEGATIVE_INFINITY","zeroRotation","fromEuler","halfToRad","cx","cy","sz","cz","getEulerDeprecated","getEuler","qx","qy","qz","qw","a2","outx","outy","outz","outw","ax","ay","az","aw","bx","by","bz","bw","invLen","tempNear","tempFar","getLookAt","mvp","withNearFar","computeNearFar","nbPlanes","znear","A","B","C","getSqrScale","glmRotate","rad","glmFromRotate","destination","applyViewport","CompilerOffsetNormal","configNormal","getOffsetDirection","getOrCreateModelNormal","getOrCreateModelVertex","vertexOffset","getVariable","getOrCreateViewVertex","_variables","FragEyeVector","isEmpty","_varyings","ShaderGeneratorCompilerOffsetNormal","CompilerOffsetTangent","configTangent","getOrCreateModelTangent","ShaderGeneratorCompilerOffsetTangent","_unifScale","_normalStateSet","ts","_tangentStateSet","setTangentVisibility","setNormalVisibility","_isVisitedNormalDebug","_createDebugGeom","nbCB","_createDoubleOffsetArray","elts","_createDoubledBufferArray","getInitialBufferArray","ctor","elementsDouble","iSize","iSize2","_addMorphTargets","originMorph","morph","vecName","originTargets","origTarget","origAttrs","newTarget","newAttrs","dispVec","rig","_stateSetAnimation","nbParents","isBufferGZIP","_clearColor","_clearMask","_preRenderList","_postRenderList","createRenderStageOrder","renderStage","pooledRenderStageOrder","_initInternal","getPreRenderStageList","getPostRenderStageList","addPreRenderStage","renderStageOrder","addPostRenderStage","drawPreRenderStages","previousRenderLeaf","drawPostRenderStages","applyCamera","attachments","keyAttachment","attach","OSGObject","_userdata","Constructor","instanceID","LOG2E","log10","LOG10E","endsWith","_slicePolyfill","setTest","hasConstructorParameterSupport","nativeSetConstructor","CustomEvent","bubbles","cancelable","createEvent","initCustomEvent","_range","_rangeMode","DISTANCE_FROM_EYE_POINT","_userDefinedCenter","_centerMode","USE_BOUNDING_SPHERE_CENTER","PIXEL_SIZE_ON_SCREEN","USER_DEFINED_CENTER","UNION_OF_BOUNDING_SPHERE_AND_USER_DEFINED","getRadius","getCenter","centerMode","projectBoundingSphere","camMatrix","fle","radius2","l2","lenght","zeroVector","viewModel","TRAVERSE_ACTIVE_CHILDREN","requiredRange","projmatrix","numChildren","ImageBitmap","ImageObject","_url","_mipmap","_isGreyscale","getURL","useOrCreateImage","currentSrc","nbImg","isCanvas","HTMLCanvasElement","isBitmap","isVideo","HTMLVideoElement","isImage","naturalWidth","videoWidth","naturalHeight","videoHeight","isGreyscale","nbSamples","sampleX","sampleY","xFactor","yFactor","complete","imageTry","CompilerShadowCast","_attributes","_shadowCastAttribute","_isBillboard","_skinningAttribute","_morphAttribute","_pointSizeAttribute","registerTextureAttributes","createShadowCastDepth","shadowDepthRange","fragEye","nodeMaskOverride","visitorType","NODE_VISITOR","_databaseRequestHandler","_traversalFunctions","_pushOntoNodePath","_popFromNodePath","UPDATE_VISITOR","traverseParents","traverseChildren","pushOntoNodePathParents","unshift","pushOntoNodePathChildren","popFromNodePathParents","popFromNodePathChildren","getNodeMaskOverride","getNodePath","dbpager","getDatabaseRequestHandler","_generators","getShaderGenerator","shaderGenerator","ShaderProcessor","createInstance","shaderLib","shadowShaderLib","_shadersText","_shadersList","_globalDefaultprecision","_debugLines","_includeR","_includeCondR","_defineR","_precisionR","instrumentShaderlines","content","sourceID","preShader","preprocess","inputsDefines","strMatch","includeOpt","includeName","found","defineString","_getSortedUnique","filterDuplicate","_convertExtensionsToWebGL2","cbRenamer","cbDefiner","definer","renamer","strShader","_convertToWebGL2","replaceMRT","number","varName","isFragment","_hasVersion","strCore","convertToWebGL2","WebglCaps","strVersion","strExtensions","strDefines","strPrecision","lib","nodeFactory","_nodes","debugShaderNode","_clippingMask","_planeList","_vertexList","_maskStack","_resultMask","pl","setToUnitFrustum","withNear","withFar","setToBoundingBox","setAndTransformProvidingInverse","_referenceVertexList","polytopBackIndex","numActivePlanes","voidset","empty","setReferenceVertexList","getReferenceVertexList","plength","pMasklength","getResultMask","getMaskStack","polytopeBack","containsVertices","outside","containsAllOfVertices","intersectsOrContainsVertices","containsAllOfBoundingSphere","containsAllOfBoundingBox","centerx","centery","centerz","sizex","sizey","sizez","TexCoord0","scopes","newQuad","cornerx","cornery","cornerz","wx","wy","wz","hx","hy","hz","uvs","colors","createTexturedSphere","widthSegments","phiStart","phiLength","thetaStart","thetaLength","segmentsX","segmentsY","useDrawArrays","nbPrim","fullVerticesList","fullNormalsList","fullUVList","vtxCount","triCount","v4","n1","n2","n3","n4","uv4","getCoordAndUvSphere","norm","idv","idu","iStart","tristart","res1","res2","uy","uz","col","createTexturedSphereGeometry","makeFailHTML","GET_A_WEBGL_BROWSER","OTHER_PROBLEM","doReportCreationError","opt_attribs","opt_onError","handleCreationError","container","innerHTML","create3DContext","checkAndCreate3DContext","webgl2","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","cancelRequestAnimFrame","webkitCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","oCancelRequestAnimationFrame","msCancelRequestAnimationFrame","getTime","FRAME_COUNT","setContext","getQueryObjectEXT","_hasTimeElapsed","TIME_ELAPSED_EXT","QUERY_COUNTER_BITS_EXT","_hasTimeStamp","TIMESTAMP_EXT","_ext","_frameAverageCount","_glQueries","_queriesByID","_userQueries","_queryCount","_nbOpened","setFrameAverageCount","clearQueries","glQueries","nbQueries","query","_pollingStartQuery","_pollingEndQuery","supportTimeStamp","_callback","createUserQuery","createGLQuery","_startIndex","_endIndex","_isOpened","_siblings","createQuery","getOrCreateLastGLQuery","beginCurrentQuery","_isWaiting","endCurrentQuery","getAvailableQueryByID","siblings","nbSiblings","qsib","newQuery","queryCounterEXT","computeQueryAverageTime","glAvg","_averageTimer","computeFullAverageTime","sibAvg","nbGlQueries","disjoint","GPU_DISJOINT_EXT","pollQuery","userQueries","nbUserQueries","timeElapsed","lastQuery","available","QUERY_RESULT_AVAILABLE","startTime","QUERY_RESULT","endTime","_resultCount","_initialBufferArray","_bufferArray","setBufferArray","setInitialBufferArray","getBufferArray","makeFunc","methodName","DEFAULT_CULLING","setCullingMask","getCullingMask","setFrustum","getCurrentResultMask","resetCullingMask","isBoundingBoxCulled","VIEW_FRUSTUM_CULLING","isBoundingSphereCulled","isVerticesCulled","NO_CULLING","VIEW_FRUSTUM_LEFT_CULLING","VIEW_FRUSTUM_RIGHT_CULLING","VIEW_FRUSTUM_TOP_CULLING","VIEW_FRUSTUM_BOTTOM_CULLING","NEAR_PLANE_CULLING","FAR_PLANE_CULLING","VIEW_FRUSTUM_SIDES_CULLING","ENABLE_ALL_CULLING","_constantColor","getConstantColor","_ambient","_diffuse","_specular","_emission","_shininess","getParameterName","emission","shininess","getEmission","getShininess","setTransparency","plugins","plugin","_matrix","_matrixDirty","_cachedMatrix","_billboardAttribute","setScaleFromVec3","setScaleFromvec3","scaleVec","setMinimumScale","minimumScale","getMinimumScale","maximumScale","getMaximumScale","autoScaleToScreen","getAutoScaleToScreen","setAutoScaleTransitionWidthRatio","autoScaleTransitionWidthRatio","getAutoScaleTransitionWidthRatio","computeMatrix","rotInverse","scaleInverse","computeBound","scale00","scale10","W","M","P00","P20_00","P10","P20_10","P23","P33","pixelSizeVector","scaleRatio","readImage","_input","Version","nodeOld","parseSceneGraphDeprecated","newnode","getFieldBackwardCompatible","field","setMaterial","setBlendFunc","tl","blendfunc","newblendfunc","newmaterial","_primitives","Primitives","lp","newstateset","childLength","CW","applyFrontFace","_primitiveIndex","_backface","intersectionVisitor","intersector","getPrimitiveMask","getIntersectionLimit","setLimitOneIntersection","limitOneIntersection","getModelMatrix","TextureProfile","_size","computeSize","textureProfile","numBitsPerTexel","getSize","TextureObject","textureSet","_textureSet","_profile","getTextureSet","TextureObjectSet","profile","_usedTextureObjects","_orphanedTextureObjects","getProfile","getUsedTextureObjects","getOrphanedTextureObjects","takeOrGenerate","textureObject","takeFromOrphans","textureID","orphan","flushDeletedTextureObjects","nbTextures","flushAllDeletedTextureObjects","TextureManager","_textureSetMap","generateTextureObject","totalUsed","totalUnused","keyTexture","nbUsed","nbUnused","MB","reportStats","total","notice","availableTimeArg","releaseTextureObject","_applyTexImage2DCallbacks","checkAndFixEnum","NONE","DEPTH_COMPONENT","DEPTH_STENCIL","DEPTH24_STENCIL8","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_ATC_WEBGL","COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL","COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","NEAREST_MIPMAP_NEAREST","LINEAR_MIPMAP_NEAREST","TEXTURE_MAX_ANISOTROPY_EXT","MIRRORED_REPEAT","TEXTURE_BINDING_CUBE_MAP","MAX_CUBE_MAP_TEXTURE_SIZE","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSIGNED_INT_10F_11F_11F_REV","UNSIGNED_INT_24_8","RED_INTEGER","RGB_INTEGER","RGBA_INTEGER","RG_INTEGER","RED","R8","R8UI","RG8","RG8UI","RGB8","RGB565","RGB9_E5","RGB8UI","RGBA8","RGB5_A1","RGBA4","RGBA8UI","SRGB8_ALPHA8","SRGB8","R16F","RG16F","RGB16F","RGBA16F","R11F_G11F_B10F","R32F","RG32F","RGB32F","RGBA32F","createMapGl2ToGl1","createMapGl1ToGl2","halfFloat","ushort","uin24","UNSIGNED_INT","internalFormatGl2ToGl1","internalFormatGl1ToGl2","_sTextureManager","getEnumFromString","_image","_magFilter","_minFilter","_maxAnisotropy","_wrapS","_wrapT","_isCompressed","_colorSpaceConversion","setColorSpaceConversion","getTextureTarget","getTextureObject","maxSize","addApplyTexImage2DCallback","removeApplyTexImage2DCallback","getWrapT","getWrapS","dirtyTextureParameters","dirtyMipmap","dirtyTextureObject","getMagFilter","multiplier","getMaxAnisotropy","_imageFormat","setUnrefImageDataAfterApply","checkIsCompressed","fo","formatSource","getInternalFormat","powerOfTwo","TEXTURE_WRAP_S","TEXTURE_WRAP_T","_getInternalFormatGL","mips","nbLevel","imi","numCallback","applyImage","_getTypeGL","imgWidth","imgHeight","createFromImage","createFromCanvas","ShaderGeneratorShadowCast","ShadowCompiler","updateCallbackList","numStateSetUpdateCallback","ncs","numUpdateCallback","createCullingSet","_modelViewMatrixStack","_viewportStack","_cullingSetStack","_frustumVolume","_bbCornerFar","_bbCornerNear","_pooledCullingSet","_cameraIndexStack","_cameraModelViewIndexStack","_cameraMatrixInverse","_cameraMatrixInverseRoot","getProjectionMatrixStack","getCameraInverseMatrix","mapCameraInverse","cameraInverse","indexInModelViewMatrixStack","invMatrix","world","modelViewMatrixStackArray","getLookVectorLocal","outLookVector","lookVectorLocal","pushCullingSet","popCullingSet","isCulled","bsWorld","maxNodePathLength","pushModelViewMatrix","lookVector","matInverse","pushProjectionMatrix","FindPagedLODsVisitor","_activePagedLODList","_frameNumber","setFrameNumberOfLastTraversal","pagedLODList","ExpiredPagedLODVisitor","_childrenList","_markRequestsExpired","removeExpiredChildrenAndFindPagedLODs","expiryTime","expiryFrame","removedChildren","sizeBefore","removeExpiredChildren","request","numRanges","_perRangeDataList","getDatabaseRequest","_groupExpired","_loadedModel","sortByTimeStamp","r1","_timeStamp","sortByPriority","_pendingRequests","_pendingNodes","_loading","_progressCallback","_lastCB","_childrenToRemoveList","_downloadingRequestsNumber","_maxRequestsPerFrame","_acceptNewRequests","_expiredPagedLODVisitor","_findPagedLODsVisitor","_targetMaximumNumberOfPagedLOD","_elapsedTime","_beginTime","_availableTime","DatabaseRequest","_group","_function","setTargetMaximumNumberOfPageLOD","getTargetMaximumNumberOfPageLOD","setAcceptNewDatabaseRequests","acceptNewRequests","getAcceptNewDatabaseRequests","executeProgressCallback","removeExpiredSubgraphs","takeRequests","addLoadedDataToSceneGraph","setMaxRequestsPerFrame","numRequests","getMaxRequestsPerFrame","getRequestListSize","setProgressCallback","timeStamp","setTimeStamp","registerPagedLODs","isLoading","subgraph","requestNodeFile","timestamp","dbrequest","processRequest","loadNodeFromFunction","loadNodeFromURL","_releaseExpiredSubgraphs","numToPrune","expiredPagedLODVisitor","getFrameNumberOfLastTraversal","_spotCutoff","_spotBlend","_attenuation","viewPosition","viewDirection","modelViewMatrix","modelViewNormalMatrix","attenuation","spotCutOff","spotBlend","getSpotBlend","setGround","getGround","getConstantAttenuation","getLinearAttenuation","getQuadraticAttenuation","setLightAsDirection","setLightAsSpot","setLightAsHemi","setLightAsPoint","isSpotLight","isHemiLight","applyPositionedUniform","modelViewNormal","spotsize","replaceCallback","shaderExtension","regExt","globalReg","decalrs","fragData","datagl","convert2WebGL2","cbFilterDuplicate","isStringInteger","getFinalDefinedValue","testIf","tok","eval","processBranch","trim","fixIndent","cleanDeclarations","handleVaryings","handleUniforms","handleAttributes","handlePrecision","addExtensions","addVersion","hasVersion","cbUnroll","unrollReplace","glslPreprocessShader","glslesPreprocessor","debugExperimental","doStats","pruneComments","logCounts","minify","profileTimeEach","profileTimeGlobal","pruneUnused","pruneDefines","replaceDefine","optimize","tabs","whitespace","extractArguments","replaceRange","resolveDefineFunction","resolveDefines","getDefaultDefines","GL_FRAGMENT_PRECISION_HIGH","fastPreprocess","unprocessedShader","shadersText","_vaoObject","_sDeletedGLVertexArrayObjectCache","deleteGLVertexArrayObject","flushDeletedGLVertexArrayObjects","flushAllDeletedGLVertexArrayObjects","createVertexArray","vao","_lightingMode","_clientWidth","_clientHeight","_sizeObserver","setLightingMode","createRenderer","NO_LIGHT","devicePixelRatio","widthPixel","heightPixel","getCanvasClientWidth","getCanvasClientHeight","overrideDevicePixelRatio","refreshGraph","previousNode","statsNode","setDatabasePager","lightingMode","availableTimeBudget","flushDeletedGLPrograms","flushDeletedGLFrameBuffers","flushDeletedGLRenderBuffers","flushAllDeletedGLPrograms","flushAllDeletedGLFrameBuffers","flushAllDeletedGLRenderBuffers","uType","setIndexArray","nbBytes","_buildOptions","perLeaf","maxLevel","setShape","_shape","MAX_MORPH_GPU","_morphTargetNames","_maxMorphGPU","_isInitialized","EFFECTIVE_EPS","getStateSetAnimation","getTargetsWeight","getMaximumPossibleMorphGPU","setMaximumPossibleMorphGPU","getMorphTargetNames","isInitialized","tmpBox","appendVertexAttributeToList","_computeEffectiveSumWeights","computeTransformedVertex","id3","baseVerts","sumWeights","morphElts","vertexLen","morphedVerts","_morphedVerts","baseWeight","_cacheDrawCall","_useVAO","_vao","_cacheVertexAttributeBufferList","enableVAO","releaseVAO","_glContext","prgID","setVertexAttribArray","_generateVertexSetup","validAttributeKeyList","validAttributeIndexList","includeFirstIndexBuffer","vertexAttributeSetup","_generatePrimitives","validPrimitives","optimizeVAO","primitiveSetup","generateDrawCommand","validAttributeList","attributesCacheMap","_attributesCache","geometryVertexAttributes","autogeneratedFunction","useVAO","listVABuff","attributeBuffer","optimizeIndexBufferVAO","clearVertexAttribCache","setVertexArrayObject","vertexSetupCommand","Function","vaoSetup","drawCommand","_getValidPrimitives","_warnInvalidPrimitives","cachedDraw","_warnNoPrimitives","computeCentroid","_centroidComputed","_centroid","sumArea","tmp1Vec3","tmp2Vec3","vertexArray","postfix","keyPostFix","urlOptions","OptionsDefault","shaderStats","keyOption","getOptionsURL","vars","hashes","setNotifyLevel","NOTICE","WARN","ERROR","logContent","divLogger","codeElement","firstChild","logFunc","overflow","zIndex","maxWidth","pointerEvents","writeMask","_func","_near","_far","_writeMask","GREATER","NOTEQUAL","GEQUAL","setWriteMask","applyDepth","_projectionStack","_modelStack","_viewStack","_windowStack","getIntersector","pushModelMatrix","popModelMatrix","pushViewMatrix","popViewMatrix","pushWindowMatrix","pushWindowMatrixUsingViewport","getWindowMatrix","popWindowMatrix","getTransformation","applyNode","logSub","intLevel","currentNotifyLevel","strLevel","trace","logSubFold","title","unFlattenMatrix","rowMajor","logMatrix","table","logMatrixFold","FATAL","LOG","levelEntries","noticeFold","logFold","noticeMatrix","noticeMatrixFold","label","logLevel","getNotifyLevel","setConsole","replacement","sprintf","shaderUtils","Variable","_prefix","declare","Constant","globalDeclaration","Attribute","Varying","Sampler","Output","wholeName","_unique","isUnique","glFragColor","glPosition","glPointSize","Define","_defineName","_defineValue","BaseOperator","Add","_getFirstVariableCast","variable","inType","outType","outputType","addType","firstVariable","Mult","SetFromNode","MatrixMultDirection","_overwriteW","_forceComplement","_inverseOp","complement","setInverse","setForceComplement","setOverwriteW","vecIn","vecOut","inputType","matrixType","strOut","strCasted","strvec3","MatrixMultPosition","Blend","ADD","MIX","MULTIPLY","InlineCode","replaceVariables","reg","Factory","extractFunctions","shadowLib","registerNodes","operations","registerNode","functions","lightCommon","skinning","morphing","colorEncode","billboard","other","newbb","expandByvec3","dv","dr","sh","newRadius","intersects","sphCenter","sphRadius","_fbo","_rbo","_buffers","_hasMRT","_sDeletedGLFrameBufferCache","deleteGLFrameBuffer","fb","_sDeletedGLRenderBufferCache","deleteGLRenderBuffer","renderBufferObject","getAttachment","attachmentType","_reportFrameBufferError","getRenderBufferObject","createFrameBufferObject","createRenderBuffer","renderBuffer","createRenderbuffer","framebufferRenderBuffer","rawgl","trackedObject","defaultName","applyTextureAttribute","DRAW_FRAMEBUFFER","bindFrameBufferObject","checkStatus","_checkAllowedSize","nbAttachments","bufs","hasRenderBuffer","COLOR_ATTACHMENT15","_stackedTransforms","transforms","stacked","nbStacked","applyScissor","sourceRGB","destinationRGB","sourceAlpha","destinationAlpha","_sourceFactor","_destinationFactor","_sourceFactorAlpha","_destinationFactorAlpha","_separate","setSource","setDestination","SRC_COLOR","ONE_MINUS_SRC_COLOR","DST_ALPHA","ONE_MINUS_DST_ALPHA","DST_COLOR","ONE_MINUS_DST_COLOR","SRC_ALPHA_SATURATE","BLEND_DST_RGB","BLEND_SRC_RGB","BLEND_DST_ALPHA","BLEND_SRC_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","BLEND_COLOR","getDestination","getSeparate","checkSeparate","getSourceRGB","getSourceAlpha","getDestinationRGB","getDestinationAlpha","applyBlendFunc","createTarget","applyCullFace","_databasePager","_sceneData","hasOwnPropertyFunc","isFunction","isPlainObject","nodeType","deep","F","properties","objectType","createDefaultType","libName","libraryClassName","classObject","generateId","typeMap","objectNodeType","setNodeTypeID","getNodeTypeID","cullVisitorHelper","parentNodeTypeID","nodeTypeId","applyFunctionArray","typeMemberIndex","textureTypeMemberIndex","stateAttributeTypeMember","textureStateAttributeTypeMember","attributeTypeIndex","stateAttributeType","getStateAttributeTypeNameToTypeId","attributeId","getMaxStateAttributeTypeID","attributeTypeName","typeId","getOrCreateTextureStateAttributeTypeMemberIndexFromName","registeredTimers","logTime","logTimeEnd","profileEnd","seen","compilerClass","validAttributeTypeMember","validTextureAttributeTypeMember","getMatrixStack","forceSyncCompilation","syncCompile","glSync","sp","uniformRegexp","attributesRegexp","attributeMap","vShader","fShader","_program","_nullProgram","_vertex","_fragment","_uniformsCache","_activeUniforms","_foreignUniforms","_trackAttributes","_asyncCompilation","_compileClean","setVertexShader","setFragmentShader","_sDeletedGLProgramCache","deleteGLProgram","numPrograms","vs","getVertexShader","getFragmentShader","getProgram","activeUniforms","setForeignUniforms","foreignUniforms","getForeignUniforms","setUniformsCache","uniformsCache","setAttributesCache","attributesCache","getAttributesCache","setTrackAttributes","trackAttributes","getTrackAttributes","_cacheUniformId","_rebuildProgramFromSpector","vertexShaderText","fragmentShaderText","onCompiled","onError","_spectorOnCompiled","_spectorOnError","_onErrorToSpector","errLink","_onCompilationToSpector","_bindProgramToSpector","spector","__SPECTOR_rebuildProgram","_logDebugShaders","debugShader","getTranslatedShaderSource","_activateFailSafe","createProgram","_glAttachAndLink","programGL","vertexShader","attachShader","linkProgram","_glShaderCompile","_glShaderCompilationResult","success","fragmentText","vertexText","_attributeMap","_uniformMap","getShaderName","_shaderName","getCompilationResultAndLink","link","bindAttribLocation","_logShaderStats","compileResult","LINK_STATUS","validateProgram","validationLogProgram","getProgramInfoLog","cacheAttributeList","cacheUniformList","placeHolder","frameNum","applyProgram","uniformList","getUniformLocation","registerErrorCallback","CompilerVertex","_createVertexShader","declareVertexMain","vname","createShaderFromGraphs","getDebugIdentifier","declarePointSize","declareVertexPosition","getOrCreateConstantOne","varyings","keyVarying","vModelVertex","vModelNormal","vModelTangent","vViewVertex","vViewNormal","getOrCreateViewNormal","vViewTangent","getOrCreateViewTangent","vVertexColor","venabled","acolor","vcolor","varying","declareVertexTransformBillboard","declareScreenVertex","getOrCreateProjectionMatrix","ModelViewMatrix","ProjectionMatrix","getOrCreateBoneMatrix","boneMatrix","inputWeights","inputBones","bonesIndex","morphTangentApproximation","inputVertex","outputVertex","normalizedMorph","getOrCreateLocalNormal","getOrCreateMorphNormal","tangent","targetWeights","nWeights","wts","morphTransformVec3","numTargets","skinTransformVertex","skinTransformNormal","getOrCreateMorphVertex","inputNormal","getOrCreateMorphTangent","inputTangent","hasMorphTangent","getOrCreateSkinVertex","getOrCreateSkinNormal","getOrCreateSkinTangent","getOrCreateLocalVertex","getOrCreateLocalTangent","normalizeAndSetAlpha","tang3","tang4","tangNormalized","wrapperVertexOnly","_fragmentShaderMode","logError","fnName","CompilerFragment","_createFragmentShader","cleanAfterFragment","applyPointSizeCircle","_activeNodeMap","_texturesByName","createDefaultFragmentShaderGraph","fofd","getOrCreateConstant","fragCol","finalColor","getLighting","getOrCreateMaterialDiffuseColor","getOrCreateMaterialEmission","textureColor","getDiffuseColorFromTextures","texColor","getAlpha","getPremultAlpha","fragColor","textureTexel","getFirstValidTexture","texelAlpha","getOrCreateFrontViewTangent","frontViewTangent","getOrCreateFrontViewNormal","frontViewNormal","getOrCreateNormalizedViewEyeDirection","eyeVector","getOrCreateNormalizedFrontViewNormal","nFrontViewNormal","getOrCreateFrontModelNormal","frontModelNormal","getOrCreateNormalizedFrontModelNormal","nFrontModelNormal","premultAlpha","getColorsRGB","finalSrgbColor","multiplyDiffuseWithVertexColor","vertexColorUniform","texturesInput","getTextureByName","texAccum","_getShadowReceiveAttributeFromLightNum","_getShadowTextureFromLightNum","getInputsFromShadow","shadowReceive","lighted","shadowUniforms","tUnit","textureUniforms","normalWorld","vertexWorld","getOrCreateSampler","shadowSize","shadowViewRight","shadowViewUp","shadowViewLook","shadowBias","getOrCreateDistanceShadow","_computeShadowOutDistance","getOrCreateJitterShadow","hasLightShadow","createShadowingLight","shadowedOutput","outDistance","doJitter","addDefines","getOrCreateMaterialNormal","matDiffuse","getOrCreateMaterialSpecularColor","getOrCreateMaterialSpecularHardness","getOrCreateMaterialAmbient","getLightingSeparate","finalDiffuse","finalSpecular","diffuseSum","specularSum","getLightSeparate","diffuseOut","specularOut","precompute","getPrecomputeLight","getLightWithPrecompute","shadowFactor","getAmbientLight","eyeLightDir","dotNL","nodeName","lightUniforms","lightType","viewVertex","lightAttenuation","lightViewPosition","lightViewDirection","lightSpotCutOff","lightSpotBlend","materialDiffuse","materialSpecular","materialShininess","lightDiffuse","lightSpecular","lightGround","getOutputsFromLight","lightAmbient","materialAmbient","silenceWarning","createTextureRGBA","textureSampler","texCoord","texel","wrapperFragmentOnly","_textureAttributes","_compiledNodeMap","_traversedNodeMap","_vertexShader","_fragmentShader","_invariantPosition","_customVertexShader","_customFragmentShader","logWarn","getOrCreateConstantZero","texturesNum","tu","tuTarget","tunit","tType","registerTexture","registerTextureShadow","tName","texObj","samplerName","variables","keyVariable","varNode","evaluateExtensions","evaluateDefines","shaderStack","evaluateGlobalVariableDeclaration","evaluateGlobalFunctionDeclaration","evaluate","shaderStr","compiledNodes","activeNodes","messages","nodeInputs","nodeInput","argOutputs","keyOutput","_logLookForVariable","factory","cacheID","nameID","varname","deepness","exist","markNodeAsVisited","checkOrMarkNodeAsTraversed","objectToArray","keyInput","_getAndInitFunctor","_functorEvaluateAndGatherField","evaluateAndGatherField","jl","_functorEvaluateGlobalFunctionDeclaration","globalFunctionDeclaration","decl","_functorEvaluateGlobalVariableDeclaration","declarations","sortDeclarations","iType","vatt","_functorEvaluate","modelVertex","modelNormal","modelTangent","viewNormal","viewTangent","setAllChildrenOff","setAllChildrenOn","ignoreCameras","userMatrix","nodePathIndex","ignoreCamera","nodePathLength","createPositionAttribute","sortMode","_sorted","_sortMode","defaultSortMode","_drawCallback","_pooledPositionedAttribute","_stateGraphList","SORT_BY_STATE","SORT_BACK_TO_FRONT","SORT_FRONT_TO_BACK","createRenderBin","pooledRenderBin","BinPrototypes","DepthSortedBin","sortBackToFrontFunction","_depth","sortFrontToBackFunction","sortBinNumberFunction","_createRenderBin","renderBinConstructor","addPositionAttribute","getStateGraphList","copyLeavesFromStateGraphListToRenderLeafList","detectedNaN","stateGraphList","stateGraphListLength","leafsArray","leafsArrayLength","getSortMode","sortBackToFront","sortFrontToBack","sortImplementation","SortMode","binsKeys","binsMap","binsKeysArray","binsKeysArrayLength","keyBin","setParent","getParent","findOrInsert","bins","getStage","positionedAttributes","stateAttribute","setGlobalDefaultAttribute","haveAppliedAttribute","binsKeysLength","current","stateList","stateListLength","dl","leafArray","leafArrayLength","_children","createStateGraph","statsNbMoveStateGraph","getLeafs","stateSetID","childrenMap","moveStateGraph","stackArray","sgCurrentArg","sgNewArg","sgNew","sgCurrent","applyUniformCache","modelview","applyModelViewMatrix","applyProjectionMatrix","matrixModelViewChanged","modelMatrix","_modelMatrix","modelUniform","viewUniform","CacheUniformApply","cacheIndex","_modelView","programInstanceID","getCacheUniformsApplyRenderLeaf","idLastDraw","lastStateSetStackSize","prevRenderGraph","prevRenderGraphParent","curRenderGraph","curRenderGraphParent","curRenderGraphStateSet","_stateSetStackChanged","_setStateSetsDrawID","LineSegmentIntersection","_threshold","_d","_invLength","_end","_dInvX","_dInvY","_dInvZ","zmin","zmax","invX","invY","invZ","closest0","closest1","sN","tN","D","sD","tD","sc","tc","e2","e1","tvec","pvec","qvec","r0","interX","interY","interZ","determinant","_intersections","_intersectionLimit","reachedLimit","primitiveMask","createStateBlendFunc","separate","sourceFactor","destinationFactor","sourceFactorAlpha","destinationFactorAlpha","createStateDepth","createStateFrontFace","createStateCullFace","createStateScissor","createStateColorMask","createStateViewport","createStateDepthMask","createStateClearDepth","createStateClearColor","StateCache","_stateClearColor","_stateClearDepth","_stateDepthMask","_stateViewport","_stateColorMask","_stateScissor","_stateDepth","_stateFrontFace","_stateCullFace","_stateBlendFunc","applyClearColor","applyClearDepth","applyDepthMask","applyViewportAttribute","applyColorMaskAttribute","applyScissorAttribute","applyFrontFaceAttribute","applyCullFaceAttribute","applyDepthAttribute","applyBlendFuncAttribute","applyClearStates","applyDrawStates","checkUniformCache","uniformArray","cacheArray","_excludeUniforms","uProjectionMatrix","uModelMatrix","uViewMatrix","uModelViewMatrix","uModelNormalMatrix","uModelViewNormalMatrix","uArrayColorEnabled","_shaderGeneratorProxy","break","_currentVAO","_currentIndexVBO","_shaderGeneratorNames","_modelViewMatrix","_modelNormalMatrix","_modelViewNormalMatrix","arrayColorEnable","_globalDefault","ArrayColorEnabled","_previousColorAttribPair","_vertexAttribMap","_disable","_programCommonUniformsCache","_lastAppliedModelViewMatrix","_lastAppliedProjectionMatrix","_programType","_programAttribute","_programUniformCache","_stateCache","getExcludeUniforms","_extVAO","pushCheckOverride","maskValue","_evaluateOverrideObjectOnStack","_back","pushAttributeMap","activeTextureUnits","activeTextureAttribute","textureUnitAttributeArray","getOrCreateTextureAttributeArray","pushUniformsList","generatorPair","tmpStack","tmpStackArray","matrixModel","sendNormal","mu","m2","getCurrentShaderGeneratorStateSet","programStack","stateSetProgramPair","generator","stateSetGeneratorPair","generatorStack","stateSetGenerator","_applyAttributeMapStateSet","stateSetAttributeArray","stateSetAttributePair","hasStateAttributeStack","hasStateAttributeStackChanged","_changed","stateSetAttribute","_applyAttributeStack","_createAttributeStack","_applyTextureAttributeMapListStateSet","stateSetTextureAttributeArrayList","_textureAttributeArray","stateSetTextureAttributeLength","stateTextureAttributeLength","maxTexture","stateSetTextureAttributeArray","_applyTextureAttribute","previousProgram","_currentShaderGenerator","generatedProgram","_applyGeneratedProgramUniforms","_applyCustomProgramUniforms","popAllStateSets","popAttributeMap","popUniformsList","globalDefault","applyAttributeMap","applyTextureAttributeMapList","stateSetUniformMap","uniformPair","textureAttributeArray","getGlobalDefaultAttribute","setGlobalDefaultTextureAttribute","getGlobalDefaultTextureAttribute","validAttributeArray","stateSetAttributeArrayLength","_attributeArrayLength","activeAttribute","lazyDisablingOfVertexAttributes","enableVertexColor","previousColorEnabled","disableVertexColor","applyDisablingOfVertexAttributes","vertexAttribMap","attrib","binded","currentArray","enableVertexAttribArray","_getActiveUniformsFromProgramAttributes","activeUniformsList","_attributeArrayStack","attributeKeys","keyUniform","_getActiveUniformsFromProgramTextureAttributes","textureAttributeKeysList","textureAttributeKeys","nbUnit","unitTextureAttributeList","_cacheUniformsForCustomProgram","uniformsFinal","loc","trackUniforms","programTrackUniformMap","programUniformMap","uniformMapStack","uniformStack","hasStateSetUniformPair","stateSetUniformPair","stateSetUniform","_checkErrorUniform","_computeForeignUniforms","activeUniformMap","_removeUniformsNotRequiredByProgram","_cacheUniformsForGeneratedProgram","shaderUniforms","stateSetUniforms","_copyUniformEntry","cacheData","_initUniformCache","foreignUniformKeys","cacheForeignUniforms","cacheActiveUniforms","uniStack","foreign","_checkCacheAndApplyUniform","indexCache","nameUniform","isCached","uniformArrayLength","cacheUniformsActive","cacheUniformsForeign","nbForeigns","nbStateSets","nbLast","_arrayLengths","getArrayLengths","shadowCast","shadowLinearSoft","floatFromTex","tapPCF","objectPair","requestFileFromURL","XMLHttpRequest","open","responseText","send","requestFileFromReader","readAsText","readAsDataURL","urlOrFile","DisplayGraphNode","selectables","_selectables","_linkList","_uniqueNodes","_uniqueEdges","getColorFromClassName","childID","childrenNode","createMatrixGrid","matrixArray","getLabel","generateNode","description","generateStateSet","hasNode","addEdge","generateSourceGeometry","sourceGeom","sourceGeomID","generateNodeAndLink","DisplayGraphRenderer","_renderBinMap","_renderBinStack","_generatorID","_refID","renderBin","rb","preRenderList","postRenderList","createNodeAndSetID","leafFunction","stateGraphID","stateGraphFunction","leafsPool","createLink","generateRenderLeaf","generateStateGraph","generateRenderStage","generateRenderBin","init$","$","SimpleTooltips","css","el","querySelectorAll","selector","showTooltip","hideTooltip","currentTarget","display","_graphNode","_graphRender","_displayNode","_displayRenderer","_cbSelect","_focusedElement","_idToDomElement","_$svg","append","_css","setCallbackSelect","d3","dagreD3","_createGraphApply","d3url","dagreurl","getScript","diGraph","Digraph","injectStyleElement","svg","svgGroup","initialScale","oldZoom","argSVG","styleTooltip","idToDom","oldDrawNodes","drawNodes","svgNodes","tooltip","click","onNodeSelect","focusOnGraph","selectNode","lastNode","fill","lastColor","elt","childNodes","activeNode","focusOnScene","_cssInjected","FindNearestParentSkeleton","_pathToRoot","UpdateRigGeometry","ObjectBase","finder","setSkeleton","setPathToSkeleton","getSkeleton","getNeedToComputeMatrix","computeMatrixFromRootSkeleton","CollectBoneVisitor","_boneMap","getBoneMap","RigTransformHardware","computeBonePalette","boneNameID","boneName","mapVisitor","bm","nbVec4Uniforms","animAttrib","computeMatrixPalette","mTmp","transformFromSkeletonToGeometry","invTransformFromSkeletonToGeometry","matPalette","uniformIndex","invBindMatrix","getMatrixFromSkeletonToGeometry","getInvMatrixFromSkeletonToGeometry","_isAnimatedPath","_matrixFromSkeletonToGeometry","_invMatrixFromSkeletonToGeometry","_needToComputeMatrix","setNeedToComputeMatrix","needToComputeMatrix","weightsArray","sourceGeometryVertexAttributeList","primitiveSetList","vWeights","vBones","id4","palette","m0","m1","m4","m5","m6","m8","m9","m14","m15","doSkin","idBone","riggedVerts","_riggedVerts","idr","_expiryTime","_expiryFrame","_frameNumberOfLastTraversal","_databasePath","_numChildrenThatCannotBeExpired","PerRangeData","function","frameNumberOfLastTraversal","childNo","setExpiryTime","rd","setFunction","setNumChildrenThatCannotBeExpired","getNumChildrenThatCannotBeExpired","timed","framed","updateTimeStamp","needToLoadChild","lastChildTraversed","dbhandler","bbmin","bbmax","tmpMin","tmpMax","inMin","inMax","i4","mini","maxi","cm","outMax","outMin","createRenderLeaf","createCullSettings","_rootStateGraph","_currentRenderStage","_rootRenderStage","POSITIVE_INFINITY","_pooledLeaf","_pooledRenderStages","_pooledCullSettings","_identityMatrix","_renderStageType","ccb","getCurrentCamera","nearVec","farVec","dNear","dFar","rg","setCurrentRenderBin","renderBinStack","currentRenderBin","currentStateGraph","zfar","nearFarRatio","resultNearFar","desiredZnear","desiredZfar","deltaSpan","zfarPushRatio","znearPullRatio","minNearPlane","transNearPlane","transFarPlane","centerRatio","createOrReuseRenderStage","classInstance","classCtor","createRenderStage","postPushGeometry","geometryStateSetAnimation","prePopGeometry","pushLeaf","cameraApply","lastProjectionMatrix","lastViewMatrix","previousZnear","previousZfar","previousCullsettings","previousStage","rtts","matrixTransformApply","lastMatrixStack","projectionApply","nodeApply","lightSourceApply","loggedOnce","geometryApply","checkVariableType","optionalPrefix","varsList","callFunction","funcName","callString","extractPragmaArgs","extractSignature","openParen","closeParen","preSignature","splitPre","firstWord","nameFunc","pragmaArgs","returnName","NODE_NAME","DERIVATIVES","returnVariable","isDefine","postSignature","argumentList","hasOptionalArgs","orderedArgs","argi","cleanArg","splits","isOutput","glslName","optional","NodeCustom","_defines","_missingArgs","signatures","globalDeclare","exts","getExtensions","getOrCreateSignature","_validateSameVariables","glslArray","jsObj","nbGlsl","_validateSameType","jsVar","_getSignatureBestMatch","matchNames","matchOutput","matchInput","nbSignatures","sig","_signature","_typeDownCast","glslArg","jsArg","typeIn","realType","validType","returnOut","shaderNodeClassGlobal","shaderNodeClassLocal","shaderNode","_iThreshold","setEnd","sm","se","div","ResetRestPoseVisitor","resetter","setRestPose","ValidateSkeletonVisitor","foundNonBone","compareBone","_needValidate","needToValidate","validateSkeletonVisitor","_morphs","_weights","_indexMap","_gpuMorphed","funcWeights","_initNode","morphs","nbMorphs","_remapBufferArrays","indexMap","strI","strIndex","vAttrs","morphNames","attName","_mergeExtraMorphTarget","extraWeightSum","gpuMorphed","vAttr","nbVertex","_cpuMorph","morphExtraTargets","_computeExtraWeightsSum","_morphBufferArrayCPU","processed","updateWeights","sortedTargets","ti","extraEpsilon","extraMorphCPU"],"mappings":"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EACPC,QAAS,KACTC,uBAAuB,EACvBC,aAAa,EACbC,UAAU,EACVC,cAAc,EACdC,eAAgB,IAChBC,eAAgB,IAChBC,mBAAoB,IACpBC,aAAa,EACbC,cAAc,EACdC,eAAe,EACfC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,QAAS,GACTC,YAAY,EACZC,WAAW,EACXC,cAAc,EACdC,mBAAmB,EACnBC,QAAQ,EACRC,OAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,iBAAiB,EACjBC,WAAW,EACXC,YAAY,EACZC,aAAa,EACbC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,MAAM,EACNC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EACjBC,mBAAoB,OACpBC,QAAQ,EACRC,gBAAgB,EAChBC,MAAM,EACNC,aAAc,mCACdC,OAAQ,IACRC,0BAA2B,EAC3BC,UAAU,EACVC,iBAAkB,IAClBC,sBAAsB,EACtBC,YAAY,EACZC,iBAAkB,EAClBC,eAAgB,EAChBC,WAAY,EACZC,UAAU,EACVC,UAAU,EACVC,aAAc,EACdC,eAAe,EACfC,eAAe,EACfC,MAAM,EACNC,IAAI,EACJC,IAAI,EACJC,OAAQ,GACRC,IAAI,EACJC,0BAA0B,EAC1BC,wBAAyB,IACzBC,cAAe,EACfC,yBAAyB,G,YC5Jd,GACb,oBACE,gEACF,uBACE,0vEACF,+BACE,o/XACF,kCACE,mhFACF,wBACE,0vDACF,yBACE,o/FACF,oBACE,ykGACF,uBACE,q9MACF,uBACE,4rCACF,sBACE,utEACF,sBACE,4oCACF,yBACE,qhIACF,yBACE,o7DACF,wBACE,4yBACF,qBACE,4jBACF,kBACE,moEACF,uBACE,06BACF,wBACE,qwLACF,uBACE,8xDACF,iBACE,unWACF,sBACE,y7aACF,wBACE,w/BACF,0BACE,iLACF,yBACE,q4CACF,yBACE,6/BACF,0BACE,mVACF,0BACE,iPACF,YACE,mqUACF,cAAe,yDAGf,WACE,kFACF,WACE,w7iBACF,eAAgB,yDAChB,eACE,gMACF,cACE,kFACF,cACE,ovIACF,iBAAkB,+BAClB,iBACE,mlHACF,iBAAkB,mDAClB,iBACE,wGACF,2BAA4B,gCAC5B,2BACE,siGACF,4BACE,gHACF,4BACE,2kCACF,sBAAuB,gCACvB,sBACE,yiCACF,wBACE,4GACF,wBACE,ilDACF,qBACE,yDACF,qBACE,oOACF,oBACE,0SACF,oBACE,iGACF,qBACE,4SACF,qBACE,iGACF,sBACE,6JACF,sBACE,iGACF,sBAAuB,mDACvB,sBACE,iGACF,qBAAsB,gCACtB,qBACE,2tGACF,4BAA6B,gCAC7B,4BACE,m4BCnHW,GACb,mBACE,qdACF,qBACE,yqBACF,sBACE,0XACF,yBACE,ynBACF,4BACE,0oDACF,iBACE,krEACF,kBACE,q3BACF,eACE,8+HACF,kBACE,s4CACF,uBACE,s3CACF,mBACE,kzCACF,mBACE,qvMACF,gBACE,opDACF,iBACE,wqBACF,cACE,6VACF,qBACE,ovFACF,0BACE,0aACF,uBACE,8kHACF,kBACE,81EACF,oBACE,myBACF,oBACE,gvCACF,2BACE,uZACF,gBACE,07BACF,mBACE,ojDACF,oBACE,08CACF,mBACE,k7CACF,sBACE,ipQACF,oBACE,wXACF,8BACE,4vDACF,YACE,2iPACF,aACE,21BACF,eACE,0tCACF,gBACE,ydACF,kBACE,mwCACF,aACE,sqDACF,cACE,oKACF,cACE,gIACF,eACE,irDACF,yBACE,gI,0PCzEAC,EAAc,SAAdA,EAAuBn9C,GACnBA,IACA1H,KAAK8kD,eAAiBp9C,EAAQq9C,cAC9B/kD,KAAKglD,gBAAgBt9C,EAAQu9C,oBAGLllD,IAAxBC,KAAK8kD,iBACL9kD,KAAK8kD,eAAiBD,EAAYK,2BAGtCllD,KAAKmlD,gBAAkB,GACvBnlD,KAAKolD,eAAiBhlD,OAAKjB,SAC3Ba,KAAK6tC,aAAU9tC,EACfC,KAAKqlD,WAAQtlD,EACbC,KAAKslD,SAAW,GAChBtlD,KAAKulD,+BAAgC,EAGrCvlD,KAAKwlD,WAAa,IAAIplB,QAG1BykB,EAAYloD,UAAY,CACpBq1C,UAAW,SAAS7zC,GA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D,OAAQoW,aAAI9Y,KAAKU,YACZ,kBACD,mBACC,oBACD,GACC,oBACA,mBACA,kBACD,GACC,oBACA,kBACD,iBACA,EACA,EACA,EACA,EACA,GAEJipE,MAAO7wD,aAAIrY,KAAKC,WACZ,EACA,EACA,GAEJwtH,UAAW,GAEf,CACI98G,KAAM,YACNqlD,QAAQ,EACR/zD,OAAQoW,aAAI9Y,KAAKU,WACb,mBACC,kBACD,kBACA,EACA,kBACA,mBACC,iBACD,GACC,kBACD,kBACA,kBACA,EACA,EACA,EACA,EACA,GAEJipE,MAAO7wD,aAAIrY,KAAKC,WACZ,EACA,EACA,GAEJwtH,UAAW,GAEf,CACI98G,KAAM,YACNqlD,QAAQ,EACR/zD,OAAQoW,aAAI9Y,KAAKU,WACb,mBACC,mBACA,mBACD,GACC,oBACD,oBACC,kBACD,EACA,kBACA,kBACA,mBACA,EACA,EACA,EACA,EACA,GAEJipE,MAAO7wD,aAAIrY,KAAKC,WAAW,EAAG,EAAG,GACjCwtH,UAAW,IAInB,OAAQ,CACJ,CACI98G,KAAM,YACNqlD,QAAQ,EACR/zD,OAAQoW,aAAI9Y,KAAKU,WACb,kBACA,sBACC,mBACD,GACC,oBACD,kBACA,oBACA,EACA,oBACC,oBACD,kBACA,EACA,EACA,EACA,EACA,GAEJipE,MAAO7wD,aAAIrY,KAAKC,WACZ,EACA,EACA,GAEJwtH,UAAW,GAEf,CACI98G,KAAM,YACNqlD,QAAQ,EACR/zD,OAAQoW,aAAI9Y,KAAKU,YACZ,mBACD,mBACC,kBACD,GACC,mBACA,mBACA,kBACD,GACC,kBACD,mBACA,mBACA,EACA,EACA,EACA,EACA,GAEJipE,MAAO7wD,aAAIrY,KAAKC,WACZ,EACA,EACA,GAEJwtH,UAAW,GAEf,CACI98G,KAAM,YACNqlD,QAAQ,EACR/zD,OAAQoW,aAAI9Y,KAAKU,WACb,mBACC,mBACA,kBACD,GACC,mBACD,kBACC,mBACD,EACA,kBACA,kBACA,mBACA,EACA,EACA,EACA,EACA,GAEJipE,MAAO7wD,aAAIrY,KAAKC,WAAW,EAAG,EAAG,GACjCwtH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","file":"js/index.bc94f35d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"//infishwaibao.oss-cn-chengdu.aliyuncs.com/screenshow/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import utils from '../osg/utils';\r\nimport { vec3 } from '../osg/glMatrix';\r\nimport BoundingBox from '../osg/BoundingBox';\r\nimport { mat4 } from '../osg/glMatrix';\r\nimport MatrixTransform from '../osg/MatrixTransform';\r\nimport UpdateBone from './UpdateBone';\r\n\r\n/**\r\n * Bone\r\n * @class Bone\r\n */\r\nvar Bone = function(name) {\r\n if (name !== undefined) this.setName(name);\r\n\r\n MatrixTransform.call(this);\r\n this._invBindInSkeletonSpace = mat4.create();\r\n this._boneInSkeletonSpace = mat4.create();\r\n this._boneBoundingBox = new BoundingBox();\r\n};\r\n\r\nutils.createPrototypeNode(\r\n Bone,\r\n utils.objectInherit(MatrixTransform.prototype, {\r\n // consistent color depending of id\r\n // _rand: function ( id ) {\r\n // var x = Math.sin( id * 45.233 ) * 43758.5453;\r\n // return x - Math.floor( x );\r\n // },\r\n // _generateBoneColor: function ( id ) {\r\n // return vec3.fromValues( this._rand( id + 2.16 ), this._rand( id * 57.27 ), this._rand( id * 0.874 ) );\r\n // },\r\n\r\n getOrCreateDebugColor: function() {\r\n // for bone display (debugging, etc)\r\n if (this._boneColor) return this._boneColor;\r\n // this._boneColor = this._generateBoneColor( this.getInstanceID() );\r\n this._boneColor = vec3.fromValues(Math.random(), Math.random(), Math.random());\r\n return this._boneColor;\r\n },\r\n\r\n getBoneBoundingBox: function() {\r\n return this._boneBoundingBox;\r\n },\r\n\r\n setBoneBoundingBox: function(bb) {\r\n this._boneBoundingBox = bb;\r\n },\r\n\r\n getMatrixInSkeletonSpace: function() {\r\n return this._boneInSkeletonSpace;\r\n },\r\n\r\n getInvBindMatrixInSkeletonSpace: function() {\r\n return this._invBindInSkeletonSpace;\r\n },\r\n\r\n setMatrixInSkeletonSpace: function(m) {\r\n mat4.copy(this._boneInSkeletonSpace, m);\r\n },\r\n\r\n setInvBindMatrixInSkeletonSpace: function(m) {\r\n mat4.copy(this._invBindInSkeletonSpace, m);\r\n },\r\n\r\n getBoneParent: function() {\r\n var parents = this.getParents();\r\n for (var i = 0, l = parents.length; i < l; i++) {\r\n var typeID = parents[i].getTypeID();\r\n if (typeID === Bone.getTypeID()) {\r\n return parents[i];\r\n }\r\n }\r\n return undefined;\r\n },\r\n\r\n setDefaultUpdateCallback: function(name) {\r\n this.addUpdateCallback(new UpdateBone(name !== undefined ? name : this.getName()));\r\n }\r\n }),\r\n 'osgAnimation',\r\n 'Bone'\r\n);\r\n\r\nexport default Bone;\r\n","var PooledArray = function() {\r\n this._pool = [];\r\n this._length = 0;\r\n};\r\n\r\nPooledArray.prototype = {\r\n clean: function() {\r\n this._length = 0;\r\n this._pool.length = 0;\r\n },\r\n reset: function() {\r\n this._length = 0;\r\n },\r\n getLength: function() {\r\n return this._length;\r\n },\r\n getArray: function() {\r\n return this._pool;\r\n },\r\n back: function() {\r\n return this._pool[this._length - 1];\r\n },\r\n pop: function() {\r\n this._length--;\r\n return this._pool[this._length];\r\n },\r\n push: function(value) {\r\n if (this._length === this._pool.length) {\r\n this._pool.push(value);\r\n } else {\r\n this._pool[this._length] = value;\r\n }\r\n this._length++;\r\n },\r\n forEach: function(func) {\r\n for (var i = 0; i < this._length; i++) func(this._pool[i]);\r\n }\r\n};\r\n\r\nexport default PooledArray;\r\n","import utils from './utils';\r\nimport { mat4 } from './glMatrix';\r\nimport Transform from './Transform';\r\nimport TransformEnums from './transformEnums';\r\n\r\n/**\r\n * MatrixTransform is a Transform Node that can be customized with user matrix\r\n * @class MatrixTransform\r\n */\r\nvar MatrixTransform = function() {\r\n Transform.call(this);\r\n this.matrix = mat4.create();\r\n};\r\n\r\n/** @lends MatrixTransform.prototype */\r\nutils.createPrototypeNode(\r\n MatrixTransform,\r\n utils.objectInherit(Transform.prototype, {\r\n getMatrix: function() {\r\n return this.matrix;\r\n },\r\n\r\n setMatrix: function(m) {\r\n this.matrix = m;\r\n this.dirtyBound();\r\n },\r\n\r\n // local to \"local world\" (not Global World)\r\n computeLocalToWorldMatrix: function(matrix /*, nodeVisitor */ ) {\r\n if (this.referenceFrame === TransformEnums.RELATIVE_RF) {\r\n mat4.mul(matrix, matrix, this.matrix);\r\n } else {\r\n mat4.copy(matrix, this.matrix);\r\n }\r\n return true;\r\n },\r\n\r\n computeWorldToLocalMatrix: (function() {\r\n var minverse = mat4.create();\r\n return function(matrix /*, nodeVisitor */ ) {\r\n mat4.invert(minverse, this.matrix);\r\n if (this.referenceFrame === TransformEnums.RELATIVE_RF) {\r\n mat4.mul(matrix, minverse, matrix);\r\n } else {\r\n // absolute\r\n mat4.copy(matrix, minverse);\r\n }\r\n return true;\r\n };\r\n })()\r\n }),\r\n 'osg',\r\n 'MatrixTransform'\r\n);\r\n\r\nexport default MatrixTransform;","import utils from './utils';\r\nimport Node from './Node';\r\nimport { mat4 } from './glMatrix';\r\n\r\nvar Projection = function() {\r\n Node.call(this);\r\n this.projection = mat4.create();\r\n};\r\n\r\nutils.createPrototypeNode(\r\n Projection,\r\n utils.objectInherit(Node.prototype, {\r\n getProjectionMatrix: function() {\r\n return this.projection;\r\n },\r\n setProjectionMatrix: function(m) {\r\n this.projection = m;\r\n }\r\n }),\r\n 'osg',\r\n 'Projection'\r\n);\r\n\r\nexport default Projection;","import utils from './utils';\r\nimport { vec3 } from './glMatrix';\r\nimport BoundingBox from './BoundingBox';\r\nimport primitiveIndexFunctor from './primitiveIndexFunctor';\r\nimport primitiveSet from './primitiveSet';\r\nimport notify from './notify';\r\n\r\n// **** GENERAL INFO ON KDTREE ****\r\n// A KdTree is a Spatial Partitionning Tree (http://en.wikipedia.org/wiki/Space_partitioning)\r\n// The type of tree is sort of defined by the splitting axis method:\r\n// - Per Axis split (octree/ kdtree)\r\n// - Arbritrary direction split (bsp)\r\n\r\n// The algorithm used for splitting, the name for finding best split is 'Surface Area Heuristic (SAH)'\r\n// Octree divide the space in 8 subspace (one box -> 8 sub boxes)\r\n// whereas kdtree does it by splitting population number in two equal group\r\n\r\n// Kd Tree http://en.wikipedia.org/wiki/K-d_tree\r\n// a given set of points is sorted along one Axis (e.g. X).\r\n// The sorted list is split at the median.\r\n// The result are two sets, one for each half-space (left and right).\r\n\r\n// Then, for the current node, the splitting-plane position (or the median-point) and depth is saved.\r\n// Finally, if the point-set has more than n point and the tree depth is below m\r\n// (with n,m chosen by the user, as build options), two child-nodes (L/R one for each point-set)\r\n// are created which themselfs repeat the pocedure.\r\n\r\n// The split-axis gets alternated at each depth, the split order is computed by checking the main\r\n// bounding box the length of its axis\r\n// **** GENERAL INFO ON KDTREE ****\r\n\r\n// The KdTree implemented here is flattened, ie, a node and its children all lie in the same array\r\n// The most important thing is the understanding of the variables first and second for each node\r\n// Their semantic depend if the node is a leaf or not\r\n// if it's a leaf :\r\n// first and second defines a range in the triangles array (triangles in the cell)\r\n// if it's not a leaf :\r\n// - first and second respectively represents the left and right sub children\r\n// We know that a node is a leaf if first is negative, in that case the range will be defined by\r\n// [ -first - 1, -first-1 + second ]\r\nvar KdNode = function(first, second) {\r\n this._bb = new BoundingBox();\r\n this._first = first;\r\n this._second = second;\r\n // These variables represent the local clipped ray (for intersection test)\r\n // They are mostly temporary because they are recomputed for each intersection test\r\n this._nodeRayStart = vec3.create();\r\n this._nodeRayEnd = vec3.create();\r\n};\r\n\r\nvar InfoCollector = function() {\r\n this._numVertexIndices = 0;\r\n};\r\n\r\nInfoCollector.prototype = {\r\n apply: function(node) {\r\n if (!node.getAttributes().Vertex) return;\r\n primitiveIndexFunctor(node, this);\r\n },\r\n\r\n operatorPoint: function() {\r\n this._numVertexIndices += 2;\r\n },\r\n\r\n operatorLine: function() {\r\n this._numVertexIndices += 3;\r\n },\r\n\r\n operatorTriangle: function() {\r\n this._numVertexIndices += 4;\r\n }\r\n};\r\n\r\nvar PrimitiveIndicesCollector = function(buildKdTree) {\r\n this._buildKdTree = buildKdTree;\r\n this._numIndices = 0;\r\n};\r\n\r\nPrimitiveIndicesCollector.prototype = {\r\n apply: function(node) {\r\n if (!node.getAttributes().Vertex) return;\r\n primitiveIndexFunctor(node, this);\r\n },\r\n\r\n operatorPoint: function(i0) {\r\n var vertices = this._buildKdTree._kdTree.getVertices();\r\n var iv = i0 * 3;\r\n this._buildKdTree._kdTree.addPoint(i0);\r\n this._buildKdTree._primitiveIndices[this._numIndices] = this._numIndices;\r\n var centers = this._buildKdTree._centers;\r\n var idCenter = this._numIndices * 3;\r\n centers[idCenter] = vertices[iv];\r\n centers[idCenter + 1] = vertices[iv + 1];\r\n centers[idCenter + 2] = vertices[iv + 2];\r\n this._numIndices++;\r\n },\r\n\r\n operatorLine: function(i0, i1) {\r\n if (i0 === i1) return;\r\n var vertices = this._buildKdTree._kdTree.getVertices();\r\n var iv0 = i0 * 3;\r\n var iv1 = i1 * 3;\r\n\r\n this._buildKdTree._kdTree.addLine(i0, i1);\r\n\r\n var numIndices = this._numIndices;\r\n this._buildKdTree._primitiveIndices[numIndices] = numIndices;\r\n\r\n var idCenter = numIndices * 3;\r\n\r\n var v0x = vertices[iv0];\r\n var v0y = vertices[iv0 + 1];\r\n var v0z = vertices[iv0 + 2];\r\n\r\n var v1x = vertices[iv1];\r\n var v1y = vertices[iv1 + 1];\r\n var v1z = vertices[iv1 + 2];\r\n\r\n var minx = v0x < v1x ? v0x : v1x;\r\n var miny = v0y < v1y ? v0y : v1y;\r\n var minz = v0z < v1z ? v0z : v1z;\r\n\r\n var maxx = v0x > v1x ? v0x : v1x;\r\n var maxy = v0y > v1y ? v0y : v1y;\r\n var maxz = v0z > v1z ? v0z : v1z;\r\n\r\n var centers = this._buildKdTree._centers;\r\n centers[idCenter] = (minx + maxx) * 0.5;\r\n centers[idCenter + 1] = (miny + maxy) * 0.5;\r\n centers[idCenter + 2] = (minz + maxz) * 0.5;\r\n\r\n this._numIndices++;\r\n },\r\n\r\n operatorTriangle: function(i0, i1, i2) {\r\n if (i0 === i1 || i0 === i2 || i1 === i2) return;\r\n\r\n var vertices = this._buildKdTree._kdTree.getVertices();\r\n var iv0 = i0 * 3;\r\n var iv1 = i1 * 3;\r\n var iv2 = i2 * 3;\r\n\r\n this._buildKdTree._kdTree.addTriangle(i0, i1, i2);\r\n\r\n var numIndices = this._numIndices;\r\n this._buildKdTree._primitiveIndices[numIndices] = numIndices;\r\n\r\n var idCenter = numIndices * 3;\r\n\r\n var v0x = vertices[iv0];\r\n var v0y = vertices[iv0 + 1];\r\n var v0z = vertices[iv0 + 2];\r\n\r\n var v1x = vertices[iv1];\r\n var v1y = vertices[iv1 + 1];\r\n var v1z = vertices[iv1 + 2];\r\n\r\n var v2x = vertices[iv2];\r\n var v2y = vertices[iv2 + 1];\r\n var v2z = vertices[iv2 + 2];\r\n\r\n var minx = v0x < v1x ? (v0x < v2x ? v0x : v2x) : v1x < v2x ? v1x : v2x;\r\n var miny = v0y < v1y ? (v0y < v2y ? v0y : v2y) : v1y < v2y ? v1y : v2y;\r\n var minz = v0z < v1z ? (v0z < v2z ? v0z : v2z) : v1z < v2z ? v1z : v2z;\r\n\r\n var maxx = v0x > v1x ? (v0x > v2x ? v0x : v2x) : v1x > v2x ? v1x : v2x;\r\n var maxy = v0y > v1y ? (v0y > v2y ? v0y : v2y) : v1y > v2y ? v1y : v2y;\r\n var maxz = v0z > v1z ? (v0z > v2z ? v0z : v2z) : v1z > v2z ? v1z : v2z;\r\n\r\n var centers = this._buildKdTree._centers;\r\n centers[idCenter] = (minx + maxx) * 0.5;\r\n centers[idCenter + 1] = (miny + maxy) * 0.5;\r\n centers[idCenter + 2] = (minz + maxz) * 0.5;\r\n\r\n this._numIndices++;\r\n }\r\n};\r\n\r\nvar BuildKdTree = function(kdTree) {\r\n this._kdTree = kdTree;\r\n this._bb = new BoundingBox();\r\n this._primitiveIndices = undefined; // Uint32Array\r\n this._centers = undefined; // Float32Array\r\n this._axisOrder = vec3.create();\r\n this._stackLength = 0;\r\n};\r\n\r\nBuildKdTree.prototype = {\r\n build: function(options, geom) {\r\n var targetTris = options._targetNumTrianglesPerLeaf;\r\n var vertexAttrib = geom.getVertexAttributeList().Vertex;\r\n if (!vertexAttrib) return false;\r\n var vertices = vertexAttrib.getElements();\r\n if (!vertices) return false;\r\n var nbVertices = vertices.length / 3;\r\n if (nbVertices < targetTris) return false;\r\n\r\n this._bb.copy(geom.getBoundingBox());\r\n this._kdTree.setVertices(vertices);\r\n\r\n this.computeDivisions(options);\r\n options._numVerticesProcessed += nbVertices;\r\n\r\n var totalLenArray = 0;\r\n var geomPrimitives = geom.getPrimitiveSetList();\r\n var nbPrimitives = geomPrimitives.length;\r\n\r\n for (var i = 0; i < nbPrimitives; i++) {\r\n var prim = geomPrimitives[i];\r\n var mode = prim.getMode();\r\n if (mode === primitiveSet.TRIANGLE_STRIP || mode === primitiveSet.TRIANGLE_FAN)\r\n totalLenArray += Math.abs(prim.getCount() - 2) * 3;\r\n else totalLenArray += prim.getCount() * 3;\r\n }\r\n\r\n var infoCollector = new InfoCollector(this);\r\n infoCollector.apply(geom);\r\n var vertexIndicesSize = infoCollector._numVertexIndices;\r\n\r\n this._primitiveIndices = new Uint32Array(totalLenArray / 3);\r\n this._centers = new Float32Array(totalLenArray);\r\n\r\n // init kdtree arrays\r\n // Check if we can use Uint16 later\r\n this._kdTree.setPrimitiveIndices(new Uint32Array(totalLenArray));\r\n var vertexIndicesArray =\r\n nbVertices > 65535\r\n ? new Uint32Array(vertexIndicesSize)\r\n : new Uint16Array(vertexIndicesSize);\r\n this._kdTree.setVertexIndices(vertexIndicesArray);\r\n\r\n var pic = new PrimitiveIndicesCollector(this);\r\n pic.apply(geom);\r\n\r\n // Adjust sizes\r\n var kdPrimIndices = this._kdTree\r\n .getPrimitiveIndices()\r\n .slice(0, this._kdTree.getNumPrimitiveIndices());\r\n this._kdTree.setPrimitiveIndices(kdPrimIndices);\r\n var kdVertexIndices = this._kdTree\r\n .getVertexIndices()\r\n .slice(0, this._kdTree.getNumVertexIndices());\r\n this._kdTree.setVertexIndices(kdVertexIndices);\r\n\r\n this._primitiveIndices = this._primitiveIndices.slice(0, pic._numIndices);\r\n this._centers = this._centers.slice(0, pic._numIndices * 3);\r\n\r\n var node = new KdNode(-1, this._primitiveIndices.length);\r\n node._bb.copy(this._bb);\r\n var nodeNum = this._kdTree.addNode(node);\r\n\r\n var bb = new BoundingBox();\r\n bb.copy(this._bb);\r\n this.divide(options, bb, nodeNum, 0);\r\n\r\n var primitiveIndices = this._kdTree.getPrimitiveIndices();\r\n\r\n nbPrimitives = this._primitiveIndices.length;\r\n for (i = 0; i < nbPrimitives; ++i) {\r\n this._primitiveIndices[i] = primitiveIndices[this._primitiveIndices[i]];\r\n }\r\n this._kdTree.setPrimitiveIndices(this._primitiveIndices);\r\n\r\n return this._kdTree.getNodes().length > 0;\r\n },\r\n\r\n computeDivisions: function(options) {\r\n this._stackLength = options._maxNumLevels;\r\n var max = this._bb._max;\r\n var min = this._bb._min;\r\n var dx = max[0] - min[0];\r\n var dy = max[1] - min[1];\r\n var dz = max[2] - min[2];\r\n var axisOrder = this._axisOrder;\r\n\r\n // We set the cutting order (longest edge aabb first)\r\n axisOrder[0] = dx >= dy && dx >= dz ? 0 : dy >= dz ? 1 : 2;\r\n axisOrder[2] = dx < dy && dx < dz ? 0 : dy < dz ? 1 : 2;\r\n var sum = axisOrder[0] + axisOrder[2];\r\n axisOrder[1] = sum === 3 ? 0 : sum === 2 ? 1 : 2;\r\n },\r\n // The core function of the kdtree building\r\n // It checks if the node needs to be subdivided or not\r\n // If it's a leaf, it computes the final bounding box of the node\r\n // and it ends here\r\n // If it's a node, then it puts the splitting axis position on the median population\r\n // On the same time it reorders the triangle index array\r\n divide: function(options, bb, nodeIndex, level) {\r\n var kdTree = this._kdTree;\r\n var primitives = this._primitiveIndices;\r\n var nodes = kdTree.getNodes();\r\n var node = nodes[nodeIndex];\r\n\r\n var first = node._first;\r\n var second = node._second;\r\n\r\n var needToDivide =\r\n level < this._stackLength && first < 0 && second > options._targetNumTrianglesPerLeaf;\r\n var istart = -first - 1;\r\n var iend = istart + second - 1;\r\n\r\n if (!needToDivide) {\r\n if (first < 0) {\r\n // leaf is done, now compute bound on it.\r\n this.computeNodeBox(node, istart, iend);\r\n }\r\n return nodeIndex;\r\n }\r\n\r\n if (first >= 0) return nodeIndex;\r\n // leaf node as first < 0, so look at dividing it.\r\n\r\n var axis = this._axisOrder[level % 3];\r\n var originalMin = bb._min[axis];\r\n var originalMax = bb._max[axis];\r\n\r\n var mid = (originalMin + originalMax) * 0.5;\r\n\r\n var originalLeftChildIndex = 0;\r\n var originalRightChildIndex = 0;\r\n var insitueDivision = false;\r\n\r\n var left = istart;\r\n var right = iend;\r\n\r\n var centers = this._centers;\r\n while (left < right) {\r\n while (left < right && centers[primitives[left] * 3 + axis] <= mid) {\r\n ++left;\r\n }\r\n\r\n while (left < right && centers[primitives[right] * 3 + axis] > mid) {\r\n --right;\r\n }\r\n\r\n if (left < right) {\r\n var tmp = primitives[left];\r\n primitives[left] = primitives[right];\r\n primitives[right] = tmp;\r\n ++left;\r\n --right;\r\n }\r\n }\r\n\r\n if (left === right) {\r\n if (centers[primitives[left] * 3 + axis] <= mid) ++left;\r\n else --right;\r\n }\r\n\r\n if (right - istart <= -1) {\r\n originalLeftChildIndex = 0;\r\n originalRightChildIndex = nodeIndex;\r\n insitueDivision = true;\r\n } else if (iend - left <= -1) {\r\n originalLeftChildIndex = nodeIndex;\r\n originalRightChildIndex = 0;\r\n insitueDivision = true;\r\n } else {\r\n originalLeftChildIndex = kdTree.addNode(new KdNode(-istart - 1, right - istart + 1));\r\n originalRightChildIndex = kdTree.addNode(new KdNode(-left - 1, iend - left + 1));\r\n }\r\n\r\n var restore = bb._max[axis];\r\n bb._max[axis] = mid;\r\n\r\n var leftChildIndex =\r\n originalLeftChildIndex !== 0\r\n ? this.divide(options, bb, originalLeftChildIndex, level + 1)\r\n : 0;\r\n\r\n bb._max[axis] = restore;\r\n\r\n restore = bb._min[axis];\r\n bb._min[axis] = mid;\r\n\r\n var rightChildIndex =\r\n originalRightChildIndex !== 0\r\n ? this.divide(options, bb, originalRightChildIndex, level + 1)\r\n : 0;\r\n\r\n bb._min[axis] = restore;\r\n\r\n if (!insitueDivision) {\r\n node._first = leftChildIndex;\r\n node._second = rightChildIndex;\r\n\r\n insitueDivision = true;\r\n\r\n var bnode = node._bb;\r\n bnode.init();\r\n if (leftChildIndex !== 0) bnode.expandByBoundingBox(nodes[leftChildIndex]._bb);\r\n if (rightChildIndex !== 0) bnode.expandByBoundingBox(nodes[rightChildIndex]._bb);\r\n }\r\n return nodeIndex;\r\n },\r\n // It computes the bounding box of the node so that the box contains all the triangles\r\n // of the cell\r\n computeNodeBox: function(node, istart, iend) {\r\n var minx = Infinity,\r\n miny = Infinity,\r\n minz = Infinity,\r\n maxx = -Infinity,\r\n maxy = -Infinity,\r\n maxz = -Infinity;\r\n var vertexIndices = this._kdTree.getVertexIndices();\r\n var primitives = this._kdTree.getPrimitiveIndices();\r\n var vertices = this._kdTree.getVertices();\r\n for (var i = istart; i <= iend; ++i) {\r\n var primitiveIndex = primitives[this._primitiveIndices[i]];\r\n var numPoints = vertexIndices[primitiveIndex++];\r\n for (var j = 0; j < numPoints; ++j) {\r\n var vi = vertexIndices[primitiveIndex++] * 3;\r\n var vx = vertices[vi];\r\n var vy = vertices[vi + 1];\r\n var vz = vertices[vi + 2];\r\n\r\n if (vx < minx) minx = vx;\r\n if (vy < miny) miny = vy;\r\n if (vz < minz) minz = vz;\r\n\r\n if (vx > maxx) maxx = vx;\r\n if (vy > maxy) maxy = vy;\r\n if (vz > maxz) maxz = vz;\r\n }\r\n }\r\n var epsilon = 1e-6;\r\n var bnode = node._bb;\r\n var bmin = bnode._min;\r\n var bmax = bnode._max;\r\n bmin[0] = minx - epsilon;\r\n bmin[1] = miny - epsilon;\r\n bmin[2] = minz - epsilon;\r\n bmax[0] = maxx + epsilon;\r\n bmax[1] = maxy + epsilon;\r\n bmax[2] = maxz + epsilon;\r\n }\r\n};\r\n\r\nvar KdTree = function() {\r\n this._vertices = null;\r\n this._kdNodes = [];\r\n this._primitiveIndices = undefined;\r\n this._vertexIndices = undefined;\r\n this._numVertexIndices = 0;\r\n this._numPrimitiveIndices = 0;\r\n};\r\n\r\nutils.createPrototypeObject(\r\n KdTree,\r\n {\r\n getVertices: function() {\r\n return this._vertices;\r\n },\r\n setVertices: function(vertices) {\r\n this._vertices = vertices;\r\n },\r\n\r\n getNumPrimitiveIndices: function() {\r\n return this._numPrimitiveIndices;\r\n },\r\n\r\n getNumVertexIndices: function() {\r\n return this._numVertexIndices;\r\n },\r\n\r\n setPrimitiveIndices: function(indices) {\r\n this._primitiveIndices = indices;\r\n },\r\n getPrimitiveIndices: function() {\r\n return this._primitiveIndices;\r\n },\r\n\r\n // vector containing the primitive vertex index data packed as no_vertice_indices then vertex indices\r\n // ie. for points it's (1, p0), for lines (2, p0, p1) etc.\r\n setVertexIndices: function(indices) {\r\n this._vertexIndices = indices;\r\n },\r\n\r\n getVertexIndices: function() {\r\n return this._vertexIndices;\r\n },\r\n\r\n getNodes: function() {\r\n return this._kdNodes;\r\n },\r\n\r\n addPoint: function(p0) {\r\n var i = this._numVertexIndices;\r\n this._primitiveIndices[this._numPrimitiveIndices++] = i;\r\n this._vertexIndices[this._numVertexIndices++] = 1;\r\n this._vertexIndices[this._numVertexIndices++] = p0;\r\n },\r\n\r\n addLine: function(p0, p1) {\r\n var i = this._numVertexIndices;\r\n this._primitiveIndices[this._numPrimitiveIndices++] = i;\r\n this._vertexIndices[this._numVertexIndices++] = 2;\r\n this._vertexIndices[this._numVertexIndices++] = p0;\r\n this._vertexIndices[this._numVertexIndices++] = p1;\r\n },\r\n\r\n addTriangle: function(p0, p1, p2) {\r\n var i = this._numVertexIndices;\r\n this._primitiveIndices[this._numPrimitiveIndices++] = i;\r\n this._vertexIndices[this._numVertexIndices++] = 3;\r\n this._vertexIndices[this._numVertexIndices++] = p0;\r\n this._vertexIndices[this._numVertexIndices++] = p1;\r\n this._vertexIndices[this._numVertexIndices++] = p2;\r\n },\r\n\r\n addNode: function(node) {\r\n this._kdNodes.push(node);\r\n return this._kdNodes.length - 1;\r\n },\r\n build: function(options, geom) {\r\n var buildTree = new BuildKdTree(this);\r\n return buildTree.build(options, geom);\r\n },\r\n\r\n _intersectFunctor: function(functor, node) {\r\n // treat as a leaf\r\n var istart = -node._first - 1;\r\n var iend = istart + node._second;\r\n var vIds = this._vertexIndices;\r\n\r\n functor.setVertices(this._vertices);\r\n functor.setPrimitiveIndex(istart);\r\n\r\n for (var i = istart; i < iend; ++i) {\r\n var pIndex = this._primitiveIndices[i];\r\n var numVertices = vIds[pIndex++];\r\n\r\n if (numVertices === 3) {\r\n functor.operatorTriangle(vIds[pIndex], vIds[pIndex + 1], vIds[pIndex + 2]);\r\n } else if (numVertices === 2) {\r\n functor.operatorLine(vIds[pIndex], vIds[pIndex + 1]);\r\n } else if (numVertices === 1) {\r\n functor.operatorPoint(vIds[pIndex]);\r\n } else {\r\n notify.error('KdTree::intersect() unsupported vertices count :' + numVertices);\r\n }\r\n }\r\n },\r\n\r\n intersect: function(functor, node) {\r\n if (node._first < 0) {\r\n this._intersectFunctor(functor, node);\r\n return;\r\n }\r\n\r\n if (functor.enter(node._bb)) {\r\n if (node._first > 0) {\r\n this.intersect(functor, this._kdNodes[node._first]);\r\n }\r\n\r\n if (node._second > 0) {\r\n this.intersect(functor, this._kdNodes[node._second]);\r\n }\r\n functor.leave();\r\n }\r\n },\r\n intersectLineSegment: function(functor, node, ls, le) {\r\n if (node._first < 0) {\r\n this._intersectFunctor(functor, node);\r\n return;\r\n }\r\n\r\n var s = node._nodeRayStart;\r\n var e = node._nodeRayEnd;\r\n vec3.copy(s, ls);\r\n vec3.copy(e, le);\r\n var kNodes = this._kdNodes;\r\n var kNode;\r\n if (node._first > 0) {\r\n kNode = kNodes[node._first];\r\n if (functor.enter(kNode._bb, s, e)) this.intersectLineSegment(functor, kNode, s, e);\r\n }\r\n\r\n if (node._second > 0) {\r\n vec3.copy(s, ls);\r\n vec3.copy(e, le);\r\n kNode = kNodes[node._second];\r\n if (functor.enter(kNode._bb, s, e)) this.intersectLineSegment(functor, kNode, s, e);\r\n }\r\n }\r\n },\r\n 'osg',\r\n 'KdTree'\r\n);\r\n\r\nexport default KdTree;\r\n","import utils from '../osg/utils';\r\nimport StateAttribute from '../osg/StateAttribute';\r\nimport Uniform from '../osg/Uniform';\r\n\r\n/**\r\n * MorphAttribute encapsulate Animation State\r\n * @class MorphAttribute\r\n * @inherits StateAttribute\r\n */\r\nvar MorphAttribute = function(nbTarget, disable) {\r\n StateAttribute.call(this);\r\n this._nbTarget = nbTarget;\r\n this._enable = !disable;\r\n\r\n this._targetNames = {};\r\n this._hashNames = ''; // compute only once target hash names\r\n\r\n this._hash = ''; // cache of hash\r\n this._dirtyHash = true;\r\n};\r\n\r\nMorphAttribute.uniforms = {};\r\n\r\nutils.createPrototypeStateAttribute(\r\n MorphAttribute,\r\n utils.objectInherit(StateAttribute.prototype, {\r\n attributeType: 'Morph',\r\n\r\n cloneType: function() {\r\n return new MorphAttribute(undefined, true);\r\n },\r\n\r\n hasTarget: function(name) {\r\n return !!this._targetNames[name];\r\n },\r\n\r\n copyTargetNames: function(names) {\r\n var tNames = this._targetNames;\r\n var hash = '';\r\n var nbNames = (tNames.length = names.length);\r\n\r\n for (var i = 0; i < nbNames; ++i) {\r\n var att = names[i];\r\n tNames[att] = true;\r\n hash += att;\r\n }\r\n\r\n this._hashNames = hash;\r\n this._dirtyHash = true;\r\n },\r\n\r\n getOrCreateUniforms: function() {\r\n var obj = MorphAttribute;\r\n var unifHash = this.getNumTargets();\r\n\r\n if (obj.uniforms[unifHash]) return obj.uniforms[unifHash];\r\n\r\n obj.uniforms[unifHash] = {\r\n uTargetWeights: Uniform.createFloat4('uTargetWeights')\r\n };\r\n\r\n return obj.uniforms[unifHash];\r\n },\r\n\r\n setNumTargets: function(nb) {\r\n this._nbTarget = nb;\r\n this._dirtyHash = true;\r\n },\r\n\r\n getNumTargets: function() {\r\n return this._nbTarget;\r\n },\r\n\r\n setTargetWeights: function(targetWeight) {\r\n this._targetWeights = targetWeight;\r\n },\r\n\r\n getTargetWeights: function() {\r\n return this._targetWeights;\r\n },\r\n\r\n isEnabled: function() {\r\n return this._enable;\r\n },\r\n\r\n getHash: function() {\r\n if (!this._dirtyHash) return this._hash;\r\n\r\n this._hash = this._computeInternalHash();\r\n this._dirtyHash = false;\r\n return this._hash;\r\n },\r\n\r\n _computeInternalHash: function() {\r\n return this.getTypeMember() + this._hashNames + this.getNumTargets() + this.isEnabled();\r\n },\r\n\r\n apply: function() {\r\n if (!this._enable) return;\r\n\r\n var uniformMap = this.getOrCreateUniforms();\r\n uniformMap.uTargetWeights.setFloat4(this._targetWeights);\r\n }\r\n }),\r\n 'osgAnimation',\r\n 'MorphAttribute'\r\n);\r\n\r\nexport default MorphAttribute;\r\n","import notify from './notify';\r\nimport utils from './utils';\r\nimport Object from './Object';\r\nimport GLObject from './GLObject';\r\nimport Timer from './Timer';\r\n\r\nvar getAttributeType = function(array) {\r\n var type;\r\n\r\n if (array instanceof utils.Float32Array) type = 0x1406;\r\n\r\n if (array instanceof utils.Int16Array) type = 0x1402;\r\n if (array instanceof utils.Uint16Array) type = 0x1403;\r\n\r\n if (array instanceof utils.Int8Array) type = 0x1400;\r\n if (array instanceof utils.Uint8Array) type = 0x1401;\r\n if (array instanceof utils.Uint8ClampedArray) type = 0x1401;\r\n\r\n if (array instanceof utils.Int32Array) type = 0x1404; // webgl2 for vertexAttribPointer\r\n if (array instanceof utils.Uint32Array) type = 0x1405; // webgl2 for vertexAttribPointer\r\n\r\n return type;\r\n};\r\n\r\n/**\r\n * BufferArray manage vertex / normal / ... array used by webgl.\r\n * osgjs automatically converts array buffers to Float32Array and\r\n * element array buffers to Uint16Array if not said explicitly with\r\n * preserveArrayType variable in constructor.\r\n * @class BufferArray\r\n */\r\n\r\nvar BufferArray = function(target, elements, itemSize) {\r\n GLObject.call(this);\r\n // maybe could inherit from Object\r\n this._instanceID = Object.getInstanceID();\r\n\r\n this.dirty();\r\n\r\n this._itemSize = itemSize;\r\n this._target = typeof target === 'string' ? BufferArray[target] : target;\r\n\r\n // initialized by setElements\r\n this._type = undefined;\r\n this._normalize = false;\r\n\r\n if (elements) {\r\n // byteLength should be enough to detect typedArray\r\n if (elements.byteLength === undefined) {\r\n notify.warn('BufferArray with non typedArray elements is deprecated');\r\n if (this._target === BufferArray.ELEMENT_ARRAY_BUFFER) {\r\n elements = new utils.Uint16Array(elements);\r\n } else {\r\n elements = new utils.Float32Array(elements);\r\n }\r\n }\r\n this.setElements(elements);\r\n }\r\n\r\n this._usage = BufferArray.STATIC_DRAW;\r\n};\r\n\r\nBufferArray.ELEMENT_ARRAY_BUFFER = 0x8893;\r\nBufferArray.ARRAY_BUFFER = 0x8892;\r\nBufferArray.STATIC_DRAW = 0x88e4;\r\nBufferArray.DYNAMIC_DRAW = 0x88e8;\r\nBufferArray.STREAM_DRAW = 0x88e0;\r\n\r\n// static cache of glBuffers flagged for deletion, which will actually\r\n// be deleted in the correct GL context.\r\nBufferArray._sDeletedGLBufferArrayCache = new window.Map();\r\n\r\n// static method to delete Program\r\nBufferArray.deleteGLBufferArray = function(gl, buffer) {\r\n if (!BufferArray._sDeletedGLBufferArrayCache.has(gl))\r\n BufferArray._sDeletedGLBufferArrayCache.set(gl, []);\r\n BufferArray._sDeletedGLBufferArrayCache.get(gl).push(buffer);\r\n};\r\n\r\n// static method to flush all the cached glPrograms which need to be deleted in the GL context specified\r\nBufferArray.flushDeletedGLBufferArrays = function(gl, availableTime) {\r\n // if no time available don't try to flush objects.\r\n if (availableTime <= 0.0) return availableTime;\r\n if (!BufferArray._sDeletedGLBufferArrayCache.has(gl)) return availableTime;\r\n var elapsedTime = 0.0;\r\n var beginTime = Timer.instance().tick();\r\n var deleteList = BufferArray._sDeletedGLBufferArrayCache.get(gl);\r\n var numBuffers = deleteList.length;\r\n for (var i = numBuffers - 1; i >= 0 && elapsedTime < availableTime; i--) {\r\n gl.deleteBuffer(deleteList[i]);\r\n deleteList.splice(i, 1);\r\n elapsedTime = Timer.instance().deltaS(beginTime, Timer.instance().tick());\r\n }\r\n return availableTime - elapsedTime;\r\n};\r\n\r\nBufferArray.flushAllDeletedGLBufferArrays = function(gl) {\r\n if (!BufferArray._sDeletedGLBufferArrayCache.has(gl)) return;\r\n var deleteList = BufferArray._sDeletedGLBufferArrayCache.get(gl);\r\n var numBuffers = deleteList.length;\r\n for (var i = numBuffers - 1; i >= 0; i--) {\r\n gl.deleteBuffer(deleteList[i]);\r\n deleteList.splice(i, 1);\r\n }\r\n};\r\n\r\nBufferArray.onLostContext = function(gl) {\r\n if (!BufferArray._sDeletedGLBufferArrayCache.has(gl)) return;\r\n var deleteList = BufferArray._sDeletedGLBufferArrayCache.get(gl);\r\n deleteList.length = 0;\r\n};\r\n\r\nutils.createPrototypeObject(\r\n BufferArray,\r\n utils.objectInherit(GLObject.prototype, {\r\n setUsage: function(usage) {\r\n this._usage = usage;\r\n },\r\n getUsage: function() {\r\n return this._usage;\r\n },\r\n getInstanceID: function() {\r\n return this._instanceID;\r\n },\r\n setItemSize: function(size) {\r\n this._itemSize = size;\r\n },\r\n isValid: function() {\r\n if (this._buffer) return true;\r\n if (this._elements && this._elements.length) return true;\r\n return false;\r\n },\r\n\r\n invalidate: function() {\r\n this._buffer = undefined;\r\n this.dirty();\r\n },\r\n\r\n releaseGLObjects: function() {\r\n if (this._buffer !== undefined && this._buffer !== null && this._gl !== undefined) {\r\n BufferArray.deleteGLBufferArray(this._gl, this._buffer);\r\n GLObject.removeObject(this._gl, this);\r\n }\r\n this.invalidate();\r\n },\r\n\r\n setNormalize: function(normalize) {\r\n this._normalize = normalize;\r\n },\r\n\r\n getNormalize: function() {\r\n return this._normalize;\r\n },\r\n\r\n bind: function(gl) {\r\n if (!this._gl) this.setGraphicContext(gl);\r\n var target = this._target;\r\n var buffer = this._buffer;\r\n\r\n if (buffer) {\r\n gl.bindBuffer(target, buffer);\r\n return;\r\n }\r\n\r\n if (!buffer && this._elements.length > 0) {\r\n this._buffer = gl.createBuffer();\r\n this._numItems = this._elements.length / this._itemSize;\r\n gl.bindBuffer(target, this._buffer);\r\n }\r\n },\r\n getItemSize: function() {\r\n return this._itemSize;\r\n },\r\n dirty: function() {\r\n this._dirty = true;\r\n },\r\n isDirty: function() {\r\n return this._dirty;\r\n },\r\n compile: function(gl) {\r\n if (this._dirty) {\r\n gl.bufferData(this._target, this._elements, this._usage);\r\n this._dirty = false;\r\n }\r\n },\r\n getElements: function() {\r\n return this._elements;\r\n },\r\n setElements: function(elements) {\r\n this._elements = elements;\r\n this._type = getAttributeType(elements);\r\n this._dirty = true;\r\n },\r\n getType: function() {\r\n return this._type;\r\n }\r\n }),\r\n 'osg',\r\n 'BufferArray'\r\n);\r\n\r\nexport default BufferArray;","var defaultOptions = {\r\n // prefix to built url to load resource\r\n prefixURL: '',\r\n\r\n // database URL for PagedLOD structures\r\n databasePath: '',\r\n\r\n // callback used when loading data\r\n progressXHRCallback: undefined,\r\n\r\n // replacement of readImageURL to use your own code to load Nodes\r\n // the function will be execute in the context of Input, see Input:readNodeURL\r\n readNodeURL: undefined,\r\n\r\n // replacement of readImageURL to use your own code to load osg.Image\r\n // the function will be execute in the context of Input, see Input:readImageURL\r\n readImageURL: undefined,\r\n\r\n // replacement of readBinaryArrayURL to use your own code to load binary array\r\n // the function will be execute in the context of Input, see Input:readBinaryArrayURL\r\n readBinaryArrayURL: undefined,\r\n\r\n imageLoadingUsePromise: true, // use promise to load image instead of returning Image\r\n imageOnload: undefined, // use callback when loading an image\r\n imageCrossOrigin: undefined // use callback when loading an image\r\n};\r\n\r\nexport default defaultOptions;\r\n","import P from 'bluebird';\r\nimport utils from '../osg/utils';\r\nimport osg from '../osg/osg';\r\nimport fileHelper from './fileHelper';\r\nimport Options from './options';\r\nimport zlib from './zlib';\r\nimport notify from '../osg/notify';\r\nimport Image from '../osg/Image';\r\nimport BufferArray from '../osg/BufferArray';\r\nimport DrawArrays from '../osg/DrawArrays';\r\nimport DrawArrayLengths from '../osg/DrawArrayLengths';\r\nimport DrawElements from '../osg/DrawElements';\r\nimport primitiveSet from '../osg/primitiveSet';\r\n\r\nvar rejectObject = utils.rejectObject;\r\n\r\nconst Input = function(json, identifier) {\r\n this._json = json;\r\n var map = identifier;\r\n if (map === undefined) {\r\n map = {};\r\n }\r\n this._identifierMap = map;\r\n this._objectRegistry = {};\r\n\r\n this._cacheReadObject = {}; //wrappers\r\n\r\n // this._progressXHRCallback = undefined;\r\n // this._prefixURL = '';\r\n // this.setImageLoadingOptions( {\r\n // promise: true,\r\n // onload: undefined\r\n // } );\r\n\r\n this.setOptions(utils.objectMix({}, Options));\r\n\r\n // {\r\n // prefixURL: '',\r\n // progressXHRCallback: undefined,\r\n // readImageURL: undefined,\r\n // imageLoadingUsePromise: undefined,\r\n // imageOnload: undefined,\r\n // };\r\n};\r\n\r\n// keep one instance of image fallback\r\nif (!Input.imageFallback) {\r\n Input.imageFallback = (function() {\r\n var fallback = new window.Image();\r\n fallback.src =\r\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2P8DwQACgAD/il4QJ8AAAAASUVORK5CYII=';\r\n return fallback;\r\n })();\r\n}\r\n\r\nInput.prototype = {\r\n clone: function() {\r\n var input = new Input();\r\n input._objectRegistry = this._objectRegistry;\r\n input._cacheReadObject = this._cacheReadObject;\r\n return input;\r\n },\r\n\r\n setOptions: function(options) {\r\n this._defaultOptions = options;\r\n },\r\n getOptions: function() {\r\n return this._defaultOptions;\r\n },\r\n setProgressXHRCallback: function(func) {\r\n this._defaultOptions.progressXHRCallback = func;\r\n },\r\n setReadNodeURLCallback: function(func) {\r\n this._defaultOptions.readNodeURL = func;\r\n },\r\n // used to override the type from pathname\r\n // typically if you want to create proxy object\r\n registerObject: function(fullyQualifiedObjectname, constructor) {\r\n this._objectRegistry[fullyQualifiedObjectname] = constructor;\r\n },\r\n\r\n getJSON: function() {\r\n return this._json;\r\n },\r\n\r\n setJSON: function(json) {\r\n this._json = json;\r\n return this;\r\n },\r\n\r\n setPrefixURL: function(prefix) {\r\n this._defaultOptions.prefixURL = prefix;\r\n },\r\n\r\n getPrefixURL: function() {\r\n return this._defaultOptions.prefixURL;\r\n },\r\n\r\n setDatabasePath: function(path) {\r\n this._defaultOptions.databasePath = path;\r\n },\r\n\r\n getDatabasePath: function() {\r\n return this._defaultOptions.databasePath;\r\n },\r\n\r\n computeURL: function(url) {\r\n if (\r\n typeof this._defaultOptions.prefixURL === 'string' &&\r\n this._defaultOptions.prefixURL.length > 0\r\n ) {\r\n return this._defaultOptions.prefixURL + url;\r\n }\r\n\r\n return url;\r\n },\r\n\r\n requestFile: function(url, options) {\r\n return fileHelper.requestURI(url, options);\r\n },\r\n\r\n getObjectWrapper: function(path) {\r\n if (this._objectRegistry[path]) {\r\n return new this._objectRegistry[path]();\r\n }\r\n\r\n var scope = { osg };\r\n var splittedPath = path.split('.');\r\n for (var i = 0, l = splittedPath.length; i < l; i++) {\r\n var obj = scope[splittedPath[i]];\r\n if (obj === undefined) {\r\n return undefined;\r\n }\r\n scope = obj;\r\n }\r\n this._objectRegistry[path] = scope;\r\n // create the new obj\r\n return new scope();\r\n },\r\n\r\n fetchImage: function(image, url, options) {\r\n var checkInlineImage = 'data:image/';\r\n // crossOrigin does not work for inline data image\r\n var isInlineImage = url.substring(0, checkInlineImage.length) === checkInlineImage;\r\n var img = new window.Image();\r\n if (!isInlineImage && options.imageCrossOrigin) {\r\n img.crossOrigin = options.imageCrossOrigin;\r\n }\r\n image.setURL(url);\r\n image.setImage(img);\r\n img.src = url;\r\n\r\n return new P(function(resolve) {\r\n img.onerror = function() {\r\n notify.warn('warning use white texture as fallback instead of ' + url);\r\n image.setImage(Input.imageFallback);\r\n resolve(image);\r\n };\r\n\r\n img.onload = function() {\r\n if (options.imageOnload) options.imageOnload.call(image);\r\n resolve(image);\r\n };\r\n });\r\n },\r\n\r\n readImageURL: function(url, options) {\r\n if (options === undefined) {\r\n options = this._defaultOptions;\r\n }\r\n\r\n // hook reader\r\n if (options.readImageURL) {\r\n // be carefull if you plan to call hook the call and after\r\n // call the original readImageURL, you will need to remove\r\n // from options the readImageURL if you dont want an infinte\r\n // recursion call\r\n return options.readImageURL.call(this, url, options);\r\n }\r\n\r\n // if image is on inline image skip url computation\r\n if (url.substr(0, 10) !== 'data:image') {\r\n url = this.computeURL(url);\r\n }\r\n\r\n var image = new Image();\r\n return this.fetchImage(image, url, options);\r\n },\r\n\r\n readNodeURL: function(url, opt) {\r\n var options = opt;\r\n if (options === undefined) {\r\n options = this._defaultOptions;\r\n }\r\n\r\n // hook reader\r\n if (options.readNodeURL) {\r\n // be carefull if you plan to call hook the call and after\r\n // call the original readNodeURL, you will need to remove\r\n // from options the readNodeURL if you dont want an infinte\r\n // recursion call\r\n return options.readNodeURL.call(this, url, options);\r\n }\r\n\r\n url = this.computeURL(url);\r\n var that = this;\r\n // copy because we are going to modify it to have relative prefix to load assets\r\n options = utils.objectMix({}, options);\r\n\r\n // automatic prefix if non specfied\r\n if (!options.prefixURL) {\r\n var prefix = that.getPrefixURL();\r\n var index = url.lastIndexOf('/');\r\n if (index !== -1) {\r\n prefix = url.substring(0, index + 1);\r\n }\r\n options.prefixURL = prefix;\r\n }\r\n\r\n var ReaderParser = require('./readerParser').default;\r\n\r\n var readSceneGraph = function(data) {\r\n return ReaderParser.parseSceneGraph(data, options).then(function(child) {\r\n notify.log('loaded ' + url);\r\n return child;\r\n });\r\n };\r\n\r\n var ungzipFile = function(arrayBuffer) {\r\n function pad(n) {\r\n return n.length < 2 ? '0' + n : n;\r\n }\r\n\r\n function uintToString(uintArray) {\r\n var str = '';\r\n for (var i = 0, len = uintArray.length; i < len; ++i) {\r\n str += '%' + pad(uintArray[i].toString(16));\r\n }\r\n str = decodeURIComponent(str);\r\n return str;\r\n }\r\n\r\n var unpacked = arrayBuffer;\r\n if (zlib.isGunzipBuffer(arrayBuffer)) {\r\n unpacked = zlib.gunzip(arrayBuffer);\r\n }\r\n\r\n var typedArray = new Uint8Array(unpacked);\r\n var str = uintToString(typedArray);\r\n return str;\r\n };\r\n\r\n utils.time('osgjs.metric:Input.readNodeURL', notify.INFO);\r\n // try to get the file as responseText to parse JSON\r\n var fileTextPromise = that.requestFile(url);\r\n return fileTextPromise\r\n .then(function(str) {\r\n var data;\r\n try {\r\n data = JSON.parse(str);\r\n } catch (error) {\r\n // can't parse try with ungzip code path\r\n\r\n notify.error('cant parse url ' + url + ' try to gunzip');\r\n }\r\n // we have the json, read it\r\n if (data) return readSceneGraph(data);\r\n\r\n // no data try with gunzip\r\n var fileGzipPromise = that.requestFile(url, {\r\n responseType: 'arraybuffer'\r\n });\r\n return fileGzipPromise\r\n .then(function(file) {\r\n var strUnzip = ungzipFile(file);\r\n data = JSON.parse(strUnzip);\r\n return readSceneGraph(data);\r\n })\r\n .catch(function(status) {\r\n var err = 'cant read file ' + url + ' status ' + status;\r\n notify.error(err);\r\n return err;\r\n });\r\n })\r\n .catch(function(status) {\r\n var err = 'cant get file ' + url + ' status ' + status;\r\n notify.error(err);\r\n return err;\r\n })\r\n .finally(function() {\r\n // Stop the timer\r\n utils.timeEnd('osgjs.metric:Input.readNodeURL');\r\n });\r\n },\r\n\r\n _unzipTypedArray: function(binary) {\r\n var typedArray = new Uint8Array(binary);\r\n\r\n // check magic number 1f8b\r\n if (typedArray[0] === 0x1f && typedArray[1] === 0x8b) {\r\n var _zlib = require('zlibjs');\r\n\r\n if (!_zlib) {\r\n notify.error(\r\n 'osg failed to use a gunzip.min.js to uncompress a gz file.\\n You can add this vendors to enable this feature or adds the good header in your gzip file served by your server'\r\n );\r\n }\r\n\r\n var zdec = new _zlib.Gunzip(typedArray);\r\n var result = zdec.decompress();\r\n return result.buffer;\r\n }\r\n\r\n return binary;\r\n },\r\n\r\n readBinaryArrayURL: function(url, options) {\r\n if (options === undefined) {\r\n options = this._defaultOptions;\r\n }\r\n\r\n if (options.readBinaryArrayURL) {\r\n return options.readBinaryArrayURL.call(this, url, options);\r\n }\r\n\r\n url = this.computeURL(url);\r\n\r\n if (this._identifierMap[url] !== undefined) {\r\n return this._identifierMap[url];\r\n }\r\n\r\n var filePromise = this.requestFile(url, {\r\n responseType: 'arraybuffer',\r\n progress: this._defaultOptions.progressXHRCallback\r\n });\r\n\r\n var that = this;\r\n this._identifierMap[url] = filePromise.then(function(file) {\r\n return that._unzipTypedArray(file);\r\n });\r\n\r\n return this._identifierMap[url];\r\n },\r\n\r\n initializeBufferArray: function(vb, type, buf, options) {\r\n if (options === undefined) options = this.getOptions();\r\n\r\n if (options.initializeBufferArray) {\r\n return options.initializeBufferArray.call(this, vb, type, buf);\r\n }\r\n\r\n var url = vb.File;\r\n\r\n return this.readBinaryArrayURL(url).then(function(array) {\r\n var typedArray;\r\n // manage endianness\r\n var bigEndian;\r\n (function() {\r\n var a = new Uint8Array([0x12, 0x34]);\r\n var b = new Uint16Array(a.buffer);\r\n bigEndian = b[0].toString(16) === '1234';\r\n })();\r\n\r\n var offset = 0;\r\n if (vb.Offset !== undefined) {\r\n offset = vb.Offset;\r\n }\r\n\r\n var bytesPerElement = utils[type].BYTES_PER_ELEMENT;\r\n var nbItems = vb.Size;\r\n var nbCoords = buf.getItemSize();\r\n var totalSizeInBytes = nbItems * bytesPerElement * nbCoords;\r\n\r\n if (bigEndian) {\r\n notify.log('big endian detected');\r\n var TypedArray = utils[type];\r\n var tmpArray = new TypedArray(nbItems * nbCoords);\r\n var data = new DataView(array, offset, totalSizeInBytes);\r\n var i = 0,\r\n l = tmpArray.length;\r\n if (type === 'Uint16Array') {\r\n for (; i < l; i++) {\r\n tmpArray[i] = data.getUint16(i * bytesPerElement, true);\r\n }\r\n } else if (type === 'Float32Array') {\r\n for (; i < l; i++) {\r\n tmpArray[i] = data.getFloat32(i * bytesPerElement, true);\r\n }\r\n } else if (type === 'Uint32Array') {\r\n for (; i < l; i++) {\r\n tmpArray[i] = data.getUint32(i * bytesPerElement, true);\r\n }\r\n }\r\n typedArray = tmpArray;\r\n data = null;\r\n } else {\r\n typedArray = new utils[type](array, offset, nbCoords * nbItems);\r\n }\r\n\r\n buf.setElements(typedArray);\r\n return buf;\r\n });\r\n },\r\n\r\n readBufferArray: function(options) {\r\n var jsonObj = this.getJSON();\r\n\r\n var uniqueID = jsonObj.UniqueID;\r\n var osgjsObject;\r\n if (uniqueID !== undefined) {\r\n osgjsObject = this._identifierMap[uniqueID];\r\n if (osgjsObject !== undefined) {\r\n return osgjsObject;\r\n }\r\n }\r\n\r\n if (options === undefined) options = this.getOptions();\r\n if (options.readBufferArray) return options.readBufferArray.call(this);\r\n\r\n if ((!jsonObj.Elements && !jsonObj.Array) || !jsonObj.ItemSize || !jsonObj.Type) {\r\n return rejectObject('BufferArray', jsonObj);\r\n }\r\n\r\n var promise;\r\n\r\n // inline array\r\n if (jsonObj.Elements) {\r\n promise = P.resolve(\r\n new BufferArray(BufferArray[jsonObj.Type], jsonObj.Elements, jsonObj.ItemSize)\r\n );\r\n } else if (jsonObj.Array) {\r\n var buf = new BufferArray(BufferArray[jsonObj.Type]);\r\n buf.setItemSize(jsonObj.ItemSize);\r\n\r\n var vb, type;\r\n if (jsonObj.Array.Float32Array) {\r\n vb = jsonObj.Array.Float32Array;\r\n type = 'Float32Array';\r\n } else if (jsonObj.Array.Uint16Array) {\r\n vb = jsonObj.Array.Uint16Array;\r\n type = 'Uint16Array';\r\n } else if (jsonObj.Array.Uint8Array) {\r\n vb = jsonObj.Array.Uint8Array;\r\n type = 'Uint8Array';\r\n }else if (jsonObj.Array.Uint32Array) {\r\n vb = jsonObj.Array.Uint32Array;\r\n type = 'Uint32Array';\r\n }\r\n\r\n if (vb === undefined) {\r\n return rejectObject('Typed Array ' + window.Object.keys(jsonObj.Array)[0]);\r\n }\r\n\r\n if (vb.File) {\r\n promise = this.initializeBufferArray(vb, type, buf);\r\n } else if (vb.Elements) {\r\n buf.setElements(new utils[type](vb.Elements));\r\n promise = P.resolve(buf);\r\n }\r\n }\r\n\r\n if (uniqueID !== undefined) {\r\n this._identifierMap[uniqueID] = promise;\r\n }\r\n return promise;\r\n },\r\n\r\n readUserDataContainer: function() {\r\n var jsonObj = this.getJSON();\r\n var osgjsObject;\r\n var uniqueID = jsonObj.UniqueID;\r\n if (uniqueID !== undefined) {\r\n osgjsObject = this._identifierMap[uniqueID];\r\n if (osgjsObject !== undefined) {\r\n return osgjsObject.Values;\r\n }\r\n }\r\n\r\n this._identifierMap[uniqueID] = jsonObj;\r\n return jsonObj.Values;\r\n },\r\n\r\n readPrimitiveSet: function() {\r\n var jsonObj = this.getJSON();\r\n var uniqueID;\r\n var osgjsObject;\r\n\r\n var promise;\r\n var obj, mode, first, count;\r\n var drawElements =\r\n jsonObj.DrawElementUShort ||\r\n jsonObj.DrawElementUByte ||\r\n jsonObj.DrawElementUInt ||\r\n jsonObj.DrawElementsUShort ||\r\n jsonObj.DrawElementsUByte ||\r\n jsonObj.DrawElementsUInt;\r\n var drawArray = jsonObj.DrawArray || jsonObj.DrawArrays;\r\n var drawArrayLengths = jsonObj.DrawArrayLengths;\r\n\r\n if (drawElements) {\r\n uniqueID = drawElements.UniqueID;\r\n if (uniqueID !== undefined) {\r\n osgjsObject = this._identifierMap[uniqueID];\r\n if (osgjsObject !== undefined) {\r\n return osgjsObject;\r\n }\r\n }\r\n\r\n mode = drawElements.Mode ? primitiveSet[drawElements.Mode] : primitiveSet.TRIANGLES;\r\n obj = new DrawElements(mode);\r\n\r\n this.setJSON(drawElements.Indices);\r\n promise = this.readBufferArray().then(function(array) {\r\n obj.setIndices(array);\r\n return obj;\r\n });\r\n this.setJSON(jsonObj);\r\n } else if (drawArray) {\r\n uniqueID = drawArray.UniqueID;\r\n if (uniqueID !== undefined) {\r\n osgjsObject = this._identifierMap[uniqueID];\r\n if (osgjsObject !== undefined) {\r\n return osgjsObject;\r\n }\r\n }\r\n\r\n mode = drawArray.Mode || drawArray.mode;\r\n first = drawArray.First !== undefined ? drawArray.First : drawArray.first;\r\n count = drawArray.Count !== undefined ? drawArray.Count : drawArray.count;\r\n obj = new DrawArrays(primitiveSet[mode], first, count);\r\n promise = P.resolve(obj);\r\n } else if (drawArrayLengths) {\r\n uniqueID = drawArrayLengths.UniqueID;\r\n if (uniqueID !== undefined) {\r\n osgjsObject = this._identifierMap[uniqueID];\r\n if (osgjsObject !== undefined) {\r\n return osgjsObject;\r\n }\r\n }\r\n\r\n mode = drawArrayLengths.Mode;\r\n first = drawArrayLengths.First;\r\n var array = drawArrayLengths.ArrayLengths;\r\n obj = new DrawArrayLengths(primitiveSet[mode], first, array);\r\n promise = P.resolve(obj);\r\n } else {\r\n promise = rejectObject('PrimitiveSet', jsonObj);\r\n }\r\n\r\n if (uniqueID !== undefined) {\r\n this._identifierMap[uniqueID] = promise;\r\n }\r\n\r\n return promise;\r\n },\r\n\r\n readObject: function() {\r\n var jsonObj = this.getJSON();\r\n var objKeys = window.Object.keys(jsonObj);\r\n var prop = objKeys[0];\r\n if (!prop) {\r\n return rejectObject(\"can't find property for object \" + objKeys);\r\n }\r\n\r\n var uniqueID = jsonObj[prop].UniqueID;\r\n var osgjsObject;\r\n if (uniqueID !== undefined ) {//if (uniqueID !== undefined && prop !== 'osg.StateSet') {\r\n osgjsObject = this._identifierMap[uniqueID];\r\n if (osgjsObject !== undefined) {\r\n return osgjsObject;\r\n }\r\n }\r\n\r\n var obj = this.getObjectWrapper(prop);\r\n\r\n if (!obj) {\r\n return rejectObject(\"can't instanciate object \" + prop);\r\n }\r\n\r\n var ReaderParser = require('./readerParser').default;\r\n var scope = ReaderParser.ObjectWrapper.serializers;\r\n\r\n if (this._cacheReadObject[prop]) {\r\n scope = this._cacheReadObject[prop];\r\n } else {\r\n var splittedPath = prop.split('.');\r\n for (var i = 0, l = splittedPath.length; i < l; i++) {\r\n var sub = splittedPath[i];\r\n var reader = scope[sub];\r\n if (!reader) {\r\n return rejectObject('Unknown scope ' + prop + '(' + sub + ')');\r\n }\r\n scope = reader;\r\n }\r\n this._cacheReadObject[prop] = scope;\r\n }\r\n\r\n var promise = scope(this.setJSON(jsonObj[prop]), obj);\r\n\r\n if (uniqueID !== undefined) {\r\n this._identifierMap[uniqueID] = promise;\r\n obj._uniqueID = uniqueID;\r\n }\r\n\r\n return promise;\r\n }\r\n};\r\n\r\nexport default Input;","import notify from './notify';\r\nimport WebGLUtils from '../osgViewer/webgl-utils';\r\nimport Options from './Options';\r\nvar Texture;\r\n\r\nvar WebGLCaps = function() {\r\n // circular deps with texture\r\n if (!Texture) Texture = require('./Texture').default;\r\n\r\n this._checkRTT = {};\r\n this._webGLExtensions = {};\r\n this._webGLParameters = {};\r\n this._webGLShaderMaxInt = 'NONE';\r\n this._webGLShaderMaxFloat = 'NONE';\r\n\r\n this._bugsDB = {};\r\n this._webGLPlatforms = {};\r\n\r\n // webgl minimum requirements as per webgl specs\r\n // useful for nodejs env\r\n this._webGLParameters['MAX_COMBINED_TEXTURE_IMAGE_UNITS'] = 8;\r\n this._webGLParameters['MAX_CUBE_MAP_TEXTURE_SIZE'] = 16;\r\n this._webGLParameters['MAX_FRAGMENT_UNIFORM_VECTORS'] = 16;\r\n this._webGLParameters['MAX_RENDERBUFFER_SIZE'] = 1;\r\n this._webGLParameters['MAX_TEXTURE_IMAGE_UNITS'] = 8;\r\n this._webGLParameters['MAX_TEXTURE_SIZE'] = 64;\r\n this._webGLParameters['MAX_VARYING_VECTORS'] = 8;\r\n this._webGLParameters['MAX_VERTEX_ATTRIBS'] = 8;\r\n this._webGLParameters['MAX_VERTEX_TEXTURE_IMAGE_UNITS'] = 0;\r\n this._webGLParameters['MAX_VERTEX_UNIFORM_VECTORS'] = 128;\r\n this._webGLParameters['MAX_VIEWPORT_DIMS'] = [1, 1];\r\n this._webGLParameters['NUM_COMPRESSED_TEXTURE_FORMATS'] = 0;\r\n this._webGLParameters['MAX_SHADER_PRECISION_FLOAT'] = 'none';\r\n this._webGLParameters['MAX_SHADER_PRECISION_INT'] = 'none';\r\n\r\n // for multiple context\r\n // allow checking we're on the good one\r\n this._gl = undefined;\r\n};\r\n\r\nWebGLCaps.instance = function(glParam, force) {\r\n if (!WebGLCaps._instance) {\r\n var oldWebGLInspector;\r\n var gl = glParam;\r\n\r\n if (!gl) {\r\n // make sure we don't break webglinspector\r\n // with our webglcaps canvas\r\n var webglInspector = typeof window !== 'undefined' && window.gli;\r\n\r\n if (webglInspector) {\r\n oldWebGLInspector = window.gli.host.inspectContext;\r\n window.gli.host.inspectContext = false;\r\n }\r\n\r\n var c = document.createElement('canvas');\r\n c.width = 32;\r\n c.height = 32;\r\n\r\n var options = new Options();\r\n // not necessary, but for some reasons it crashed on chromium vr build\r\n options.extend({\r\n antialias: false\r\n });\r\n // in case of webgl2\r\n options.extendWithOptionsURL();\r\n\r\n gl = WebGLUtils.setupWebGL(c, options, function() {});\r\n }\r\n\r\n WebGLCaps._instance = new WebGLCaps();\r\n if (gl) {\r\n WebGLCaps._instance.init(gl);\r\n } else {\r\n // gracefully handle non webgl\r\n // like nodejs, phantomjs\r\n // warns but no error so that nodejs/phantomjs\r\n // can still has some webglcaps object\r\n notify.warn('no support for webgl context detected.');\r\n }\r\n\r\n if (oldWebGLInspector) {\r\n window.gli.host.inspectContext = oldWebGLInspector;\r\n }\r\n\r\n //delete c;\r\n }\r\n\r\n if (glParam && (force || glParam !== WebGLCaps._instance.getContext())) {\r\n // webgl caps called with a different context or GPU\r\n // than the one we draw in, will result on hard crash\r\n // when using extension from another context\r\n WebGLCaps._instance.initContextDependant(glParam);\r\n }\r\n\r\n return WebGLCaps._instance;\r\n};\r\n\r\nWebGLCaps.prototype = {\r\n getContext: function() {\r\n return this._gl;\r\n },\r\n\r\n initContextDependant: function(gl) {\r\n // store context in case of multiple context\r\n this._gl = gl;\r\n // We need to check if this is a webGL2 context to get the extensions work.\r\n this._isGL2 =\r\n typeof window.WebGL2RenderingContext !== 'undefined' &&\r\n gl instanceof window.WebGL2RenderingContext;\r\n // Takes care of circular dependencies on Texture\r\n // Texture should be resolved at this point\r\n // Texture = require('./Texture').default;\r\n\r\n // get extensions\r\n this.initWebGLExtensions(gl);\r\n\r\n // get float support\r\n this.hasLinearHalfFloatRTT(gl);\r\n this.hasLinearFloatRTT(gl);\r\n this.hasHalfFloatRTT(gl);\r\n this.hasFloatRTT(gl);\r\n },\r\n\r\n init: function(gl) {\r\n // get capabilites\r\n this.initWebGLParameters(gl);\r\n\r\n // order is important\r\n // to allow webgl extensions filtering\r\n this.initPlatformSupport();\r\n this.initBugDB(gl);\r\n\r\n this.initContextDependant(gl);\r\n\r\n if (this._isGL2) {\r\n var nativeExtension = [\r\n 'OES_element_index_uint',\r\n 'EXT_sRGB',\r\n 'EXT_blend_minmax',\r\n 'EXT_frag_depth',\r\n 'WEBGL_depth_texture',\r\n 'EXT_shader_texture_lod',\r\n 'OES_standard_derivatives',\r\n 'OES_texture_float',\r\n 'OES_texture_half_float',\r\n 'OES_texture_half_float_linear',\r\n 'OES_texture_float_linear',\r\n 'OES_vertex_array_object',\r\n 'WEBGL_draw_buffers',\r\n 'OES_fbo_render_mipmap',\r\n 'ANGLE_instanced_arrays'\r\n ];\r\n\r\n var ext = WebGLCaps._instance.getWebGLExtensions();\r\n var dummyFunc = function() {};\r\n for (var i = 0, l = nativeExtension.length; i < l; i++) {\r\n ext[nativeExtension[i]] = dummyFunc;\r\n }\r\n }\r\n },\r\n\r\n isWebGL2: function() {\r\n return this._isGL2;\r\n },\r\n\r\n // inevitable bugs per platform (browser/OS/GPU)\r\n initBugDB: function(gl) {\r\n var p = this._webGLPlatforms;\r\n var ext = this._webGLParameters;\r\n\r\n // derivatives gives strange results on Shadow Shaders\r\n if (p.Apple) {\r\n if (!ext.UNMASKED_VENDOR_WEBGL || ext.UNMASKED_VENDOR_WEBGL.indexOf('Intel') !== -1) {\r\n // bug is on INTEL GPU on APPLE\r\n // we disable the ext on Apple if we cannot get GPU info\r\n this._bugsDB['OES_standard_derivatives'] = true;\r\n }\r\n }\r\n\r\n if (gl.getExtension('EXT_shader_texture_lod')) {\r\n // https://forums.imgtec.com/t/texturecubelod-is-removed-after-version-140/2260\r\n var test = {\r\n type: 'FRAGMENT_SHADER',\r\n text: [\r\n '#version 100',\r\n '#extension GL_EXT_shader_texture_lod : require',\r\n '#ifdef GL_FRAGMENT_PRECISION_HIGH',\r\n ' precision highp float;',\r\n '#else',\r\n ' precision mediump float;',\r\n '#endif',\r\n 'uniform samplerCube uT0;',\r\n 'varying vec3 vC;',\r\n 'void main(void) {',\r\n ' gl_FragColor = textureCubeLodEXT(uT0, vC, 1.0);',\r\n '}'\r\n ].join('\\n')\r\n };\r\n var hasSupport = this.checkShader(gl, test.type, test.text);\r\n if (!hasSupport) {\r\n this._bugsDB['EXT_shader_texture_lod'] = true;\r\n }\r\n }\r\n },\r\n\r\n checkShader: function(gl, t, text) {\r\n var type = t;\r\n if (typeof type === 'string') type = gl[t];\r\n var shader = gl.createShader(type);\r\n gl.shaderSource(shader, text);\r\n gl.compileShader(shader);\r\n\r\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS) && !gl.isContextLost()) {\r\n notify.warn(gl.getShaderInfoLog(shader));\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n initPlatformSupport: function() {\r\n var p = this._webGLPlatforms;\r\n\r\n p.Apple =\r\n navigator.vendor.indexOf('Apple') !== -1 || navigator.vendor.indexOf('OS X') !== -1;\r\n\r\n // degrades complexity on handhelds.\r\n p.Mobile = /Mobi/.test(navigator.userAgent) || /ablet/.test(navigator.userAgent);\r\n },\r\n\r\n getWebGLPlatform: function(str) {\r\n return this._webGLPlatforms[str];\r\n },\r\n\r\n getWebGLPlatforms: function() {\r\n return this._webGLPlatforms;\r\n },\r\n\r\n getWebGLParameter: function(str) {\r\n return this._webGLParameters[str];\r\n },\r\n\r\n getWebGLParameters: function() {\r\n return this._webGLParameters;\r\n },\r\n\r\n getShaderMaxPrecisionFloat: function() {\r\n return this._webGLParameters.MAX_SHADER_PRECISION_FLOAT;\r\n },\r\n\r\n getShaderMaxPrecisionInt: function() {\r\n return this._webGLParameters.MAX_SHADER_PRECISION_INT;\r\n },\r\n\r\n checkSupportRTT: function(gl, typeFloat, typeTexture) {\r\n var key = typeFloat + ',' + typeTexture;\r\n\r\n if (this._isGL2) {\r\n return !!this._webGLExtensions['EXT_color_buffer_float'];\r\n }\r\n\r\n // check once only\r\n if (this._checkRTT[key] !== undefined) return this._checkRTT[key];\r\n\r\n // no cached results, need gl context\r\n if (!gl) return false;\r\n\r\n // from http://codeflow.org/entries/2013/feb/22/how-to-write-portable-webgl/#how-can-i-detect-if-i-can-render-to-floating-point-textures\r\n\r\n // setup the texture\r\n var texture = gl.createTexture();\r\n gl.bindTexture(gl.TEXTURE_2D, texture);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2, 2, 0, gl.RGBA, typeFloat, null);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, typeTexture);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, typeTexture);\r\n\r\n // setup the framebuffer\r\n var framebuffer = gl.createFramebuffer();\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\r\n\r\n // check the framebuffer\r\n var status = (this._checkRTT[key] =\r\n gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE);\r\n\r\n // cleanup\r\n gl.deleteTexture(texture);\r\n gl.deleteFramebuffer(framebuffer);\r\n gl.bindTexture(gl.TEXTURE_2D, null);\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\r\n\r\n return status;\r\n },\r\n\r\n hasLinearHalfFloatRTT: function(gl) {\r\n return (\r\n this._webGLExtensions['OES_texture_half_float_linear'] &&\r\n this.checkSupportRTT(gl, Texture.HALF_FLOAT_OES, Texture.LINEAR)\r\n );\r\n },\r\n\r\n hasLinearFloatRTT: function(gl) {\r\n return (\r\n this._webGLExtensions['OES_texture_float_linear'] &&\r\n this.checkSupportRTT(gl, Texture.FLOAT, Texture.LINEAR)\r\n );\r\n },\r\n\r\n hasHalfFloatRTT: function(gl) {\r\n return (\r\n this._webGLExtensions['OES_texture_half_float'] &&\r\n this.checkSupportRTT(gl, Texture.HALF_FLOAT_OES, Texture.NEAREST)\r\n );\r\n },\r\n\r\n hasFloatRTT: function(gl) {\r\n return (\r\n this._webGLExtensions['OES_texture_float'] &&\r\n this.checkSupportRTT(gl, Texture.FLOAT, Texture.NEAREST)\r\n );\r\n },\r\n\r\n queryPrecision: function(gl, shaderType, precision) {\r\n var answer = gl.getShaderPrecisionFormat(shaderType, precision);\r\n if (!answer) return false;\r\n return answer.precision !== 0;\r\n },\r\n\r\n hasVAO: function() {\r\n return !!this._webGLExtensions['OES_vertex_array_object'];\r\n },\r\n\r\n getDisjointTimerQuery: function() {\r\n return (\r\n this._webGLExtensions['EXT_disjoint_timer_query_webgl2'] ||\r\n this._webGLExtensions['EXT_disjoint_timer_query']\r\n );\r\n },\r\n\r\n initWebGLParameters: function(gl) {\r\n if (!gl) return;\r\n var limits = [\r\n 'MAX_COMBINED_TEXTURE_IMAGE_UNITS',\r\n 'MAX_CUBE_MAP_TEXTURE_SIZE',\r\n 'MAX_FRAGMENT_UNIFORM_VECTORS',\r\n 'MAX_RENDERBUFFER_SIZE',\r\n 'MAX_TEXTURE_IMAGE_UNITS',\r\n 'MAX_TEXTURE_SIZE',\r\n 'MAX_VARYING_VECTORS',\r\n 'MAX_VERTEX_ATTRIBS',\r\n 'MAX_VERTEX_TEXTURE_IMAGE_UNITS',\r\n 'MAX_VERTEX_UNIFORM_VECTORS',\r\n 'MAX_VIEWPORT_DIMS',\r\n 'SHADING_LANGUAGE_VERSION',\r\n 'VERSION',\r\n 'VENDOR',\r\n 'RENDERER',\r\n 'ALIASED_LINE_WIDTH_RANGE',\r\n 'ALIASED_POINT_SIZE_RANGE',\r\n 'RED_BITS',\r\n 'GREEN_BITS',\r\n 'BLUE_BITS',\r\n 'ALPHA_BITS',\r\n 'DEPTH_BITS',\r\n 'STENCIL_BITS'\r\n ];\r\n var params = this._webGLParameters;\r\n for (var i = 0, len = limits.length; i < len; ++i) {\r\n var par = limits[i];\r\n params[par] = gl.getParameter(gl[par]);\r\n }\r\n\r\n //shader precisions for float\r\n if (this.queryPrecision(gl, gl.FRAGMENT_SHADER, gl.HIGH_FLOAT)) {\r\n params.MAX_SHADER_PRECISION_FLOAT = 'high';\r\n } else if (this.queryPrecision(gl, gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT)) {\r\n params.MAX_SHADER_PRECISION_FLOAT = 'medium';\r\n } else if (this.queryPrecision(gl, gl.FRAGMENT_SHADER, gl.LOW_FLOAT)) {\r\n params.MAX_SHADER_PRECISION_FLOAT = 'low';\r\n }\r\n\r\n //shader precisions for float\r\n if (this.queryPrecision(gl, gl.FRAGMENT_SHADER, gl.HIGH_INT)) {\r\n params.MAX_SHADER_PRECISION_INT = 'high';\r\n } else if (this.queryPrecision(gl, gl.FRAGMENT_SHADER, gl.MEDIUM_INT)) {\r\n params.MAX_SHADER_PRECISION_INT = 'medium';\r\n } else if (this.queryPrecision(gl, gl.FRAGMENT_SHADER, gl.LOW_INT)) {\r\n params.MAX_SHADER_PRECISION_INT = 'low';\r\n }\r\n\r\n // get GPU, Angle or not, Opengl/directx, etc.\r\n // ffx && chrome only\r\n var debugInfo = gl.getExtension('WEBGL_debug_renderer_info');\r\n if (debugInfo) {\r\n params.UNMASKED_RENDERER_WEBGL = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);\r\n params.UNMASKED_VENDOR_WEBGL = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);\r\n }\r\n // TODO ?\r\n // try to compile a small shader to test the spec is respected\r\n },\r\n\r\n applyExtension: function(gl, name) {\r\n var ext = gl.getExtension(name);\r\n // Borrowed from https://webgl2fundamentals.org/webgl/lessons/webgl1-to-webgl2.html\r\n // make \"generalized\" functions and name\r\n // so that can be used in webgl1 & wegbl2\r\n var suffix = name.split('_')[0];\r\n var prefix = '_' + suffix;\r\n var suffixRE = new RegExp(suffix + '$');\r\n var prefixRE = new RegExp(prefix);\r\n for (var key in ext) {\r\n var val = ext[key];\r\n if (typeof val === 'function') {\r\n // remove suffix (eg: bindVertexArrayOES -> bindVertexArray)\r\n var unsuffixedKey = key.replace(suffixRE, '');\r\n if (gl[unsuffixedKey] === undefined) gl[unsuffixedKey] = ext[key].bind(ext);\r\n } else {\r\n var unprefixedKey = key.replace(prefixRE, '');\r\n if (gl[unprefixedKey] === undefined) gl[unprefixedKey] = ext[key];\r\n }\r\n }\r\n },\r\n\r\n getWebGLExtension: function(str) {\r\n return this._webGLExtensions[str];\r\n },\r\n\r\n getWebGLExtensions: function() {\r\n return this._webGLExtensions;\r\n },\r\n\r\n _checkShader: function(gl, t, text) {\r\n var type = t;\r\n if (typeof type === 'string') type = gl[t];\r\n var shader = gl.createShader(type);\r\n gl.shaderSource(shader, text);\r\n gl.compileShader(shader);\r\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS) && !gl.isContextLost()) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n // some mobile reuse same driver\r\n // GPUs with different capabilities\r\n // double check if glsl compiler agree\r\n // with driver\r\n _doubleCheckExtension: function(gl, extension) {\r\n var shader = [\r\n '#version 100',\r\n '#extension GL_%ext% : require',\r\n 'precision mediump float;',\r\n 'varying vec3 vColor;',\r\n 'void main() {',\r\n 'gl_FragColor = vec4(vColor, 1.0);',\r\n '}'\r\n ].join('\\n');\r\n return this._checkShader(gl, 'FRAGMENT_SHADER', shader.replace(/\\%ext\\%/g, extension));\r\n },\r\n\r\n initWebGLExtensions: function(gl, filterBugs) {\r\n // nodejs, phantomjs\r\n if (!gl) return;\r\n\r\n var doFilter = filterBugs;\r\n if (doFilter === undefined) doFilter = true;\r\n\r\n var supported = gl.getSupportedExtensions();\r\n if (!supported) return;\r\n var ext = this._webGLExtensions;\r\n // we load all the extensions\r\n for (var i = 0, len = supported.length; i < len; ++i) {\r\n var sup = supported[i];\r\n\r\n if (doFilter && this._bugsDB[sup]) {\r\n // bugs on that configuration, do not enable\r\n continue;\r\n }\r\n\r\n ext[sup] = gl.getExtension(sup);\r\n if (!this._isGL2) this.applyExtension(gl, sup);\r\n }\r\n\r\n if (!this._isGL2) {\r\n // double check extensions support\r\n // for now only texture lod... might have to go in loop\r\n // and start a DB of ext to check.\r\n // time will tell\r\n var extToCheck = 'EXT_shader_texture_lod';\r\n if (ext[extToCheck] && !this._doubleCheckExtension(gl, extToCheck))\r\n delete ext[extToCheck];\r\n }\r\n\r\n var anisoExt = this.getWebGLExtension('EXT_texture_filter_anisotropic');\r\n if (anisoExt) {\r\n Texture.ANISOTROPIC_SUPPORT_EXT = true;\r\n Texture.ANISOTROPIC_SUPPORT_MAX = gl.getParameter(\r\n anisoExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT\r\n );\r\n }\r\n }\r\n};\r\n\r\nexport default WebGLCaps;","import { vec3 } from './glMatrix';\r\nimport primitiveSet from './primitiveSet';\r\nimport DrawElements from './DrawElements';\r\nimport DrawArrays from './DrawArrays';\r\n\r\n/**\r\n * PrimitiveFunctor emulates the TemplatePrimitiveFunctor class in OSG and can\r\n * be used to get access to the vertices that compose the things drawn by osgjs.\r\n *\r\n * You have to feed it with an object that references 3 callbacks :\r\n *\r\n * var myObject = {\r\n * operatorPoint : function ( v ) { }, // Do your point operations here\r\n * operatorLine : function ( v1, v2 ){ }, // Do you line operations here\r\n * operatorTriangle : function ( v1, v2, v3 ) { } // Do your triangle operations here\r\n * };\r\n *\r\n */\r\n\r\nvar functorDrawElements = [];\r\nvar functorDrawArrays = [];\r\n\r\nfunctorDrawElements[primitiveSet.POINTS] = (function() {\r\n var v = vec3.create();\r\n return function(offset, count, indexes, cb, vertices) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; ++i) {\r\n var j = indexes[i] * 3;\r\n v[0] = vertices[j];\r\n v[1] = vertices[j + 1];\r\n v[2] = vertices[j + 2];\r\n cb.operatorPoint(v);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawElements[primitiveSet.LINES] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n return function(offset, count, indexes, cb, vertices) {\r\n var end = offset + count;\r\n for (var i = offset; i < end - 1; i += 2) {\r\n var j = indexes[i] * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = indexes[i + 1] * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n cb.operatorLine(v1, v2);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawElements[primitiveSet.LINE_STRIP] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n return function(offset, count, indexes, cb, vertices) {\r\n var end = offset + count;\r\n for (var i = offset; i < end - 1; ++i) {\r\n var j = indexes[i] * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = indexes[i + 1] * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n cb.operatorLine(v1, v2);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawElements[primitiveSet.LINE_LOOP] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n return function(offset, count, indexes, cb, vertices) {\r\n var last = offset + count - 1;\r\n for (var i = offset; i < last; ++i) {\r\n var j = indexes[i] * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = indexes[i + 1] * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n cb.operatorLine(v1, v2);\r\n }\r\n last = indexes[last] * 3;\r\n v1[0] = vertices[last];\r\n v1[1] = vertices[last + 1];\r\n v1[2] = vertices[last + 2];\r\n var first = indexes[0] * 3;\r\n v2[0] = vertices[first];\r\n v2[1] = vertices[first + 1];\r\n v2[2] = vertices[first + 2];\r\n cb.operatorLine(v1, v2);\r\n };\r\n})();\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLES] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n var v3 = vec3.create();\r\n return function(offset, count, indexes, cb, vertices) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; i += 3) {\r\n var j = indexes[i] * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = indexes[i + 1] * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n j = indexes[i + 2] * 3;\r\n v3[0] = vertices[j];\r\n v3[1] = vertices[j + 1];\r\n v3[2] = vertices[j + 2];\r\n cb.operatorTriangle(v1, v2, v3);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLE_STRIP] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n var v3 = vec3.create();\r\n return function(offset, count, indexes, cb, vertices) {\r\n for (var i = 2, pos = offset; i < count; ++i, ++pos) {\r\n var j = indexes[pos] * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = indexes[pos + 1] * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n j = indexes[pos + 2] * 3;\r\n v3[0] = vertices[j];\r\n v3[1] = vertices[j + 1];\r\n v3[2] = vertices[j + 2];\r\n if (i % 2) {\r\n cb.operatorTriangle(v1, v3, v2);\r\n } else {\r\n cb.operatorTriangle(v1, v2, v3);\r\n }\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLE_FAN] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n var v3 = vec3.create();\r\n return function(offset, count, indexes, cb, vertices) {\r\n var first = indexes[offset];\r\n for (var i = 2, pos = offset + 1; i < count; ++i, ++pos) {\r\n v1[0] = vertices[first];\r\n v1[1] = vertices[first + 1];\r\n v1[2] = vertices[first + 2];\r\n var j = indexes[pos] * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n j = indexes[pos + 1] * 3;\r\n v3[0] = vertices[j];\r\n v3[1] = vertices[j + 1];\r\n v3[2] = vertices[j + 2];\r\n cb.operatorTriangle(v1, v2, v3);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawArrays[primitiveSet.POINTS] = (function() {\r\n var v = vec3.create();\r\n return function(first, count, cb, vertices) {\r\n for (var i = first; i < first + count; ++i) {\r\n var j = i * 3;\r\n v[0] = vertices[j];\r\n v[1] = vertices[j + 1];\r\n v[2] = vertices[j + 2];\r\n cb.operatorPoint(v);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawArrays[primitiveSet.LINES] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n return function(first, count, cb, vertices) {\r\n for (var i = first; i < first + count - 1; i += 2) {\r\n var j = i * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = (i + 1) * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n cb.operatorLine(v1, v2);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawArrays[primitiveSet.LINE_STRIP] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n return function(first, count, cb, vertices) {\r\n for (var i = first; i < first + count - 1; ++i) {\r\n var j = i * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = (i + 1) * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n cb.operatorLine(v1, v2);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawArrays[primitiveSet.LINE_LOOP] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n return function(first, count, cb, vertices) {\r\n var last = first + count - 1;\r\n for (var i = first; i < last; ++i) {\r\n var j = i * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = (i + 1) * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n cb.operatorLine(v1, v2);\r\n }\r\n last = last * 3;\r\n v1[0] = vertices[last];\r\n v1[1] = vertices[last + 1];\r\n v1[2] = vertices[last + 2];\r\n first = first * 3;\r\n v2[0] = vertices[first];\r\n v2[1] = vertices[first + 1];\r\n v2[2] = vertices[first + 2];\r\n cb.operatorLine(v1, v2);\r\n };\r\n})();\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLES] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n var v3 = vec3.create();\r\n return function(first, count, cb, vertices) {\r\n for (var i = first; i < first + count; i += 3) {\r\n var j = i * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = (i + 1) * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n j = (i + 2) * 3;\r\n v3[0] = vertices[j];\r\n v3[1] = vertices[j + 1];\r\n v3[2] = vertices[j + 2];\r\n cb.operatorTriangle(v1, v2, v3);\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLE_STRIP] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n var v3 = vec3.create();\r\n return function(first, count, cb, vertices) {\r\n for (var i = 2, pos = first; i < count; ++i, ++pos) {\r\n var j = pos * 3;\r\n v1[0] = vertices[j];\r\n v1[1] = vertices[j + 1];\r\n v1[2] = vertices[j + 2];\r\n j = (pos + 1) * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n j = (pos + 2) * 3;\r\n v3[0] = vertices[j];\r\n v3[1] = vertices[j + 1];\r\n v3[2] = vertices[j + 2];\r\n if (i % 2) {\r\n cb.operatorTriangle(v1, v3, v2);\r\n } else {\r\n cb.operatorTriangle(v1, v2, v3);\r\n }\r\n }\r\n };\r\n})();\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLE_FAN] = (function() {\r\n var v1 = vec3.create();\r\n var v2 = vec3.create();\r\n var v3 = vec3.create();\r\n return function(first, count, cb, vertices) {\r\n for (var i = 2, pos = first + 1; i < count; ++i, ++pos) {\r\n v1[0] = vertices[first];\r\n v1[1] = vertices[first + 1];\r\n v1[2] = vertices[first + 2];\r\n var j = pos * 3;\r\n v2[0] = vertices[j];\r\n v2[1] = vertices[j + 1];\r\n v2[2] = vertices[j + 2];\r\n j = (pos + 1) * 3;\r\n v3[0] = vertices[j];\r\n v3[1] = vertices[j + 1];\r\n v3[2] = vertices[j + 2];\r\n cb.operatorTriangle(v1, v2, v3);\r\n }\r\n };\r\n})();\r\n\r\nvar primitiveFunctor = function(geom, cb, vertices) {\r\n var primitives = geom.getPrimitiveSetList();\r\n if (!primitives) return;\r\n\r\n var cbFunctor;\r\n\r\n var nbPrimitives = primitives.length;\r\n for (var i = 0; i < nbPrimitives; i++) {\r\n var primitive = primitives[i];\r\n if (primitive instanceof DrawElements) {\r\n cbFunctor = functorDrawElements[primitive.getMode()];\r\n if (cbFunctor) {\r\n var indexes = primitive.indices.getElements();\r\n cbFunctor(\r\n primitive.getFirst() / indexes.BYTES_PER_ELEMENT,\r\n primitive.getCount(),\r\n indexes,\r\n cb,\r\n vertices\r\n );\r\n }\r\n } else if (primitive instanceof DrawArrays) {\r\n cbFunctor = functorDrawArrays[primitive.getMode()];\r\n if (cbFunctor) {\r\n cbFunctor(primitive.getFirst(), primitive.getCount(), cb, vertices);\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default primitiveFunctor;","import notify from '../../osg/notify';\r\n\r\nvar instance = 0;\r\nvar Node = function() {\r\n this._name = 'AbstractNode';\r\n this._inputs = [];\r\n this._outputs = null;\r\n\r\n // category of node\r\n // same name implies same\r\n // define/function\r\n //this.type = '';\r\n\r\n // uuid: unicity\r\n // allows multipe node of same type\r\n // declaring multipe code paths\r\n // inside the main\r\n this._id = instance++;\r\n\r\n this._text = undefined;\r\n};\r\n\r\nNode.prototype = {\r\n getID: function() {\r\n return this._id;\r\n },\r\n getName: function() {\r\n return this._name;\r\n },\r\n\r\n getType: function() {\r\n return this.type;\r\n },\r\n\r\n toString: function() {\r\n var str = 'name : ' + this._name;\r\n if (this.type) str += ' (' + this.type + ')';\r\n return str;\r\n },\r\n\r\n getInputs: function() {\r\n return this._inputs;\r\n },\r\n\r\n getOutputs: function() {\r\n return this._outputs;\r\n },\r\n\r\n checkInputsOutputs: function() {\r\n var i, key;\r\n if (this.validInputs) {\r\n for (i = 0; i < this.validInputs.length; i++) {\r\n key = this.validInputs[i];\r\n if (!this._inputs[key]) {\r\n notify.error(\r\n 'Shader node ' +\r\n this.type +\r\n ' validation error input ' +\r\n key +\r\n ' is missing'\r\n );\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.validOutputs) {\r\n for (i = 0; i < this.validOutputs.length; i++) {\r\n key = this.validOutputs[i];\r\n if (!this._outputs[key]) {\r\n notify.error(\r\n 'Shader node ' +\r\n this.type +\r\n ' validation error output ' +\r\n key +\r\n ' is missing'\r\n );\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // accepts inputs like that:\r\n // inputs( [ a, b, c , d] )\r\n // inputs( { a: x, b: y } )\r\n // inputs( a, b, c, d )\r\n inputs: function() {\r\n // handle inputs ( a, b, c, d)\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n var input = arguments[i];\r\n if (!input) {\r\n notify.error('Shader node ' + this.type + ' input number ' + l + ' is undefined ');\r\n break;\r\n }\r\n\r\n // handle inputs( [a, b, c ,d] )\r\n if (Array.isArray(input)) {\r\n this.inputs.apply(this, input);\r\n return this;\r\n\r\n // check for an object {} and not something from base class Node\r\n } else if (\r\n typeof input === 'object' &&\r\n input !== null &&\r\n input instanceof Node === false\r\n ) {\r\n this._inputs = input;\r\n return this;\r\n } else {\r\n // add argument to the array\r\n this._inputs.push(input);\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n // accepts inputs like that:\r\n // outputs( { a: x, b: y } )\r\n // outputs( a )\r\n outputs: function(outputs) {\r\n this._outputs = outputs;\r\n\r\n // single output\r\n if (this._outputs instanceof Node === true) {\r\n this.autoLink(this._outputs);\r\n } else {\r\n // iterate on objects keys\r\n for (var key in this._outputs) {\r\n this.autoLink(this._outputs[key]);\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n autoLink: function(output) {\r\n if (output === undefined) return this;\r\n\r\n output.inputs(this);\r\n\r\n return this;\r\n },\r\n\r\n computeShader: function() {\r\n return this._text;\r\n },\r\n\r\n comment: function(txt) {\r\n this._comment = '//' + txt;\r\n },\r\n\r\n getComment: function() {\r\n return this._comment;\r\n }\r\n};\r\n\r\nexport default Node;\r\n","import P from 'bluebird';\r\n\r\nimport readerParser from './readerParser';\r\nimport Registry from './Registry';\r\nimport requestFile from './requestFile.js';\r\nimport notify from '../osg/notify';\r\n\r\nvar isString = function(str) {\r\n return typeof str === 'string' || str instanceof String;\r\n};\r\n\r\nvar isBlobURL = function(str) {\r\n return str.substr(0, 9) === 'blob:http';\r\n};\r\n\r\nvar isHttpURL = function(str) {\r\n return str.substr(0, 7) === 'http://' || str.substr(0, 8) === 'https://';\r\n};\r\n\r\nvar isURL = function(str) {\r\n if (!isString(str)) return false;\r\n\r\n return isBlobURL(str) || isHttpURL(str);\r\n};\r\n\r\nvar zip = window.zip;\r\n\r\nvar mimeTypes = new window.Map();\r\n\r\nvar createImageFromURL = function(url) {\r\n return new P(function(resolve, reject) {\r\n var img = new window.Image();\r\n img.onerror = function() {\r\n reject(img);\r\n };\r\n\r\n img.onload = function() {\r\n resolve(img);\r\n };\r\n img.src = url;\r\n });\r\n};\r\n\r\nvar createImageFromBlob = function(blob) {\r\n var privateURL = window.URL.createObjectURL(blob);\r\n var promise = createImageFromURL(privateURL);\r\n\r\n promise.finally(function() {\r\n window.URL.revokeObjectURL(privateURL);\r\n });\r\n return promise;\r\n};\r\n\r\nvar createArrayBufferFromBlob = function(blob) {\r\n return new P(function(resolve, reject) {\r\n var fr = new window.FileReader();\r\n\r\n fr.onerror = function() {\r\n reject(fr);\r\n };\r\n\r\n fr.onload = function() {\r\n resolve(this.result);\r\n };\r\n fr.readAsArrayBuffer(blob);\r\n });\r\n};\r\n\r\nvar createArrayBufferFromURL = function(url) {\r\n return requestFile(url, {\r\n responseType: 'arraybuffer'\r\n });\r\n};\r\n\r\nvar createJSONFromURL = function(url) {\r\n return requestFile(url).then(function(string) {\r\n return JSON.parse(string);\r\n });\r\n};\r\n\r\nvar createJSONFromString = function(str) {\r\n var obj = JSON.parse(str);\r\n return P.resolve(obj);\r\n};\r\n\r\nvar fileHelper = {\r\n createJSONFromURL: createJSONFromURL,\r\n createArrayBufferFromURL: createArrayBufferFromURL,\r\n createArrayBufferFromBlob: createArrayBufferFromBlob,\r\n createImageFromBlob: createImageFromBlob,\r\n createImageFromURL: createImageFromURL,\r\n\r\n requestURI: requestFile,\r\n requestResource: function(uri, options) {\r\n var extension = fileHelper.getExtension(uri);\r\n var mimetype = fileHelper.getMimeType(extension);\r\n\r\n var responseType =\r\n options && options.responseType ? options.responseType.toLowerCase() : undefined;\r\n if (responseType) return requestFile(uri, options);\r\n\r\n if (mimetype) {\r\n if (mimetype.match('image')) return createImageFromURL(uri);\r\n else if (mimetype.match('binary')) return createArrayBufferFromURL(uri);\r\n else if (mimetype.match('json')) return createJSONFromURL(uri);\r\n else if (mimetype.match('text')) return requestFile(uri);\r\n }\r\n\r\n return requestFile(uri);\r\n },\r\n\r\n // file.png : url -> fetch/createImage -> Image\r\n // file.png : blob -> createImage -> Image\r\n // file.png : Image -> passthroug -> Image\r\n // file.txt : blob -> FileReader -> String\r\n // file.txt : string -> passthroug -> String\r\n // file.txt : url -> fetch -> String\r\n // file.json: string -> JSON.parse -> Object\r\n // file.json: url -> fetch/JSON.parse -> Object\r\n // file.json: blob -> FileReader/JSON.parse -> Object\r\n // file.bin : blob -> FileReader/readAsArrayBuffer -> arrayBuffer\r\n // file.bin : url -> fetch as arra yBuffer -> arrayBuffer\r\n // file.bin : arrayBuffer -> passthroug -> arrayBuffer\r\n resolveData: function(uri, data) {\r\n var extension = fileHelper.getExtension(uri);\r\n var mimetype = fileHelper.getMimeType(extension);\r\n var createData;\r\n\r\n if (mimetype) {\r\n if (mimetype.match('image')) {\r\n if (isString(data)) createData = createImageFromURL;\r\n else if (data instanceof window.Blob) createData = createImageFromBlob;\r\n } else if (mimetype.match('json')) {\r\n if (isURL(data)) createData = createJSONFromURL;\r\n else createData = createJSONFromString;\r\n } else if (mimetype.match('binary')) {\r\n if (isString(data)) createData = createArrayBufferFromURL;\r\n else if (data instanceof window.Blob) createData = createArrayBufferFromBlob;\r\n }\r\n }\r\n\r\n var promise;\r\n if (createData) {\r\n promise = createData(data);\r\n } else {\r\n promise = P.resolve(data);\r\n }\r\n return promise;\r\n },\r\n\r\n resolveFilesMap: function(filesMap) {\r\n var promises = [];\r\n\r\n for (var filename in filesMap) {\r\n var data = filesMap[filename];\r\n var promise = fileHelper.resolveData(filename, data).then(\r\n function(fname, dataResolved) {\r\n this[fname] = dataResolved;\r\n }.bind(filesMap, filename)\r\n );\r\n promises.push(promise);\r\n }\r\n\r\n return P.all(promises).then(function() {\r\n return filesMap;\r\n });\r\n },\r\n\r\n _unzipEntry: function(entry) {\r\n return new P(function(resolve) {\r\n var filename = entry.filename;\r\n var extension = fileHelper.getExtension(filename);\r\n var mimetype = fileHelper.getMimeType(extension);\r\n\r\n var Writer = zip.BlobWriter;\r\n if (mimetype.match('text') !== null || mimetype.match('json') !== null)\r\n Writer = zip.TextWriter;\r\n // get data from the first file\r\n entry.getData(new Writer(mimetype), function(data) {\r\n resolve({\r\n filename: filename,\r\n data: data\r\n });\r\n });\r\n });\r\n },\r\n\r\n unzipBlob: function(blob) {\r\n return new P(function(resolve, reject) {\r\n // use a zip.BlobReader object to read zipped data stored into blob variable\r\n var filesMap = {};\r\n var filePromises = [];\r\n zip.createReader(\r\n new zip.BlobReader(blob),\r\n function(zipReader) {\r\n // get entries from the zip file\r\n zipReader.getEntries(function(entries) {\r\n for (var i = 0; i < entries.length; i++) {\r\n if (entries[i].directory) continue;\r\n\r\n var promise = fileHelper._unzipEntry(entries[i]);\r\n promise.then(function(result) {\r\n filesMap[result.filename] = result.data;\r\n });\r\n filePromises.push(promise);\r\n }\r\n\r\n P.all(filePromises).then(function() {\r\n zipReader.close();\r\n fileHelper.resolveFilesMap(filesMap).then(function(filesMapResolved) {\r\n resolve(filesMapResolved);\r\n });\r\n });\r\n });\r\n },\r\n function() {\r\n reject(this);\r\n }\r\n );\r\n });\r\n },\r\n\r\n unzip: function(input) {\r\n if (!window.zip)\r\n return P.reject(\r\n 'missing deps to unzip, require https://github.com/gildas-lormeau/zip.js'\r\n );\r\n\r\n if (isString(input)) {\r\n return fileHelper.requestResource(input).then(function(arrayBuffer) {\r\n var blob = new window.Blob([arrayBuffer], { type: mimeTypes.get('zip') });\r\n return fileHelper.unzipBlob(blob);\r\n });\r\n } else if (input instanceof window.Blob) {\r\n return fileHelper.unzipBlob(input);\r\n } else if (input instanceof window.ArrayBuffer) {\r\n var blob = new window.Blob([input], { type: mimeTypes.get('zip') });\r\n return fileHelper.unzipBlob(blob);\r\n }\r\n return P.reject('cant unzip input');\r\n },\r\n\r\n readFileList: function(fileList) {\r\n var fileName;\r\n var filesMap = {};\r\n var promiseArray = [];\r\n var i;\r\n\r\n for (i = 0; i < fileList.length; ++i) {\r\n var ext = fileHelper.getExtension(fileList[i].name);\r\n var readerWriter = Registry.instance().getReaderWriterForExtension(ext);\r\n // We need a hack for osgjs til it is converted to a readerwriter\r\n if (readerWriter !== undefined || ext === 'osgjs') {\r\n // So this is the main file to read\r\n fileName = fileList[i].name;\r\n }\r\n\r\n var mimeType = fileHelper.getMimeType(ext);\r\n var type;\r\n if (mimeType.match('image')) type = 'blob';\r\n else if (mimeType.match('json') || mimeType.match('text')) type = 'string';\r\n else type = 'arraybuffer';\r\n\r\n promiseArray.push(\r\n requestFile(fileList[i], {\r\n responseType: type\r\n })\r\n );\r\n }\r\n\r\n return P.all(promiseArray).then(function(files) {\r\n for (i = 0; i < files.length; ++i) {\r\n filesMap[fileList[i].name] = files[i];\r\n }\r\n return fileHelper.resolveFilesMap(filesMap).then(function(filesMapResolved) {\r\n return readerParser.readNodeURL(fileName, {\r\n filesMap: filesMapResolved\r\n });\r\n });\r\n });\r\n },\r\n\r\n getMimeType: function(extension) {\r\n return mimeTypes.get(extension);\r\n },\r\n\r\n getExtension: function(url) {\r\n return url.substr(url.lastIndexOf('.') + 1);\r\n },\r\n\r\n addMimeTypeForExtension: function(extension, mimeType) {\r\n if (mimeTypes.has(extension) !== undefined) {\r\n notify.warn(\r\n \"the '\" + extension + \"' already has a mimetype: \" + mimeTypes.get(extension)\r\n );\r\n }\r\n mimeTypes.set(extension, mimeType);\r\n }\r\n};\r\n\r\nmimeTypes.set('bin', 'application/octet-binary');\r\nmimeTypes.set('b3dm', 'application/octet-binary');\r\nmimeTypes.set('glb', 'application/octet-binary');\r\nmimeTypes.set('zip', 'application/octet-binary');\r\nmimeTypes.set('gz', 'application/octet-binary');\r\n// Image\r\nmimeTypes.set('png', 'image/png');\r\nmimeTypes.set('jpg', 'image/jpeg');\r\nmimeTypes.set('jpeg', 'image/jpeg');\r\nmimeTypes.set('gif', 'image/gif');\r\n// Text\r\nmimeTypes.set('json', 'application/json');\r\nmimeTypes.set('gltf', 'application/json');\r\nmimeTypes.set('osgjs', 'application/json');\r\nmimeTypes.set('txt', 'text/plain');\r\nmimeTypes.set('glsl', 'text/plain');\r\n\r\nexport default fileHelper;\r\n","import utils from './utils';\r\nimport Object from './Object';\r\n\r\nconst StateAttribute = function() {\r\n Object.call(this);\r\n};\r\n\r\nutils.createPrototypeStateAttribute(\r\n StateAttribute,\r\n utils.objectInherit(Object.prototype, {\r\n _attributeTypeIndex: undefined,\r\n\r\n getType: function() {\r\n return this.attributeType;\r\n },\r\n\r\n // basically, if you want two StateAttribute with the same attributeType in a stateSet/State\r\n // their typeMember should be different\r\n getTypeMember: function() {\r\n return this.attributeType;\r\n },\r\n\r\n apply: function() {},\r\n\r\n // getHash is used by the compiler to know if a change in a StateAttribute\r\n // must trigger a shader build\r\n // If you create your own attribute you will have to customize this function\r\n // a good rule is to that if you change uniform it should not rebuild a shader\r\n // but if you change a type or representation of your StateAttribute, then it should\r\n // if it impact the rendering.\r\n // check other attributes for examples\r\n getHash: function() {\r\n return this.getType();\r\n }\r\n }),\r\n 'osg',\r\n 'StateAttribute'\r\n);\r\n\r\nStateAttribute.OFF = 0;\r\nStateAttribute.ON = 1;\r\nStateAttribute.OVERRIDE = 2;\r\nStateAttribute.PROTECTED = 4;\r\nStateAttribute.INHERIT = 8;\r\nStateAttribute.OVERRIDE_ON = StateAttribute.OVERRIDE | StateAttribute.ON;\r\n\r\nexport default StateAttribute;\r\n","var CullSettings = function() {\r\n // Not doing a this.reset()\r\n // because of multiple inheritance\r\n // it will call the wrong reset\r\n // cullstack reset for isntance()\r\n CullSettings.prototype.reset.call(this);\r\n};\r\n\r\nCullSettings.prototype = {\r\n reset: function() {\r\n this._computeNearFar = true;\r\n this._nearFarRatio = 0.005;\r\n\r\n this._enableFrustumCulling = false;\r\n\r\n // who sets the parameter\r\n // if it's cullvisitor\r\n // it's an OVERRIDER for enableFrustumCulling\r\n // allowing for global EnableFrustimCulling\r\n this._settingsSourceOverrider = this;\r\n //LOD bias for the CullVisitor to use\r\n this._LODScale = 1.0;\r\n // Custom clampProjectionMatrix\r\n this._clampProjectionMatrixCallback = undefined;\r\n },\r\n\r\n setCullSettings: function(settings) {\r\n this._computeNearFar = settings._computeNearFar;\r\n this._nearFarRatio = settings._nearFarRatio;\r\n this._enableFrustumCulling = settings._enableFrustumCulling;\r\n this._settingsSourceOverrider = settings._settingsSourceOverrider;\r\n this._clampProjectionMatrixCallback = settings._clampProjectionMatrixCallback;\r\n },\r\n\r\n setNearFarRatio: function(ratio) {\r\n this._nearFarRatio = ratio;\r\n },\r\n getNearFarRatio: function() {\r\n return this._nearFarRatio;\r\n },\r\n setComputeNearFar: function(value) {\r\n this._computeNearFar = value;\r\n },\r\n getComputeNearFar: function() {\r\n return this._computeNearFar;\r\n },\r\n\r\n setEnableFrustumCulling: function(value) {\r\n this._enableFrustumCulling = value;\r\n },\r\n getEnableFrustumCulling: function() {\r\n return this._enableFrustumCulling;\r\n },\r\n\r\n getSettingSourceOverrider: function() {\r\n return this._settingsSourceOverrider;\r\n },\r\n\r\n setClampProjectionMatrixCallback: function(callback) {\r\n this._clampProjectionMatrixCallback = callback;\r\n },\r\n\r\n getClampProjectionMatrixCallback: function() {\r\n return this._clampProjectionMatrixCallback;\r\n },\r\n\r\n setLODScale: function(scale) {\r\n this._LODScale = scale;\r\n },\r\n getLODScale: function() {\r\n return this._LODScale;\r\n }\r\n};\r\n\r\nexport default CullSettings;\r\n","import notify from './notify';\r\n\r\n// Base class for GLResources: Textures, Buffers, Programs, Shaders, FrameBuffers and RenderBuffers\r\n// It holds a reference to the graphic context that is needed for resource deletion\r\nvar GLObject = function() {\r\n this._gl = undefined;\r\n this._onLostContextCallback = undefined;\r\n};\r\n\r\nGLObject.prototype = {\r\n setGraphicContext: function(gl) {\r\n this._gl = gl;\r\n GLObject.addObject(this._gl, this);\r\n },\r\n getGraphicContext: function() {\r\n return this._gl;\r\n },\r\n setLostContextCallback: function(cb) {\r\n this._onLostContextCallback = cb;\r\n },\r\n onLostContext: function() {\r\n if (this.invalidate && typeof this.invalidate === 'function') {\r\n this.invalidate();\r\n }\r\n /* develblock:start */\r\n if (!this.invalidate || typeof this.invalidate !== 'function') {\r\n notify.error('GLObject needs Dirty mechanism for webgl restore');\r\n }\r\n /* develblock:end */\r\n if (this._onLostContextCallback) this._onLostContextCallback();\r\n }\r\n};\r\n\r\n// handle webgl restore by indexing all GLObject\r\nGLObject._sResourcesArrayCache = new window.Map();\r\n\r\nGLObject.addObject = function(gl, glObject) {\r\n if (!GLObject._sResourcesArrayCache.has(gl)) GLObject._sResourcesArrayCache.set(gl, []);\r\n var resourcesArray = GLObject._sResourcesArrayCache.get(gl);\r\n\r\n if (resourcesArray.indexOf(glObject) !== -1) return;\r\n resourcesArray.push(glObject);\r\n};\r\n\r\nGLObject.removeObject = function(gl, glObject) {\r\n if (!GLObject._sResourcesArrayCache.has(gl)) return;\r\n\r\n var resourcesArray = GLObject._sResourcesArrayCache.get(gl);\r\n var i = resourcesArray.indexOf(glObject);\r\n if (i === -1) return;\r\n resourcesArray.splice(i, 1);\r\n};\r\n\r\nGLObject.onLostContext = function(gl) {\r\n if (!GLObject._sResourcesArrayCache.has(gl)) return;\r\n\r\n var resourcesArray = GLObject._sResourcesArrayCache.get(gl);\r\n for (var i = 0, l = resourcesArray.length; i < l; i++) {\r\n resourcesArray[i].onLostContext();\r\n }\r\n};\r\n\r\nexport default GLObject;","var primitiveSet = {};\r\nprimitiveSet.POINTS = 0x0000;\r\nprimitiveSet.LINES = 0x0001;\r\nprimitiveSet.LINE_LOOP = 0x0002;\r\nprimitiveSet.LINE_STRIP = 0x0003;\r\nprimitiveSet.TRIANGLES = 0x0004;\r\nprimitiveSet.TRIANGLE_STRIP = 0x0005;\r\nprimitiveSet.TRIANGLE_FAN = 0x0006;\r\n\r\nexport default primitiveSet;\r\n","import utils from './utils';\r\nimport { vec4 } from './glMatrix';\r\nimport { vec3 } from './glMatrix';\r\n\r\n/** @class Plane Operations */\r\nvar Plane = utils.objectInherit(vec4, {\r\n // Many case (frustum, convexity)\r\n // needs to know where from a plane it stands,\r\n // not just boolean intersection\r\n INSIDE: 1,\r\n INTERSECT: 2,\r\n OUTSIDE: 3,\r\n /* Transform the plane */\r\n transformProvidingInverse: function() {\r\n var iplane = Plane.create();\r\n return function(p, m) {\r\n //Matrix.transformVec4PostMult( matrix, plane, iplane );\r\n var x = p[0];\r\n var y = p[1];\r\n var z = p[2];\r\n var w = p[3];\r\n\r\n iplane[0] = m[0] * x + m[1] * y + m[2] * z + m[3] * w;\r\n iplane[1] = m[4] * x + m[5] * y + m[6] * z + m[7] * w;\r\n iplane[2] = m[8] * x + m[9] * y + m[10] * z + m[11] * w;\r\n iplane[3] = m[12] * x + m[13] * y + m[14] * z + m[15] * w;\r\n\r\n Plane.normalizeEquation(iplane);\r\n Plane.copy(iplane, p);\r\n return p;\r\n };\r\n },\r\n\r\n normalizeEquation: function(plane) {\r\n // multiply the coefficients of the plane equation with a constant factor so that the equation a^2+b^2+c^2 = 1 holds.\r\n var inv = 1.0 / Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);\r\n plane[0] *= inv;\r\n plane[1] *= inv;\r\n plane[2] *= inv;\r\n plane[3] *= inv;\r\n },\r\n /*only the normal Component*/\r\n getNormal: function(plane, result) {\r\n result[0] = plane[0];\r\n result[1] = plane[1];\r\n result[2] = plane[2];\r\n return result;\r\n },\r\n setNormal: function(plane, normal) {\r\n plane[0] = normal[0];\r\n plane[1] = normal[1];\r\n plane[2] = normal[2];\r\n },\r\n /* only the distance getter*/\r\n getDistance: function(plane) {\r\n return plane[3];\r\n },\r\n setDistance: function(plane, distance) {\r\n plane[3] = distance;\r\n },\r\n\r\n /* using the plane equation, compute distance to plane of a point*/\r\n distanceToPlane: function(plane, position) {\r\n return plane[0] * position[0] + plane[1] * position[1] + plane[2] * position[2] + plane[3];\r\n },\r\n\r\n intersectsOrContainsBoundingSphere: function(plane, bSphere) {\r\n if (!bSphere.valid()) return Plane.OUTSIDE;\r\n var position = bSphere.center();\r\n var radius = bSphere.radius();\r\n var d = this.distanceToPlane(plane, position);\r\n if (d < -radius) {\r\n return Plane.OUTSIDE;\r\n } else if (d <= radius) {\r\n return Plane.INTERSECT;\r\n }\r\n return Plane.INSIDE;\r\n },\r\n\r\n instersectsBoundingSphere: function(plane, bSphere) {\r\n return this.intersectsOrContainsBoundingSphere(plane, bSphere) === Plane.INTERSECT;\r\n },\r\n\r\n intersectsOrContainsBoundingBox: (function() {\r\n var retCorner = vec3.create();\r\n return function(plane, bbox) {\r\n var upperBBCorner =\r\n (plane[0] >= 0.0 ? 1 : 0) | (plane[1] >= 0.0 ? 2 : 0) | (plane[2] >= 0.0 ? 4 : 0);\r\n var lowerBBCorner = ~upperBBCorner & 7;\r\n\r\n if (this.distanceToPlane(plane, bbox.corner(lowerBBCorner, retCorner)) > 0.0)\r\n return Plane.INSIDE;\r\n if (this.distanceToPlane(plane, bbox.corner(upperBBCorner, retCorner)) < 0.0)\r\n return Plane.OUTSIDE;\r\n return Plane.INTERSECT; // partially inside\r\n };\r\n })(),\r\n\r\n intersectsBoundingBox: function(plane, bbox, absPlane) {\r\n return this.intersectsOrContainsBoundingBox(plane, bbox, absPlane) === Plane.INTERSECT;\r\n },\r\n\r\n intersectOrContainsVertices: function(plane, vertices) {\r\n var side = -1;\r\n // all points must be on one side only\r\n for (var i = 0; i < vertices.length; i++) {\r\n var d = this.distanceToPlane(plane, vertices[i]);\r\n if (d < 0.0) {\r\n if (side === 1) return Plane.INTERSECT;\r\n side = 2;\r\n } else if (d > 0.0) {\r\n if (side === 2) return Plane.INTERSECT;\r\n side = 1;\r\n } else {\r\n //if ( d === 0.0 )\r\n return Plane.INTERSECT;\r\n }\r\n }\r\n return side > 0 ? Plane.INSIDE : Plane.OUTSIDE;\r\n },\r\n intersectVertices: function(plane, vertices) {\r\n return this.intersectOrContainsVertices(plane, vertices) === Plane.INTERSECT;\r\n }\r\n});\r\n\r\nexport default Plane;","var clamp = function(x, min, max) {\r\n // http://jsperf.com/math-clamp\r\n // http://jsperf.com/clamping-methods/2\r\n return Math.min(max, Math.max(min, x));\r\n};\r\n\r\nvar smoothStep = function(edge0, edge1, x) {\r\n if (x <= edge0) return 0.0;\r\n if (x >= edge1) return 1.0;\r\n var y = (x - edge0) / (edge1 - edge0);\r\n return y * y * (3.0 - 2.0 * y);\r\n};\r\n\r\n// native isNaN is slow (e.g: https://jsperf.com/isnan-performance/2)\r\n// note : native isNaN will return true for undefined but\r\n// this function assume that x is a number\r\nvar fastIsNaN = function(x) {\r\n return x !== x;\r\n};\r\n\r\nexport default {\r\n clamp: clamp,\r\n smoothStep: smoothStep,\r\n isNaN: fastIsNaN\r\n};\r\n","import utils from '../osg/utils';\r\nimport StateAttribute from '../osg/StateAttribute';\r\nimport Uniform from '../osg/Uniform';\r\n\r\n/**\r\n * SkinningAttribute encapsulate Animation State\r\n * @class SkinningAttribute\r\n * @inherits StateAttribute\r\n */\r\nvar SkinningAttribute = function(disable, boneUniformSize) {\r\n StateAttribute.call(this);\r\n this._enable = !disable;\r\n // optional, if it's not provided, it will fall back to the maximum bone uniform size\r\n // boneUniformSize represents the number of vec4 (uniform) used in the shader for all the bones\r\n this._boneUniformSize = boneUniformSize;\r\n\r\n this._dirtyHash = true;\r\n this._hash = '';\r\n};\r\n\r\nSkinningAttribute.uniforms = {};\r\nSkinningAttribute.maxBoneUniformSize = 1;\r\nSkinningAttribute.maxBoneUniformAllowed = Infinity; // can be overriden by application specific limit on startup (typically gl limit)\r\n\r\nutils.createPrototypeStateAttribute(\r\n SkinningAttribute,\r\n utils.objectInherit(StateAttribute.prototype, {\r\n attributeType: 'Skinning',\r\n\r\n cloneType: function() {\r\n return new SkinningAttribute(true);\r\n },\r\n\r\n getBoneUniformSize: function() {\r\n return this._boneUniformSize !== undefined\r\n ? this._boneUniformSize\r\n : SkinningAttribute.maxBoneUniformSize;\r\n },\r\n\r\n getOrCreateUniforms: function() {\r\n var obj = SkinningAttribute;\r\n var boneSize = this.getBoneUniformSize();\r\n\r\n if (obj.uniforms[boneSize]) return obj.uniforms[boneSize];\r\n\r\n obj.uniforms[boneSize] = {\r\n uBones: Uniform.createFloat4Array('uBones', boneSize)\r\n };\r\n\r\n return obj.uniforms[boneSize];\r\n },\r\n\r\n setMatrixPalette: function(matrixPalette) {\r\n this._matrixPalette = matrixPalette;\r\n // update max bone size\r\n if (this._boneUniformSize === undefined) {\r\n SkinningAttribute.maxBoneUniformSize = Math.max(\r\n SkinningAttribute.maxBoneUniformSize,\r\n matrixPalette.length / 4\r\n );\r\n SkinningAttribute.maxBoneUniformSize = Math.min(\r\n SkinningAttribute.maxBoneUniformAllowed,\r\n SkinningAttribute.maxBoneUniformSize\r\n );\r\n }\r\n },\r\n\r\n getMatrixPalette: function() {\r\n return this._matrixPalette;\r\n },\r\n\r\n // need a isEnabled to let the ShaderGenerator to filter\r\n // StateAttribute from the shader compilation\r\n isEnabled: function() {\r\n return this._enable;\r\n },\r\n\r\n getHash: function() {\r\n if (!this._dirtyHash) return this._hash;\r\n\r\n this._hash = this._computeInternalHash();\r\n this._dirtyHash = true;\r\n return this._hash;\r\n },\r\n\r\n _computeInternalHash: function() {\r\n // bone uniform size is hashed because the size of uniform is statically declared in the shader\r\n return this.getTypeMember() + this.getBoneUniformSize() + this.isEnabled();\r\n },\r\n\r\n apply: function() {\r\n if (!this._enable) return;\r\n\r\n this.getOrCreateUniforms()\r\n .uBones.getInternalArray()\r\n .set(this._matrixPalette);\r\n }\r\n }),\r\n 'osgAnimation',\r\n 'SkinningAttribute'\r\n);\r\n\r\nexport default SkinningAttribute;\r\n","// user performance if available or fallback\r\n\r\nvar now = (function() {\r\n var w = window || global; // eslint-disable-line\r\n\r\n // if no window.performance\r\n if (w.performance === undefined) {\r\n return function() {\r\n return Date.now();\r\n };\r\n }\r\n\r\n var fn =\r\n w.performance.now ||\r\n w.performance.mozNow ||\r\n w.performance.msNow ||\r\n w.performance.oNow ||\r\n w.performance.webkitNow ||\r\n function() {\r\n return Date.now();\r\n };\r\n return function() {\r\n return fn.apply(w.performance, arguments);\r\n };\r\n})();\r\n\r\nvar Timer = function() {};\r\n\r\nTimer.instance = function() {\r\n if (!Timer._instance) Timer._instance = new Timer();\r\n\r\n return Timer._instance;\r\n};\r\n\r\nTimer.tick = now;\r\n\r\nTimer.prototype = {\r\n // delta in seconds\r\n deltaS: function(t0, t1) {\r\n return (t1 - t0) / 1000.0;\r\n },\r\n\r\n // delta in milliseconds\r\n deltaM: function(t0, t1) {\r\n return t1 - t0;\r\n },\r\n\r\n tick: function() {\r\n return now();\r\n }\r\n};\r\n\r\nexport default Timer;\r\n","import utils from './utils';\r\nimport StateAttribute from './StateAttribute';\r\n\r\nvar BillboardAttribute = function() {\r\n StateAttribute.call(this);\r\n this._attributeEnable = false;\r\n};\r\n\r\nutils.createPrototypeStateAttribute(\r\n BillboardAttribute,\r\n utils.objectInherit(StateAttribute.prototype, {\r\n attributeType: 'Billboard',\r\n\r\n cloneType: function() {\r\n return new BillboardAttribute();\r\n },\r\n\r\n setEnabled: function(state) {\r\n this._attributeEnable = state;\r\n },\r\n\r\n isEnabled: function() {\r\n return this._attributeEnable;\r\n },\r\n\r\n apply: function() {}\r\n }),\r\n 'osg',\r\n 'Billboard'\r\n);\r\n\r\nexport default BillboardAttribute;","import utils from './utils';\r\nimport StateAttribute from './StateAttribute';\r\n\r\nvar ColorMask = function(red, green, blue, alpha) {\r\n StateAttribute.call(this);\r\n this._red = true;\r\n this._green = true;\r\n this._blue = true;\r\n this._alpha = true;\r\n\r\n if (red !== undefined && green !== undefined && blue !== undefined)\r\n this.setMask(red, green, blue, alpha);\r\n};\r\n\r\nutils.createPrototypeStateAttribute(\r\n ColorMask,\r\n utils.objectInherit(StateAttribute.prototype, {\r\n attributeType: 'ColorMask',\r\n cloneType: function() {\r\n return new ColorMask();\r\n },\r\n setMask: function(red, green, blue, alpha) {\r\n this._red = !!red;\r\n this._green = !!green;\r\n this._blue = !!blue;\r\n this._alpha = !!alpha;\r\n },\r\n apply: function(state) {\r\n state.applyColorMask(this);\r\n }\r\n }),\r\n 'osg',\r\n 'ColorMask'\r\n);\r\n\r\nexport default ColorMask;","import { mat4 } from './glMatrix';\r\nimport { vec3 } from './glMatrix';\r\n\r\nvar EllipsoidModel = function() {\r\n this._radiusEquator = EllipsoidModel.WGS_84_RADIUS_EQUATOR;\r\n this._radiusPolar = EllipsoidModel.WGS_84_RADIUS_POLAR;\r\n this.computeCoefficients();\r\n};\r\n\r\nEllipsoidModel.WGS_84_RADIUS_EQUATOR = 6378137.0;\r\nEllipsoidModel.WGS_84_RADIUS_POLAR = 6356752.3142;\r\n\r\nEllipsoidModel.prototype = {\r\n setRadiusEquator: function(radius) {\r\n this._radiusEquator = radius;\r\n this.computeCoefficients();\r\n },\r\n getRadiusEquator: function() {\r\n return this._radiusEquator;\r\n },\r\n setRadiusPolar: function(radius) {\r\n this._radiusPolar = radius;\r\n this.computeCoefficients();\r\n },\r\n getRadiusPolar: function() {\r\n return this._radiusPolar;\r\n },\r\n convertLatLongHeightToXYZ: function(latitude, longitude, height, result) {\r\n var sinLatitude = Math.sin(latitude);\r\n var cosLatitude = Math.cos(latitude);\r\n var N =\r\n this._radiusEquator /\r\n Math.sqrt(1.0 - this._eccentricitySquared * sinLatitude * sinLatitude);\r\n var X = (N + height) * cosLatitude * Math.cos(longitude);\r\n var Y = (N + height) * cosLatitude * Math.sin(longitude);\r\n var Z = (N * (1.0 - this._eccentricitySquared) + height) * sinLatitude;\r\n result[0] = X;\r\n result[1] = Y;\r\n result[2] = Z;\r\n return result;\r\n },\r\n convertXYZToLatLongHeight: function(X, Y, Z, result) {\r\n // http://www.colorado.edu/geography/gcraft/notes/datum/gif/xyzllh.gif\r\n var p = Math.sqrt(X * X + Y * Y);\r\n var theta = Math.atan2(Z * this._radiusEquator, p * this._radiusPolar);\r\n var eDashSquared =\r\n (this._radiusEquator * this._radiusEquator - this._radiusPolar * this._radiusPolar) /\r\n (this._radiusPolar * this._radiusPolar);\r\n\r\n var sinTheta = Math.sin(theta);\r\n var cosTheta = Math.cos(theta);\r\n\r\n var latitude = Math.atan(\r\n (Z + eDashSquared * this._radiusPolar * sinTheta * sinTheta * sinTheta) /\r\n (p -\r\n this._eccentricitySquared *\r\n this._radiusEquator *\r\n cosTheta *\r\n cosTheta *\r\n cosTheta)\r\n );\r\n var longitude = Math.atan2(Y, X);\r\n\r\n var sinLatitude = Math.sin(latitude);\r\n var N =\r\n this._radiusEquator /\r\n Math.sqrt(1.0 - this._eccentricitySquared * sinLatitude * sinLatitude);\r\n\r\n var cosLat = Math.cos(latitude);\r\n if (cosLat === 0) cosLat = 1;\r\n var height = p / cosLat - N;\r\n result[0] = latitude;\r\n result[1] = longitude;\r\n result[2] = height;\r\n return result;\r\n },\r\n computeLocalUpVector: function(X, Y, Z) {\r\n // Note latitude is angle between normal to ellipsoid surface and XY-plane\r\n var latitude, longitude;\r\n var coord = this.convertXYZToLatLongHeight(X, Y, Z, vec3.create());\r\n latitude = coord[0];\r\n longitude = coord[1];\r\n\r\n // Compute up vector\r\n return [\r\n Math.cos(longitude) * Math.cos(latitude),\r\n Math.sin(longitude) * Math.cos(latitude),\r\n Math.sin(latitude)\r\n ];\r\n },\r\n isWGS84: function() {\r\n return (\r\n this._radiusEquator === EllipsoidModel.WGS_84_RADIUS_EQUATOR &&\r\n this._radiusPolar === EllipsoidModel.WGS_84_RADIUS_POLAR\r\n );\r\n },\r\n\r\n computeCoefficients: function() {\r\n var flattening = (this._radiusEquator - this._radiusPolar) / this._radiusEquator;\r\n this._eccentricitySquared = 2.0 * flattening - flattening * flattening;\r\n },\r\n computeLocalToWorldTransformFromLatLongHeight: function(latitude, longitude, height, result) {\r\n var pos = this.convertLatLongHeightToXYZ(latitude, longitude, height, result);\r\n mat4.fromTranslation(result, pos);\r\n this.computeCoordinateFrame(latitude, longitude, result);\r\n return result;\r\n },\r\n computeLocalToWorldTransformFromXYZ: function(X, Y, Z) {\r\n var lla = this.convertXYZToLatLongHeight(X, Y, Z, vec3.create());\r\n var m = mat4.fromTranslation(mat4.create(), vec3.fromValues(X, Y, Z));\r\n this.computeCoordinateFrame(lla[0], lla[1], m);\r\n return m;\r\n },\r\n computeCoordinateFrame: (function() {\r\n var up = vec3.create();\r\n var east = vec3.create();\r\n var north = vec3.create();\r\n return function(latitude, longitude, localToWorld) {\r\n // Compute up vector\r\n up[0] = Math.cos(longitude) * Math.cos(latitude);\r\n up[1] = Math.sin(longitude) * Math.cos(latitude);\r\n up[2] = Math.sin(latitude);\r\n\r\n // Compute east vector\r\n east[0] = -Math.sin(longitude);\r\n east[1] = -Math.cos(longitude);\r\n\r\n // Compute north vector = outer product up x east\r\n vec3.cross(north, up, east);\r\n\r\n // set matrix\r\n mat4.set(\r\n localToWorld,\r\n east[0],\r\n east[1],\r\n east[2],\r\n 0,\r\n north[0],\r\n north[1],\r\n north[2],\r\n 0,\r\n up[0],\r\n up[1],\r\n up[2],\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1\r\n );\r\n };\r\n })()\r\n};\r\n\r\nexport default EllipsoidModel;","import P from 'bluebird';\r\nimport utils from './utils';\r\nimport Image from './Image';\r\n\r\nvar ImageStream = function(video) {\r\n Image.call(this, video);\r\n this._canPlayDefered = undefined;\r\n};\r\n\r\nImageStream.PAUSE = 0;\r\nImageStream.PLAYING = 1;\r\n\r\nutils.createPrototypeObject(\r\n ImageStream,\r\n utils.objectInherit(Image.prototype, {\r\n isDirty: function() {\r\n return this._status === ImageStream.PLAYING; // video is dirty if playing\r\n },\r\n\r\n setImage: function(video) {\r\n Image.prototype.setImage.call(this, video);\r\n\r\n this._status = ImageStream.STOP;\r\n\r\n // event at the end of the stream\r\n video.addEventListener(\r\n 'ended',\r\n function() {\r\n if (!this._imageObject.loop) this.stop();\r\n }.bind(this),\r\n true\r\n );\r\n\r\n this.dirty();\r\n },\r\n\r\n setLooping: function(bool) {\r\n this._imageObject.loop = bool;\r\n },\r\n\r\n play: function() {\r\n this._imageObject.play();\r\n this._status = ImageStream.PLAYING;\r\n },\r\n\r\n stop: function() {\r\n this._imageObject.pause();\r\n this._status = ImageStream.PAUSE;\r\n },\r\n\r\n whenReady: function() {\r\n if (!this._imageObject) {\r\n return P.reject();\r\n }\r\n var that = this;\r\n return new P(function(resolve) {\r\n if (!that._canPlayDefered) {\r\n that._canPlayDefered = resolve;\r\n // resolve directly if the event is already fired\r\n if (that._imageObject.readyState > 3) that._canPlayDefered(that);\r\n else\r\n that._imageObject.addEventListener(\r\n 'canplaythrough',\r\n that._canPlayDefered.bind(that._canPlayDefered, that),\r\n true\r\n );\r\n }\r\n });\r\n }\r\n }),\r\n 'osg',\r\n 'ImageStream'\r\n);\r\n\r\nexport default ImageStream;","import utils from './utils';\r\nimport StateAttribute from './StateAttribute';\r\n\r\nvar LineWidth = function(lineWidth) {\r\n StateAttribute.call(this);\r\n this.lineWidth = 1.0;\r\n if (lineWidth !== undefined) {\r\n this.lineWidth = lineWidth;\r\n }\r\n};\r\nutils.createPrototypeStateAttribute(\r\n LineWidth,\r\n utils.objectInherit(StateAttribute.prototype, {\r\n attributeType: 'LineWidth',\r\n cloneType: function() {\r\n return new LineWidth();\r\n },\r\n apply: function(state) {\r\n state.getGraphicContext().lineWidth(this.lineWidth);\r\n }\r\n }),\r\n 'osg',\r\n 'LineWidth'\r\n);\r\n\r\nexport default LineWidth;","import utils from './utils';\r\nimport StateAttribute from './StateAttribute';\r\nimport Uniform from './Uniform';\r\n\r\nvar PointSizeAttribute = function(disable) {\r\n StateAttribute.call(this);\r\n\r\n this._enable = !disable;\r\n this._pointSize = 1.0;\r\n // careful with this option if there is lines/triangles under the stateset\r\n this._circleShape = false;\r\n this._dirtyHash = true;\r\n this._hash = '';\r\n};\r\n\r\nutils.createPrototypeStateAttribute(\r\n PointSizeAttribute,\r\n utils.objectInherit(StateAttribute.prototype, {\r\n attributeType: 'PointSize',\r\n\r\n cloneType: function() {\r\n return new PointSizeAttribute(true);\r\n },\r\n\r\n setCircleShape: function(bool) {\r\n this._circleShape = bool;\r\n this._dirtyHash = true;\r\n },\r\n\r\n isCircleShape: function() {\r\n return this._circleShape;\r\n },\r\n\r\n setEnabled: function(state) {\r\n this._enable = state;\r\n this._dirtyHash = true;\r\n },\r\n\r\n isEnabled: function() {\r\n return this._enable;\r\n },\r\n\r\n setPointSize: function(size) {\r\n this._pointSize = size;\r\n },\r\n\r\n getOrCreateUniforms: function() {\r\n var obj = PointSizeAttribute;\r\n if (obj.uniforms) return obj.uniforms;\r\n\r\n obj.uniforms = {\r\n pointSize: Uniform.createFloat(1.0, 'uPointSize')\r\n };\r\n\r\n return obj.uniforms;\r\n },\r\n\r\n getHash: function() {\r\n if (!this._dirtyHash) return this._hash;\r\n\r\n this._hash = this._computeInternalHash();\r\n this._dirtyHash = false;\r\n return this._hash;\r\n },\r\n\r\n _computeInternalHash: function() {\r\n return (\r\n this.getTypeMember() +\r\n (this.isEnabled() ? '1' : '0') +\r\n (this._circleShape ? '1' : '0')\r\n );\r\n },\r\n\r\n apply: function() {\r\n if (!this._enable) return;\r\n\r\n var uniforms = this.getOrCreateUniforms();\r\n uniforms.pointSize.setFloat(this._pointSize);\r\n }\r\n }),\r\n 'osg',\r\n 'PointSizeAttribute'\r\n);\r\n\r\nexport default PointSizeAttribute;","import utils from './utils';\r\nimport Image from './Image';\r\nimport notify from './notify';\r\nimport Texture from './Texture';\r\n\r\n/**\r\n * TextureCubeMap\r\n * @class TextureCubeMap\r\n * @inherits Texture\r\n */\r\nvar TextureCubeMap = function() {\r\n Texture.call(this);\r\n this._images = {};\r\n\r\n // pre allocated all textures faces slots\r\n for (var i = 0; i < 6; i++) {\r\n this._images[Texture.TEXTURE_CUBE_MAP_POSITIVE_X + i] = new Image();\r\n }\r\n};\r\n\r\n/** @lends TextureCubeMap.prototype */\r\nutils.createPrototypeStateAttribute(\r\n TextureCubeMap,\r\n utils.objectInherit(Texture.prototype, {\r\n setDefaultParameters: function() {\r\n Texture.prototype.setDefaultParameters.call(this);\r\n this._textureTarget = Texture.TEXTURE_CUBE_MAP;\r\n\r\n this._flipY = false;\r\n },\r\n\r\n invalidate: function() {\r\n Texture.prototype.invalidate.call(this);\r\n for (\r\n var i = Texture.TEXTURE_CUBE_MAP_POSITIVE_X; i < Texture.TEXTURE_CUBE_MAP_POSITIVE_X + 6; i++\r\n ) {\r\n var faceImage = this._images[i];\r\n if (this._images[Texture.TEXTURE_CUBE_MAP_POSITIVE_X].getImage()) {\r\n faceImage.dirty();\r\n }\r\n }\r\n this.dirty();\r\n },\r\n\r\n cloneType: function() {\r\n return new TextureCubeMap();\r\n },\r\n\r\n setImage: function(imageFace, img, imageFormat) {\r\n var face = imageFace;\r\n\r\n if (typeof face === 'string') face = Texture[face];\r\n\r\n this._images[face].setImage(img, imageFormat);\r\n\r\n this.setImageFormat(imageFormat);\r\n this.setTextureSize(this._images[face].getWidth(), this._images[face].getHeight());\r\n\r\n this._textureNull = false;\r\n this.dirty();\r\n },\r\n\r\n getImage: function(face) {\r\n return this._images[face].getImage();\r\n },\r\n\r\n initCubemapContent: function(gl) {\r\n var internalFormat = this._internalFormat;\r\n\r\n this.applyTexImage2D(\r\n gl,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_X,\r\n 0,\r\n internalFormat,\r\n this._textureWidth,\r\n this._textureHeight,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n null\r\n );\r\n\r\n this.applyTexImage2D(\r\n gl,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_X,\r\n 0,\r\n internalFormat,\r\n this._textureWidth,\r\n this._textureHeight,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n null\r\n );\r\n\r\n this.applyTexImage2D(\r\n gl,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_Y,\r\n 0,\r\n internalFormat,\r\n this._textureWidth,\r\n this._textureHeight,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n null\r\n );\r\n\r\n this.applyTexImage2D(\r\n gl,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,\r\n 0,\r\n internalFormat,\r\n this._textureWidth,\r\n this._textureHeight,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n null\r\n );\r\n\r\n this.applyTexImage2D(\r\n gl,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_Z,\r\n 0,\r\n internalFormat,\r\n this._textureWidth,\r\n this._textureHeight,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n null\r\n );\r\n\r\n this.applyTexImage2D(\r\n gl,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,\r\n 0,\r\n internalFormat,\r\n this._textureWidth,\r\n this._textureHeight,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n null\r\n );\r\n\r\n return true;\r\n },\r\n\r\n // handle mipmap logic, if images for mipmap are provided or not\r\n generateMipmap: function(gl, target) {\r\n if (!this.hasMipmapFilter()) return;\r\n\r\n // manual mipmap provided\r\n if (this._images[Texture.TEXTURE_CUBE_MAP_POSITIVE_X].hasMipmap()) {\r\n for (var face = 0; face < 6; face++) {\r\n var faceImage = this._images[Texture.TEXTURE_CUBE_MAP_POSITIVE_X + face];\r\n if (!faceImage.hasMipmap()) {\r\n notify.error('mipmap not set correctly for TextureCubemap');\r\n }\r\n\r\n var internalFormat = this._internalFormat;\r\n for (var level = 1; level < faceImage.getMipmap().length; level++) {\r\n var size = faceImage.getMipmap()[level].getWidth();\r\n\r\n this.applyTexImage2D(\r\n gl,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_X + face,\r\n level,\r\n internalFormat,\r\n size,\r\n size,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n faceImage.getMipmap()[level].getImage()\r\n );\r\n }\r\n }\r\n } else {\r\n // automatic mipmap\r\n gl.generateMipmap(target);\r\n }\r\n\r\n this._dirtyMipmap = false;\r\n },\r\n\r\n applyImageTarget: function(gl, internalFormat, target) {\r\n var faceImage = this._images[target];\r\n\r\n if (!faceImage.getImage()) return 0;\r\n\r\n if (!faceImage.isReady()) return 0;\r\n\r\n if (!faceImage.isDirty()) return 1;\r\n\r\n this.setTextureSize(faceImage.getWidth(), faceImage.getHeight());\r\n\r\n faceImage.setDirty(false);\r\n\r\n if (faceImage.isTypedArray()) {\r\n this.applyTexImage2D(\r\n gl,\r\n target,\r\n 0,\r\n internalFormat,\r\n this._textureWidth,\r\n this._textureHeight,\r\n 0,\r\n internalFormat,\r\n this._type,\r\n faceImage.getImage()\r\n );\r\n } else {\r\n this.applyTexImage2D(\r\n gl,\r\n target,\r\n 0,\r\n internalFormat,\r\n internalFormat,\r\n this._type,\r\n faceImage.getImage()\r\n );\r\n }\r\n\r\n // release here only if no mipmap\r\n if (this._unrefImageDataAfterApply && !(this.hasMipmap() && faceImage.hasMipmap())) {\r\n faceImage.release();\r\n }\r\n\r\n return 1;\r\n },\r\n\r\n initCubemapContentImage: function(gl) {\r\n var internalFormat = this._internalFormat;\r\n var valid = 0;\r\n valid += this.applyImageTarget(gl, internalFormat, gl.TEXTURE_CUBE_MAP_POSITIVE_X);\r\n valid += this.applyImageTarget(gl, internalFormat, gl.TEXTURE_CUBE_MAP_NEGATIVE_X);\r\n\r\n valid += this.applyImageTarget(gl, internalFormat, gl.TEXTURE_CUBE_MAP_POSITIVE_Y);\r\n valid += this.applyImageTarget(gl, internalFormat, gl.TEXTURE_CUBE_MAP_NEGATIVE_Y);\r\n\r\n valid += this.applyImageTarget(gl, internalFormat, gl.TEXTURE_CUBE_MAP_POSITIVE_Z);\r\n valid += this.applyImageTarget(gl, internalFormat, gl.TEXTURE_CUBE_MAP_NEGATIVE_Z);\r\n\r\n if (valid === 6) return true;\r\n\r\n return false;\r\n },\r\n\r\n apply: function(state) {\r\n var gl = state.getGraphicContext();\r\n // if need to release the texture\r\n if (this._dirtyTextureObject) {\r\n this.releaseGLObjects();\r\n this.setGraphicContext(gl);\r\n }\r\n\r\n if (this._textureObject !== undefined && !this.isDirty()) {\r\n this._textureObject.bind(gl);\r\n\r\n // If we have modified the texture via Rtt or texSubImage2D and _need_ updated mipmaps,\r\n // then we must regenerate the mipmaps explicitely.\r\n // In all other cases, don't set this flag because it can be costly\r\n if (this.isDirtyMipmap()) {\r\n this.generateMipmap(gl, this._textureTarget);\r\n }\r\n } else if (this._textureNull) {\r\n gl.bindTexture(this._textureTarget, null);\r\n } else {\r\n if (!this._textureObject) {\r\n // must be called before init\r\n this.computeTextureFormat();\r\n\r\n this.init(state);\r\n }\r\n this._textureObject.bind(gl);\r\n\r\n var valid;\r\n\r\n // no images it's must be a cubemap filled from rtt\r\n if (!this._images[Texture.TEXTURE_CUBE_MAP_POSITIVE_X].getImage()) {\r\n valid = this.initCubemapContent(gl);\r\n } else {\r\n valid = this.initCubemapContentImage(gl);\r\n }\r\n\r\n if (valid) {\r\n this._dirty = false;\r\n this.applyFilterParameter(gl, this._textureTarget);\r\n this.generateMipmap(gl, this._textureTarget);\r\n }\r\n } // render to cubemap not yet implemented\r\n }\r\n }),\r\n 'osg',\r\n 'TextureCubeMap'\r\n);\r\n\r\nexport default TextureCubeMap;","import primitiveSet from './primitiveSet';\r\nimport DrawElements from './DrawElements';\r\nimport DrawArrays from './DrawArrays';\r\n\r\n// This class can be used to visit all the triangles of a geometry\r\nvar TriangleIndexFunctor = function() {};\r\n\r\nvar functorDrawElements = (TriangleIndexFunctor.functorDrawElements = []);\r\nvar functorDrawArrays = (TriangleIndexFunctor.functorDrawArrays = []);\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLES] = function(offset, count, indexes, cb) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; i += 3) {\r\n cb(indexes[i], indexes[i + 1], indexes[i + 2]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLE_STRIP] = function(offset, count, indexes, cb) {\r\n for (var i = 2, j = offset; i < count; ++i, ++j) {\r\n if (i % 2) cb(indexes[j], indexes[j + 2], indexes[j + 1]);\r\n else cb(indexes[j], indexes[j + 1], indexes[j + 2]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLE_FAN] = function(offset, count, indexes, cb) {\r\n var first = indexes[offset];\r\n for (var i = 2, j = offset + 1; i < count; ++i, ++j) {\r\n cb(first, indexes[j], indexes[j + 1]);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLES] = function(first, count, cb) {\r\n for (var i = 2, pos = first; i < count; i += 3, pos += 3) {\r\n cb(pos, pos + 1, pos + 2);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLE_STRIP] = function(first, count, cb) {\r\n for (var i = 2, pos = first; i < count; ++i, ++pos) {\r\n if (i % 2) cb(pos, pos + 2, pos + 1);\r\n else cb(pos, pos + 1, pos + 2);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLE_FAN] = function(first, count, cb) {\r\n for (var i = 2, pos = first + 1; i < count; ++i, ++pos) {\r\n cb(first, pos, pos + 1);\r\n }\r\n};\r\n\r\nTriangleIndexFunctor.prototype = {\r\n // You feed it with a callback that will be called for each triangle\r\n // (with the 3 indexes of vertices as arguments)\r\n init: function(geom, cb) {\r\n this._geom = geom;\r\n this._cb = cb;\r\n },\r\n\r\n apply: function() {\r\n var geom = this._geom;\r\n var primitives = geom.getPrimitiveSetList();\r\n if (!primitives) return;\r\n\r\n var cb = this._cb;\r\n var cbFunctor;\r\n\r\n var nbPrimitives = primitives.length;\r\n for (var i = 0; i < nbPrimitives; i++) {\r\n var primitive = primitives[i];\r\n if (primitive instanceof DrawElements) {\r\n cbFunctor = functorDrawElements[primitive.getMode()];\r\n if (cbFunctor) {\r\n var indexes = primitive.indices.getElements();\r\n cbFunctor(\r\n primitive.getFirst() / indexes.BYTES_PER_ELEMENT,\r\n primitive.getCount(),\r\n indexes,\r\n cb\r\n );\r\n }\r\n } else if (primitive instanceof DrawArrays) {\r\n cbFunctor = functorDrawArrays[primitive.getMode()];\r\n if (cbFunctor) {\r\n cbFunctor(primitive.getFirst(), primitive.getCount(), cb);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default TriangleIndexFunctor;","import AutoTransform from './AutoTransform';\r\nimport BillboardAttribute from './BillboardAttribute';\r\nimport BlendColor from './BlendColor';\r\nimport BlendFunc from './BlendFunc';\r\nimport BoundingBox from './BoundingBox';\r\nimport BoundingSphere from './BoundingSphere';\r\nimport BufferArray from './BufferArray';\r\nimport BufferArrayProxy from './BufferArrayProxy';\r\nimport Camera from './Camera';\r\nimport ColorMask from './ColorMask';\r\nimport ComputeBoundsVisitor from './ComputeBoundsVisitor';\r\nimport ComputeMatrixFromNodePath from './computeMatrixFromNodePath';\r\nimport CullFace from './CullFace';\r\nimport FrontFace from './FrontFace';\r\nimport CullingSet from './CullingSet';\r\nimport CullSettings from './CullSettings';\r\nimport CullStack from './CullStack';\r\nimport CullVisitor from './CullVisitor';\r\nimport Depth from './Depth';\r\nimport DrawArrayLengths from './DrawArrayLengths';\r\nimport DrawArrays from './DrawArrays';\r\nimport DrawElements from './DrawElements';\r\nimport EllipsoidModel from './EllipsoidModel';\r\nimport FrameBufferObject from './FrameBufferObject';\r\nimport FrameStamp from './FrameStamp';\r\nimport Geometry from './Geometry';\r\nimport { glm } from './glMatrix';\r\nimport GLObject from './GLObject';\r\nimport Image from './Image';\r\nimport ImageStream from './ImageStream';\r\nimport KdTree from './KdTree';\r\nimport KdTreeBuilder from './KdTreeBuilder';\r\nimport Light from './Light';\r\nimport LightSource from './LightSource';\r\nimport LineWidth from './LineWidth';\r\nimport Lod from './Lod';\r\nimport Material from './Material';\r\nimport osgjsMath from './math';\r\nimport MatrixTransform from './MatrixTransform';\r\nimport PooledResource from './PooledResource';\r\nimport PooledArray from './PooledArray';\r\nimport PooledMap from './PooledMap';\r\nimport Node from './Node';\r\nimport NodeVisitor from './NodeVisitor';\r\nimport notify from './notify';\r\nimport Object from './Object';\r\nimport Options from './Options';\r\nimport PagedLOD from './PagedLOD';\r\nimport Polytope from './Polytope';\r\nimport PointSizeAttribute from './PointSizeAttribute';\r\nimport Plane from './Plane';\r\nimport primitiveFunctor from './primitiveFunctor';\r\nimport primitiveIndexFunctor from './primitiveIndexFunctor';\r\nimport primitiveSet from './primitiveSet';\r\nimport Program from './Program';\r\nimport Projection from './Projection';\r\nimport RenderBin from './RenderBin';\r\nimport RenderLeaf from './RenderLeaf';\r\nimport RenderStage from './RenderStage';\r\nimport Shader from './Shader';\r\nimport Shape from './shape';\r\nimport StackObjectPairPool from './StackObjectPairPool';\r\nimport State from './State';\r\nimport StateAttribute from './StateAttribute';\r\nimport StateGraph from './StateGraph';\r\nimport StateSet from './StateSet';\r\nimport Switch from './Switch';\r\nimport Texture from './Texture';\r\nimport TextureCubeMap from './TextureCubeMap';\r\nimport Transform from './Transform';\r\nimport TriangleIndexFunctor from './TriangleIndexFunctor';\r\nimport Uniform from './Uniform';\r\nimport UpdateVisitor from './UpdateVisitor';\r\nimport utils from './utils';\r\nimport Viewport from './Viewport';\r\nimport Scissor from './Scissor';\r\nimport TransformEnums from './transformEnums';\r\nimport Timer from './Timer';\r\nimport TimerGPU from './TimerGPU';\r\nimport VertexArrayObject from './VertexArrayObject';\r\nimport WebGLCaps from './WebGLCaps';\r\n\r\nvar osg = {};\r\nosg.AutoTransform = AutoTransform;\r\nosg.BillboardAttribute = BillboardAttribute;\r\nosg.BlendColor = BlendColor;\r\nosg.BlendFunc = BlendFunc;\r\nosg.BoundingBox = BoundingBox;\r\nosg.BoundingSphere = BoundingSphere;\r\nosg.BufferArray = BufferArray;\r\nosg.BufferArrayProxy = BufferArrayProxy;\r\nosg.ColorMask = ColorMask;\r\nosg.Camera = Camera;\r\nosg.ColorMask = ColorMask;\r\nosg.ComputeBoundsVisitor = ComputeBoundsVisitor;\r\nutils.objectMix(osg, ComputeMatrixFromNodePath);\r\nosg.CullFace = CullFace;\r\nosg.FrontFace = FrontFace;\r\nosg.CullingSet = CullingSet;\r\nosg.CullSettings = CullSettings;\r\nosg.CullStack = CullStack;\r\nosg.CullVisitor = CullVisitor;\r\nosg.Depth = Depth;\r\nosg.DrawArrayLengths = DrawArrayLengths;\r\nosg.DrawArrays = DrawArrays;\r\nosg.DrawElements = DrawElements;\r\nosg.EllipsoidModel = EllipsoidModel;\r\nosg.WGS_84_RADIUS_EQUATOR = EllipsoidModel.WGS_84_RADIUS_EQUATOR;\r\nosg.WGS_84_RADIUS_POLAR = EllipsoidModel.WGS_84_RADIUS_POLAR;\r\nosg.FrameBufferObject = FrameBufferObject;\r\nosg.FrameStamp = FrameStamp;\r\nosg.Geometry = Geometry;\r\nosg.GLObject = GLObject;\r\nosg.Image = Image;\r\nosg.ImageStream = ImageStream;\r\nosg.KdTree = KdTree;\r\nosg.KdTreeBuilder = KdTreeBuilder;\r\nosg.Light = Light;\r\nosg.LightSource = LightSource;\r\nosg.LineWidth = LineWidth;\r\nosg.Lod = Lod;\r\nosg.Material = Material;\r\nutils.objectMix(osg, osgjsMath);\r\nosg.MatrixTransform = MatrixTransform;\r\nosg.PooledResource = PooledResource;\r\nosg.PooledArray = PooledArray;\r\nosg.PooledMap = PooledMap;\r\nosg.Node = Node;\r\nosg.NodeVisitor = NodeVisitor;\r\nutils.objectMix(osg, notify);\r\nosg.Object = Object;\r\nosg.Options = Options;\r\nosg.PagedLOD = PagedLOD;\r\nosg.Plane = Plane;\r\nosg.PointSizeAttribute = PointSizeAttribute;\r\nosg.Polytope = Polytope;\r\nosg.primitiveSet = primitiveSet;\r\nosg.primitiveFunctor = primitiveFunctor;\r\nosg.primitiveIndexFunctor = primitiveIndexFunctor;\r\nosg.Program = Program;\r\nosg.Projection = Projection;\r\nosg.RenderBin = RenderBin;\r\nosg.RenderLeaf = RenderLeaf;\r\nosg.RenderStage = RenderStage;\r\nosg.Shader = Shader;\r\nutils.objectMix(osg, Shape);\r\nosg.StackObjectPairPool = StackObjectPairPool;\r\nosg.State = State;\r\nosg.StateAttribute = StateAttribute;\r\nosg.StateGraph = StateGraph;\r\nosg.StateSet = StateSet;\r\nosg.Scissor = Scissor;\r\nosg.Switch = Switch;\r\nosg.Texture = Texture;\r\nosg.TextureCubeMap = TextureCubeMap;\r\nosg.Transform = Transform;\r\nosg.TriangleIndexFunctor = TriangleIndexFunctor;\r\nosg.Uniform = Uniform;\r\nosg.UpdateVisitor = UpdateVisitor;\r\nutils.objectMix(osg, utils);\r\nosg.Viewport = Viewport;\r\nosg.VertexArrayObject = VertexArrayObject;\r\nosg.vec2 = glm.vec2;\r\nosg.vec3 = glm.vec3;\r\nosg.vec4 = glm.vec4;\r\nosg.quat = glm.quat;\r\nosg.mat3 = glm.mat3;\r\nosg.mat4 = glm.mat4;\r\n\r\nosg.Transform.RELATIVE_RF = TransformEnums.RELATIVE_RF;\r\nosg.Transform.ABSOLUTE_RF = TransformEnums.ABSOLUTE_RF;\r\nosg.Timer = Timer;\r\nosg.TimerGPU = TimerGPU;\r\nosg.WebGLCaps = WebGLCaps;\r\n\r\nexport default osg;\r\n","var PooledResource = function(createFunction) {\r\n this._createFunction = createFunction;\r\n this._pool = [];\r\n this._length = 0;\r\n};\r\n\r\nPooledResource.prototype = {\r\n clean: function() {\r\n this._pool.length = 0;\r\n this._length = 0;\r\n },\r\n getLength: function() {\r\n return this._length;\r\n },\r\n reset: function() {\r\n this._length = 0;\r\n },\r\n /**\r\n * Creates or returns an existing object.\r\n * The returned object could contain invalid data from previous object values. User is responsible to reset/init the returned object for its (re)use.\r\n */\r\n getOrCreateObject: function() {\r\n var obj;\r\n if (this._length === this._pool.length) {\r\n obj = this._createFunction();\r\n this._pool.push(obj);\r\n } else {\r\n obj = this._pool[this._length];\r\n }\r\n this._length++;\r\n return obj;\r\n },\r\n forEach: function(func) {\r\n for (var i = 0; i < this._length; i++) func(this._pool[i]);\r\n }\r\n};\r\n\r\nexport default PooledResource;\r\n","import primitiveSet from './primitiveSet';\r\nimport DrawElements from './DrawElements';\r\nimport DrawArrays from './DrawArrays';\r\n\r\n/**\r\n * PrimitiveIndexFunctor emulates the TemplatePrimitiveIndexFunctor class in OSG and can\r\n * be used to get access to the vertices that compose the things drawn by osgjs.\r\n *\r\n * You have to feed it with an object that references 3 callbacks :\r\n *\r\n * var myObject = {\r\n * operatorPoint : function ( v ) { }, // Do your point operations here\r\n * operatorLine : function ( v1, v2 ){ }, // Do you line operations here\r\n * operatorTriangle : function ( v1, v2, v3 ) { } // Do your triangle operations here\r\n * };\r\n *\r\n */\r\n\r\nvar functorDrawElements = [];\r\nvar functorDrawArrays = [];\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLES] = function(offset, count, indexes, cb) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; i += 3) {\r\n cb.operatorTriangle(indexes[i], indexes[i + 1], indexes[i + 2]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLE_STRIP] = function(offset, count, indexes, cb) {\r\n for (var i = 2, j = offset; i < count; ++i, ++j) {\r\n if (i % 2) cb.operatorTriangle(indexes[j], indexes[j + 2], indexes[j + 1]);\r\n else cb.operatorTriangle(indexes[j], indexes[j + 1], indexes[j + 2]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.TRIANGLE_FAN] = function(offset, count, indexes, cb) {\r\n var first = indexes[offset];\r\n for (var i = 2, j = offset + 1; i < count; ++i, ++j) {\r\n cb.operatorTriangle(first, indexes[j], indexes[j + 1]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.POINTS] = function(offset, count, indexes, cb) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; ++i) {\r\n cb.operatorPoint(indexes[i]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.LINES] = function(offset, count, indexes, cb) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; i += 2) {\r\n cb.operatorLine(indexes[i], indexes[i + 1]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.LINE_STRIP] = function(offset, count, indexes, cb) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; ++i) {\r\n cb.operatorLine(indexes[i], indexes[i + 1]);\r\n }\r\n};\r\n\r\nfunctorDrawElements[primitiveSet.LINE_LOOP] = function(offset, count, indexes, cb) {\r\n var end = offset + count;\r\n for (var i = offset; i < end; ++i) {\r\n cb.operatorLine(indexes[i], indexes[i + 1]);\r\n }\r\n cb.operatorLine(indexes[indexes.length - 1], indexes[0]);\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLES] = function(first, count, cb) {\r\n for (var i = 2, pos = first; i < count; i += 3, pos += 3) {\r\n cb.operatorTriangle(pos, pos + 1, pos + 2);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLE_STRIP] = function(first, count, cb) {\r\n for (var i = 2, pos = first; i < count; ++i, ++pos) {\r\n if (i % 2) cb.operatorTriangle(pos, pos + 2, pos + 1);\r\n else cb.operatorTriangle(pos, pos + 1, pos + 2);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.TRIANGLE_FAN] = function(first, count, cb) {\r\n for (var i = 2, pos = first + 1; i < count; ++i, ++pos) {\r\n cb.operatorTriangle(first, pos, pos + 1);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.POINTS] = function(first, count, cb) {\r\n for (var i = 0, pos = first; i < count; ++i, ++pos) {\r\n cb.operatorPoint(pos);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.LINES] = function(first, count, cb) {\r\n for (var i = 1, pos = first; i < count; i += 2, pos += 2) {\r\n cb.operatorLine(pos, pos + 1);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.LINE_STRIP] = function(first, count, cb) {\r\n for (var i = 1, pos = first; i < count; ++i, ++pos) {\r\n cb.operatorLine(pos, pos + 1);\r\n }\r\n};\r\n\r\nfunctorDrawArrays[primitiveSet.LINE_LOOP] = function(first, count, cb) {\r\n for (var i = 1, pos = first; i < count; ++i, ++pos) {\r\n cb.operatorLine(pos, pos + 1);\r\n }\r\n cb.operatorLine(first + count - 1, first);\r\n};\r\n\r\nvar primitiveIndexFunctor = function(geom, cb) {\r\n var primitives = geom.getPrimitiveSetList();\r\n if (!primitives) return;\r\n\r\n var cbFunctor;\r\n\r\n var nbPrimitives = primitives.length;\r\n for (var i = 0; i < nbPrimitives; i++) {\r\n var primitive = primitives[i];\r\n if (primitive instanceof DrawElements) {\r\n cbFunctor = functorDrawElements[primitive.getMode()];\r\n if (cbFunctor) {\r\n var indexes = primitive.indices.getElements();\r\n cbFunctor(\r\n primitive.getFirst() / indexes.BYTES_PER_ELEMENT,\r\n primitive.getCount(),\r\n indexes,\r\n cb\r\n );\r\n }\r\n } else if (primitive instanceof DrawArrays) {\r\n cbFunctor = functorDrawArrays[primitive.getMode()];\r\n if (cbFunctor) {\r\n cbFunctor(primitive.getFirst(), primitive.getCount(), cb);\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default primitiveIndexFunctor;\r\n","import Object from './Object';\r\nimport StateAttribute from './StateAttribute';\r\nimport utils from './utils';\r\n\r\n/** Stores a set of modes and attributes which represent a set of OpenGL state.\r\n * Notice that a \\c StateSet contains just a subset of the whole OpenGL state.\r\n *
In OSG, each \\c Drawable and each \\c Node has a reference to a\r\n * \\c StateSet. These StateSets can be shared between\r\n * different Drawables and Nodes (that is, several\r\n * Drawables and Nodes can reference the same \\c StateSet).\r\n * Indeed, this practice is recommended whenever possible,\r\n * as this minimizes expensive state changes in the graphics pipeline.\r\n */\r\n\r\nvar StateSet = function() {\r\n Object.call(this);\r\n\r\n this._parents = [];\r\n this._attributeArray = [];\r\n this._textureAttributeArrayList = [];\r\n\r\n // cache what is really used\r\n this._activeTextureAttributeUnit = [];\r\n this._activeAttribute = [];\r\n this._activeTextureAttribute = [];\r\n\r\n this._binName = undefined;\r\n this._binNumber = 0;\r\n\r\n // put the shader generator name in an AttributePair\r\n // so that we can use the mask value\r\n this._shaderGeneratorPair = null;\r\n\r\n this._updateCallbackList = [];\r\n\r\n this.uniforms = {};\r\n\r\n this._hasUniform = false;\r\n\r\n this._drawID = -1; // used by the RenderLeaf to decide if it should apply the stateSet\r\n};\r\n\r\nStateSet.AttributePair = function(attr, value) {\r\n this._object = attr;\r\n this._value = value;\r\n};\r\n\r\nStateSet.AttributePair.prototype = {\r\n getShaderGeneratorName: function() {\r\n return this._object;\r\n },\r\n getAttribute: function() {\r\n return this._object;\r\n },\r\n getUniform: function() {\r\n return this._object;\r\n },\r\n getValue: function() {\r\n return this._value;\r\n }\r\n};\r\n\r\nutils.createPrototypeObject(\r\n StateSet,\r\n utils.objectInherit(Object.prototype, {\r\n setDrawID: function(id) {\r\n this._drawID = id;\r\n },\r\n\r\n getDrawID: function() {\r\n return this._drawID;\r\n },\r\n\r\n getAttributePair: function(attribute, value) {\r\n return new StateSet.AttributePair(attribute, value);\r\n },\r\n\r\n addUniform: function(uniform, originalMode) {\r\n var mode = originalMode !== undefined ? originalMode : StateAttribute.ON;\r\n var name = uniform.getName();\r\n this.uniforms[name] = this.getAttributePair(uniform, mode);\r\n this._hasUniform = true;\r\n },\r\n\r\n addParent: function(node) {\r\n this._parents.push(node);\r\n },\r\n\r\n removeParent: function(node) {\r\n var idx = this._parents.indexOf(node);\r\n if (idx === -1) return;\r\n this._parents.splice(idx, 1);\r\n },\r\n\r\n removeUniform: function(uniform) {\r\n this.removeUniformByName(uniform.getName());\r\n },\r\n\r\n removeUniformByName: function(uniformName) {\r\n delete this.uniforms[uniformName];\r\n this._hasUniform = window.Object.keys(this.uniforms).length ? true : false;\r\n },\r\n\r\n hasUniform: function() {\r\n return this._hasUniform;\r\n },\r\n\r\n getUniform: function(uniform) {\r\n var uniformMap = this.uniforms;\r\n if (uniformMap[uniform]) return uniformMap[uniform].getAttribute();\r\n return undefined;\r\n },\r\n\r\n getUniformList: function() {\r\n return this.uniforms;\r\n },\r\n\r\n setTextureAttributeAndModes: function(unit, attribute, mode) {\r\n this._setTextureAttribute(\r\n unit,\r\n this.getAttributePair(attribute, mode !== undefined ? mode : StateAttribute.ON)\r\n );\r\n },\r\n\r\n getNumTextureAttributeLists: function() {\r\n return this._textureAttributeArrayList.length;\r\n },\r\n\r\n getTextureAttribute: function(unit, typeMember) {\r\n var index = utils.getTextureIdFromTypeMember(typeMember);\r\n if (index === undefined || !this._hasTextureAttribute(unit, index)) return undefined;\r\n\r\n var textureArray = this._textureAttributeArrayList[unit];\r\n if (textureArray[index]) return textureArray[index].getAttribute();\r\n return undefined;\r\n },\r\n\r\n removeTextureAttribute: function(unit, typeMember) {\r\n var index = utils.getTextureIdFromTypeMember(typeMember);\r\n if (index === undefined || !this._hasTextureAttribute(unit, index)) return;\r\n\r\n var textureArray = this._textureAttributeArrayList[unit];\r\n\r\n textureArray[index] = undefined;\r\n this._computeValidTextureUnit();\r\n },\r\n\r\n getAttribute: function(typeMember) {\r\n var index = utils.getIdFromTypeMember(typeMember);\r\n if (index === undefined || !this._hasAttribute(index)) return undefined;\r\n\r\n return this._attributeArray[index].getAttribute();\r\n },\r\n\r\n setAttributeAndModes: function(attribute, mode) {\r\n this._setAttribute(\r\n this.getAttributePair(attribute, mode !== undefined ? mode : StateAttribute.ON)\r\n );\r\n },\r\n\r\n setAttribute: function(attribute, mode) {\r\n this.setAttributeAndModes(attribute, mode);\r\n },\r\n\r\n // TODO: check if it's an attribute type or a attribute to remove it\r\n removeAttribute: function(typeMember) {\r\n var index = utils.getIdFromTypeMember(typeMember);\r\n if (!this._hasAttribute(index)) return;\r\n\r\n this._attributeArray[index] = undefined;\r\n this._computeValidAttribute();\r\n },\r\n\r\n setRenderingHint: function(hint) {\r\n if (hint === 'OPAQUE_BIN') {\r\n this.setRenderBinDetails(0, 'RenderBin');\r\n } else if (hint === 'TRANSPARENT_BIN') {\r\n this.setRenderBinDetails(10, 'DepthSortedBin');\r\n } else {\r\n this.setRenderBinDetails(0, '');\r\n }\r\n },\r\n\r\n getUpdateCallbackList: function() {\r\n return this._updateCallbackList;\r\n },\r\n\r\n removeUpdateCallback: function(cb) {\r\n var idx = this._updateCallbackList.indexOf(cb);\r\n if (idx === -1) return;\r\n this._updateCallbackList.splice(idx, 1);\r\n\r\n if (this._updateCallbackList.length === 0) {\r\n var parents = this._parents;\r\n for (var i = 0, l = parents.length; i < l; i++) {\r\n var parent = parents[i];\r\n parent.setNumChildrenRequiringUpdateTraversal(\r\n parent.getNumChildrenRequiringUpdateTraversal() - 1\r\n );\r\n }\r\n }\r\n },\r\n\r\n requiresUpdateTraversal: function() {\r\n return !!this._updateCallbackList.length;\r\n },\r\n\r\n addUpdateCallback: function(cb) {\r\n var dontNoticeParents = Boolean(this._updateCallbackList.length);\r\n this._updateCallbackList.push(cb);\r\n\r\n // parent alreay know we have update callback\r\n if (dontNoticeParents) return;\r\n\r\n var parents = this._parents;\r\n for (var i = 0, l = parents.length; i < l; i++) {\r\n var parent = parents[i];\r\n parent.setNumChildrenRequiringUpdateTraversal(\r\n parent.getNumChildrenRequiringUpdateTraversal() + 1\r\n );\r\n }\r\n },\r\n\r\n hasUpdateCallback: function(cb) {\r\n return this._updateCallbackList.indexOf(cb) !== -1;\r\n },\r\n\r\n setRenderBinDetails: function(num, binName) {\r\n this._binNumber = num;\r\n this._binName = binName;\r\n },\r\n getAttributeMap: function() {\r\n // not efficieant at all but not really critique\r\n var obj = {};\r\n for (var i = 0, l = this._attributeArray.length; i < l; i++) {\r\n var attributePair = this._attributeArray[i];\r\n if (!attributePair) continue;\r\n var attribute = attributePair.getAttribute();\r\n obj[attribute.getTypeMember()] = attributePair;\r\n }\r\n return obj;\r\n },\r\n getBinNumber: function() {\r\n return this._binNumber;\r\n },\r\n getBinName: function() {\r\n return this._binName;\r\n },\r\n setBinNumber: function(binNum) {\r\n this._binNumber = binNum;\r\n },\r\n setBinName: function(binName) {\r\n this._binName = binName;\r\n },\r\n getAttributeList: function() {\r\n var attributeArray = this._attributeArray;\r\n var list = [];\r\n for (var i = 0, l = attributeArray.length; i < l; i++) {\r\n if (attributeArray[i]) list.push(attributeArray[i]);\r\n }\r\n return list;\r\n },\r\n setShaderGeneratorName: function(generatorName, mode) {\r\n this._shaderGeneratorPair = this.getAttributePair(\r\n generatorName,\r\n mode !== undefined ? mode : StateAttribute.ON\r\n );\r\n },\r\n getShaderGeneratorPair: function() {\r\n return this._shaderGeneratorPair;\r\n },\r\n getShaderGeneratorName: function() {\r\n return this._shaderGeneratorPair ?\r\n this._shaderGeneratorPair.getShaderGeneratorName() :\r\n undefined;\r\n },\r\n releaseGLObjects: function() {\r\n for (var i = 0, j = this._textureAttributeArrayList.length; i < j; i++) {\r\n var attribute = this.getTextureAttribute(i, 'Texture');\r\n if (attribute) attribute.releaseGLObjects();\r\n }\r\n var list = this.getAttributeList();\r\n for (var k = 0, l = list.length; k < l; k++) {\r\n // Remove only if we have releaseGLObject method.\r\n if (list[k]._object.releaseGLObjects) {\r\n list[k]._object.releaseGLObjects();\r\n }\r\n }\r\n },\r\n\r\n // for internal use, you should not call it directly\r\n _setTextureAttribute: function(unit, attributePair) {\r\n utils.arrayDense(unit, this._textureAttributeArrayList);\r\n if (!this._textureAttributeArrayList[unit]) this._textureAttributeArrayList[unit] = [];\r\n\r\n var index = utils.getOrCreateTextureStateAttributeTypeMemberIndex(\r\n attributePair.getAttribute()\r\n );\r\n utils.arrayDense(index, this._textureAttributeArrayList[unit]);\r\n\r\n this._textureAttributeArrayList[unit][index] = attributePair;\r\n this._computeValidTextureUnit();\r\n },\r\n\r\n _computeValidTextureUnit: function() {\r\n this._activeTextureAttributeUnit.length = 0;\r\n this._activeTextureAttribute.length = 0;\r\n var textureAttributeArrayList = this._textureAttributeArrayList;\r\n for (var i = 0, l = textureAttributeArrayList.length; i < l; i++) {\r\n var attributeList = textureAttributeArrayList[i];\r\n if (!attributeList || !attributeList.length) continue;\r\n var hasValidAttribute = false;\r\n for (var j = 0, k = attributeList.length; j < k; j++) {\r\n if (attributeList[j]) {\r\n hasValidAttribute = true;\r\n\r\n if (this._activeTextureAttribute.indexOf(j) === -1) {\r\n this._activeTextureAttribute.push(j);\r\n }\r\n }\r\n }\r\n\r\n if (hasValidAttribute) this._activeTextureAttributeUnit.push(i);\r\n }\r\n },\r\n _computeValidAttribute: function() {\r\n this._activeAttribute.length = 0;\r\n var attributeArray = this._attributeArray;\r\n for (var i = 0, l = attributeArray.length; i < l; i++) {\r\n if (attributeArray[i]) this._activeAttribute.push(i);\r\n }\r\n },\r\n // for internal use, you should not call it directly\r\n _setAttribute: function(attributePair) {\r\n var index = utils.getOrCreateStateAttributeTypeMemberIndex(\r\n attributePair.getAttribute()\r\n );\r\n utils.arrayDense(index, this._attributeArray);\r\n this._attributeArray[index] = attributePair;\r\n this._computeValidAttribute();\r\n },\r\n _hasAttribute: function(typeIndex) {\r\n if (typeIndex >= this._attributeArray.length) return false;\r\n return !!this._attributeArray[typeIndex];\r\n },\r\n _hasTextureAttribute: function(unit, typeIndex) {\r\n if (\r\n unit >= this._textureAttributeArrayList.length ||\r\n !this._textureAttributeArrayList[unit]\r\n )\r\n return false;\r\n if (typeIndex >= this._textureAttributeArrayList[unit].length) return false;\r\n return !!this._textureAttributeArrayList[unit][typeIndex];\r\n }\r\n }),\r\n 'osg',\r\n 'StateSet'\r\n);\r\n\r\nexport default StateSet;","import utils from './utils';\r\nimport Node from './Node';\r\nimport { mat4 } from './glMatrix';\r\nimport TransformEnums from './transformEnums';\r\n\r\n/**\r\n * Transform - base class for Transform type node ( Camera, MatrixTransform )\r\n * @class Transform\r\n * @inherits Node\r\n */\r\nvar Transform = function() {\r\n Node.call(this);\r\n this.referenceFrame = TransformEnums.RELATIVE_RF;\r\n};\r\n\r\n/** @lends Transform.prototype */\r\nutils.createPrototypeNode(\r\n Transform,\r\n utils.objectInherit(Node.prototype, {\r\n setReferenceFrame: function(value) {\r\n this.referenceFrame = value;\r\n },\r\n getReferenceFrame: function() {\r\n return this.referenceFrame;\r\n },\r\n\r\n computeBoundingSphere: (function() {\r\n var matrix = mat4.create();\r\n return function(bSphere) {\r\n Node.prototype.computeBoundingSphere.call(this, bSphere);\r\n if (!bSphere.valid()) {\r\n return bSphere;\r\n }\r\n\r\n mat4.identity(matrix);\r\n // local to local world (not Global World)\r\n this.computeLocalToWorldMatrix(matrix);\r\n bSphere.transformMat4(bSphere, matrix);\r\n return bSphere;\r\n };\r\n })()\r\n }),\r\n 'osg',\r\n 'Transform'\r\n);\r\n\r\nexport default Transform;","import notify from './notify';\r\n\r\n/**\r\n * Uniform manage variable used in glsl shader.\r\n * @class Uniform\r\n */\r\nvar Uniform = function(name) {\r\n this._data = undefined;\r\n this._transpose = false;\r\n this._glCall = '';\r\n this._cache = undefined;\r\n this._name = name;\r\n this._type = undefined;\r\n this._isMatrix = false;\r\n};\r\n\r\nUniform.isUniform = function(obj) {\r\n if (typeof obj === 'object' && window.Object.getPrototypeOf(obj) === Uniform.prototype) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/** @lends Uniform.prototype */\r\nUniform.prototype = {\r\n getName: function() {\r\n return this._name;\r\n },\r\n\r\n getType: function() {\r\n return this._type;\r\n },\r\n\r\n apply: function UniformApply(gl, location) {\r\n this._cache = gl[this._glCall];\r\n\r\n if (this._isMatrix) {\r\n this._cache.call(gl, location, this._transpose, this._data);\r\n } else {\r\n this._cache.call(gl, location, this._data);\r\n }\r\n },\r\n\r\n // no type checking, so array should be valid\r\n setInternalArray: function(array) {\r\n notify.warn(\r\n 'setInternalArray deprecated, please use getInternalArray instead: ' + array.length\r\n );\r\n this._data = array;\r\n },\r\n\r\n getInternalArray: function() {\r\n return this._data;\r\n },\r\n\r\n setFloat: function(f) {\r\n this._data[0] = f;\r\n },\r\n\r\n setFloat1: function(f) {\r\n this._data[0] = f[0];\r\n },\r\n\r\n setFloat2: function(f) {\r\n this._data[0] = f[0];\r\n this._data[1] = f[1];\r\n },\r\n\r\n setFloat3: function(f) {\r\n this._data[0] = f[0];\r\n this._data[1] = f[1];\r\n this._data[2] = f[2];\r\n },\r\n\r\n setFloat4: function(f) {\r\n this._data[0] = f[0];\r\n this._data[1] = f[1];\r\n this._data[2] = f[2];\r\n this._data[3] = f[3];\r\n },\r\n\r\n setFloat9: function(f) {\r\n this._data[0] = f[0];\r\n this._data[1] = f[1];\r\n this._data[2] = f[2];\r\n this._data[3] = f[3];\r\n this._data[4] = f[4];\r\n this._data[5] = f[5];\r\n this._data[6] = f[6];\r\n this._data[7] = f[7];\r\n this._data[8] = f[8];\r\n },\r\n\r\n setFloat16: function(f) {\r\n this._data[0] = f[0];\r\n this._data[1] = f[1];\r\n this._data[2] = f[2];\r\n this._data[3] = f[3];\r\n this._data[4] = f[4];\r\n this._data[5] = f[5];\r\n this._data[6] = f[6];\r\n this._data[7] = f[7];\r\n this._data[8] = f[8];\r\n this._data[9] = f[9];\r\n this._data[10] = f[10];\r\n this._data[11] = f[11];\r\n this._data[12] = f[12];\r\n this._data[13] = f[13];\r\n this._data[14] = f[14];\r\n this._data[15] = f[15];\r\n }\r\n};\r\nUniform.prototype.setVec2 = Uniform.prototype.setFloat2;\r\nUniform.prototype.setVec3 = Uniform.prototype.setFloat3;\r\nUniform.prototype.setVec4 = Uniform.prototype.setFloat4;\r\nUniform.prototype.setMatrix4 = Uniform.prototype.setFloat16;\r\nUniform.prototype.setMatrix3 = Uniform.prototype.setFloat9;\r\nUniform.prototype.setInt = Uniform.prototype.setFloat;\r\nUniform.prototype.setInt1 = Uniform.prototype.setFloat1;\r\nUniform.prototype.setInt2 = Uniform.prototype.setFloat2;\r\nUniform.prototype.setInt3 = Uniform.prototype.setFloat3;\r\nUniform.prototype.setInt4 = Uniform.prototype.setFloat4;\r\n\r\nvar createUniformX = function(\r\n dataOrName,\r\n nameOrNbItem,\r\n internalArray,\r\n glSignature,\r\n type,\r\n isMatrix\r\n) {\r\n var data = nameOrNbItem && nameOrNbItem.length ? dataOrName : undefined;\r\n var uniform = new Uniform(data !== undefined ? nameOrNbItem : dataOrName);\r\n\r\n uniform._data = internalArray;\r\n\r\n if (data !== undefined) {\r\n if (data.length) {\r\n for (var i = 0, nbElts = data.length; i < nbElts; ++i) uniform._data[i] = data[i];\r\n } else {\r\n uniform._data[0] = data;\r\n }\r\n }\r\n\r\n uniform._glCall = glSignature;\r\n uniform._type = type;\r\n uniform._isMatrix = !!isMatrix;\r\n return uniform;\r\n};\r\n\r\nvar createMat2 = function(nbItem) {\r\n var out = new Float32Array(nbItem * 4);\r\n for (var i = 0; i < out.length; i += 4) out[i] = out[i + 3] = 1.0;\r\n return out;\r\n};\r\n\r\nvar createMat3 = function(nbItem) {\r\n var out = new Float32Array(nbItem * 9);\r\n for (var i = 0; i < out.length; i += 9) out[i] = out[i + 4] = out[i + 8] = 1.0;\r\n return out;\r\n};\r\n\r\nvar createMat4 = function(nbItem) {\r\n var out = new Float32Array(nbItem * 16);\r\n for (var i = 0; i < out.length; i += 16) out[i] = out[i + 5] = out[i + 10] = out[i + 15] = 1.0;\r\n return out;\r\n};\r\n\r\n// possibles signatures\r\n// name\r\n// data, name\r\n// name, nbItem\r\nvar _getNbItem = function(itemSize, dataOrName, nameOrNbItem) {\r\n if (nameOrNbItem && !nameOrNbItem.length) return nameOrNbItem; // name, nbItem\r\n if (typeof dataOrName !== 'string') return (dataOrName.length || 1) / itemSize; // data, name\r\n return 1; // name\r\n};\r\n\r\n// works also for float array but data must be given\r\nUniform.createFloat1 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Float32Array(1 * _getNbItem(1, dataOrName, nameOrNbItem)),\r\n 'uniform1fv',\r\n 'float'\r\n );\r\n};\r\nUniform.createFloat2 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Float32Array(2 * _getNbItem(2, dataOrName, nameOrNbItem)),\r\n 'uniform2fv',\r\n 'vec2'\r\n );\r\n};\r\nUniform.createFloat3 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Float32Array(3 * _getNbItem(3, dataOrName, nameOrNbItem)),\r\n 'uniform3fv',\r\n 'vec3'\r\n );\r\n};\r\nUniform.createFloat4 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Float32Array(4 * _getNbItem(4, dataOrName, nameOrNbItem)),\r\n 'uniform4fv',\r\n 'vec4'\r\n );\r\n};\r\n\r\nUniform.createInt1 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Int32Array(1 * _getNbItem(1, dataOrName, nameOrNbItem)),\r\n 'uniform1iv',\r\n 'int'\r\n );\r\n};\r\nUniform.createInt2 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Int32Array(2 * _getNbItem(2, dataOrName, nameOrNbItem)),\r\n 'uniform2iv',\r\n 'vec2i'\r\n );\r\n};\r\nUniform.createInt3 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Int32Array(3 * _getNbItem(3, dataOrName, nameOrNbItem)),\r\n 'uniform3iv',\r\n 'vec3i'\r\n );\r\n};\r\nUniform.createInt4 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n new Int32Array(4 * _getNbItem(4, dataOrName, nameOrNbItem)),\r\n 'uniform4iv',\r\n 'vec4i'\r\n );\r\n};\r\n\r\nUniform.createMatrix2 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n createMat2(_getNbItem(4, dataOrName, nameOrNbItem)),\r\n 'uniformMatrix2fv',\r\n 'mat2',\r\n true\r\n );\r\n};\r\n\r\nUniform.createMatrix3 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n createMat3(_getNbItem(9, dataOrName, nameOrNbItem)),\r\n 'uniformMatrix3fv',\r\n 'mat3',\r\n true\r\n );\r\n};\r\n\r\nUniform.createMatrix4 = function(dataOrName, nameOrNbItem) {\r\n return createUniformX(\r\n dataOrName,\r\n nameOrNbItem,\r\n createMat4(_getNbItem(16, dataOrName, nameOrNbItem)),\r\n 'uniformMatrix4fv',\r\n 'mat4',\r\n true\r\n );\r\n};\r\n\r\n// alias\r\nUniform.float = Uniform.createFloatArray = Uniform.createFloat = Uniform.createFloat1;\r\nUniform.vec2 = Uniform.createFloat2Array = Uniform.createFloat2;\r\nUniform.vec3 = Uniform.createFloat3Array = Uniform.createFloat3;\r\nUniform.vec4 = Uniform.createFloat4Array = Uniform.createFloat4;\r\n\r\nUniform.int = Uniform.createIntArray = Uniform.createInt = Uniform.createInt1;\r\nUniform.vec2i = Uniform.createInt2Array = Uniform.createInt2;\r\nUniform.vec3i = Uniform.createInt3Array = Uniform.createInt3;\r\nUniform.vec4i = Uniform.createInt4Array = Uniform.createInt4;\r\n\r\nUniform.mat2 = Uniform.createMat2Array = Uniform.createMat2 = Uniform.createMatrix2;\r\nUniform.mat3 = Uniform.createMat3Array = Uniform.createMat3 = Uniform.createMatrix3;\r\nUniform.mat4 = Uniform.createMat4Array = Uniform.createMat4 = Uniform.createMatrix4;\r\n\r\nexport default Uniform;","import utils from '../osg/utils';\r\nimport Object from '../osg/Object';\r\nimport MatrixTransform from '../osg/MatrixTransform';\r\n\r\n/**\r\n * AnimationUpdateCallback\r\n * @class AnimationUpdateCallback\r\n */\r\nvar AnimationUpdateCallback = function() {\r\n Object.call(this);\r\n};\r\n\r\n// check if the path is animated, it could be elsewhere though\r\nAnimationUpdateCallback.checkPathIsAnimated = function(path) {\r\n for (var i = 0, nbNodes = path.length; i < nbNodes; ++i) {\r\n var node = path[i];\r\n\r\n if (node instanceof MatrixTransform) {\r\n var ups = node.getUpdateCallbackList();\r\n for (var j = 0, nbUp = ups.length; j < nbUp; ++j) {\r\n if (ups[j] instanceof AnimationUpdateCallback) return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\n/** @lends AnimationUpdateCallback.prototype */\r\nutils.createPrototypeObject(\r\n AnimationUpdateCallback,\r\n utils.objectInherit(Object.prototype, {\r\n computeChannels: function() {},\r\n reset: function() {}\r\n }),\r\n 'osgAnimation',\r\n 'AnimationUpdateCallback'\r\n);\r\n\r\nexport default AnimationUpdateCallback;\r\n","import utils from '../osg/utils';\r\nimport CullSettings from '../osg/CullSettings';\r\nimport CullVisitor from '../osg/CullVisitor';\r\nimport Object from '../osg/Object';\r\nimport RenderStage from '../osg/RenderStage';\r\nimport State from '../osg/State';\r\nimport StateGraph from '../osg/StateGraph';\r\nimport { vec4 } from '../osg/glMatrix';\r\nimport osgShader from '../osgShader/osgShader';\r\nimport DisplayGraph from '../osgUtil/DisplayGraph';\r\n\r\nvar Renderer = function(camera) {\r\n Object.call(this);\r\n\r\n this._state = undefined;\r\n this._camera = camera;\r\n this._renderStage = undefined;\r\n this._stateGraph = undefined;\r\n\r\n this._frameStamp = undefined;\r\n\r\n this._previousCullsettings = new CullSettings();\r\n\r\n this.setDefaults();\r\n};\r\n\r\nRenderer.debugGraph = false;\r\n\r\nutils.createPrototypeObject(\r\n Renderer,\r\n utils.objectInherit(Object.prototype, {\r\n setDefaults: function() {\r\n this._state = new State(new osgShader.ShaderGeneratorProxy());\r\n\r\n this._cullVisitor = new CullVisitor();\r\n this._cullVisitor.setRenderer(this);\r\n this._stateGraph = new StateGraph();\r\n\r\n this.getCamera().setClearColor(vec4.create());\r\n this.setRenderStage(new RenderStage());\r\n\r\n var osg = require('../osg/osg').default;\r\n var stateSet = this.getCamera().getOrCreateStateSet();\r\n stateSet.setAttributeAndModes(new osg.Material());\r\n stateSet.setAttributeAndModes(new osg.Depth());\r\n stateSet.setAttributeAndModes(new osg.BlendFunc());\r\n stateSet.setAttributeAndModes(new osg.CullFace());\r\n stateSet.setAttributeAndModes(new osg.FrontFace());\r\n },\r\n\r\n getCullVisitor: function() {\r\n return this._cullVisitor;\r\n },\r\n\r\n setCullVisitor: function(cv) {\r\n if (cv && !cv.getRenderer()) cv.setRenderer(this);\r\n this._cullVisitor = cv;\r\n },\r\n\r\n setRenderStage: function(rs) {\r\n this._renderStage = rs;\r\n },\r\n\r\n getCamera: function() {\r\n return this._camera;\r\n },\r\n\r\n setFrameStamp: function(fs) {\r\n this._frameStamp = fs;\r\n },\r\n\r\n getFrameStamp: function() {\r\n return this._frameStamp;\r\n },\r\n\r\n getState: function() {\r\n return this._state;\r\n },\r\n\r\n setState: function(state) {\r\n this._state = state;\r\n },\r\n\r\n setGraphicContext: function(gc) {\r\n this._state.setGraphicContext(gc);\r\n },\r\n\r\n getGraphicContext: function() {\r\n return this._state.getGraphicContext();\r\n },\r\n\r\n cullAndDraw: function() {\r\n this.cull();\r\n this.draw();\r\n },\r\n\r\n cull: function() {\r\n var camera = this.getCamera();\r\n var view = camera.getView();\r\n\r\n this._cullVisitor.setFrameStamp(this._frameStamp);\r\n\r\n // reset stats\r\n this._cullVisitor.resetStats();\r\n\r\n // this part of code should be called for each view\r\n // right now, we dont support multi view\r\n\r\n // reset all stateGraph per frame\r\n StateGraph.reset();\r\n this._stateGraph.clean();\r\n\r\n this._renderStage.reset();\r\n\r\n this._cullVisitor.reset();\r\n this._cullVisitor.setStateGraph(this._stateGraph);\r\n this._cullVisitor.setRenderStage(this._renderStage);\r\n\r\n this._cullVisitor.pushStateSet(camera.getStateSet());\r\n\r\n // save cullSettings\r\n this._previousCullsettings.reset();\r\n this._previousCullsettings.setCullSettings(this._cullVisitor);\r\n this._cullVisitor.setCullSettings(camera);\r\n if (\r\n this._previousCullsettings.getSettingSourceOverrider() === this._cullVisitor &&\r\n this._previousCullsettings.getEnableFrustumCulling()\r\n ) {\r\n this._cullVisitor.setEnableFrustumCulling(true);\r\n }\r\n\r\n // Push reference on the projection stack, it means that if compute near/far\r\n // is activated, it will update the projection matrix of the camera\r\n this._cullVisitor.pushCameraModelViewProjectionMatrix(\r\n camera,\r\n camera.getViewMatrix(),\r\n camera.getProjectionMatrix()\r\n );\r\n\r\n // update bound\r\n camera.getBound();\r\n\r\n var light = view.getLight();\r\n var View = require('../osgViewer/View').default;\r\n\r\n if (light) {\r\n switch (view.getLightingMode()) {\r\n case View.LightingMode.HEADLIGHT:\r\n this._cullVisitor.addPositionedAttribute(null, light);\r\n break;\r\n\r\n case View.LightingMode.SKY_LIGHT:\r\n this._cullVisitor.addPositionedAttribute(camera.getViewMatrix(), light);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n var viewport = camera.getViewport();\r\n var scissor = camera.getScissor();\r\n\r\n this._cullVisitor.pushViewport(viewport);\r\n\r\n this._renderStage.setClearDepth(camera.getClearDepth());\r\n this._renderStage.setClearColor(camera.getClearColor());\r\n this._renderStage.setClearMask(camera.getClearMask());\r\n this._renderStage.setViewport(viewport);\r\n this._renderStage.setScissor(scissor);\r\n\r\n // pass de dbpager to the cullvisitor, so plod's can do the requests\r\n this._cullVisitor.setDatabaseRequestHandler(this._camera.getView().getDatabasePager());\r\n // dont add camera on the stack just traverse it\r\n this._cullVisitor.handleCullCallbacksAndTraverse(camera);\r\n\r\n // fix projection matrix if camera has near/far auto compute\r\n this._cullVisitor.popCameraModelViewProjectionMatrix(camera);\r\n\r\n // Important notes about near/far\r\n // If you are using the picking on the main camera and\r\n // you use only children sub camera for RTT, your\r\n // main camera will keep +/-infinity for near/far because\r\n // the computation of near/far is done by camera and use Geometry\r\n\r\n // restore previous state of the camera\r\n this._cullVisitor.setCullSettings(this._previousCullsettings);\r\n\r\n this._cullVisitor.popViewport();\r\n this._cullVisitor.popStateSet();\r\n\r\n this._renderStage.sort();\r\n },\r\n\r\n draw: function() {\r\n var state = this.getState();\r\n\r\n // important because cache are used in cullvisitor\r\n state.resetCacheFrame();\r\n\r\n // reset stats counter\r\n state.resetStats();\r\n\r\n this._renderStage.setCamera(this._camera);\r\n this._renderStage.draw(state);\r\n\r\n if (Renderer.debugGraph) {\r\n DisplayGraph.instance().createRenderGraph(this._renderStage);\r\n Renderer.debugGraph = false;\r\n }\r\n\r\n this._renderStage.setCamera(undefined);\r\n\r\n state.applyDefault();\r\n }\r\n }),\r\n 'osgViewer',\r\n 'Renderer'\r\n);\r\n\r\nexport default Renderer;","var FrameStamp = function() {\r\n this._frame = 0;\r\n this._startSimulation = 0.0;\r\n this._currentSimulation = 0.0;\r\n this._deltaTime = 0.0; // last time elapsed since the next traversal\r\n};\r\n\r\nFrameStamp.prototype = {\r\n setReferenceTime: function(s) {\r\n this._startSimulation = s;\r\n },\r\n getReferenceTime: function() {\r\n return this._startSimulation;\r\n },\r\n setSimulationTime: function(s) {\r\n this._currentSimulation = s;\r\n },\r\n getSimulationTime: function() {\r\n return this._currentSimulation;\r\n },\r\n setDeltaTime: function(d) {\r\n this._deltaTime = d;\r\n },\r\n getDeltaTime: function() {\r\n return this._deltaTime;\r\n },\r\n setFrameNumber: function(n) {\r\n this._frame = n;\r\n },\r\n getFrameNumber: function() {\r\n return this._frame;\r\n }\r\n};\r\n\r\nexport default FrameStamp;\r\n","import utils from '../osg/utils';\r\nimport notify from '../osg/notify';\r\nimport Program from '../osg/Program';\r\nimport Shader from '../osg/Shader';\r\nimport Compiler from './Compiler';\r\n//import ShaderProcessor from './ShaderProcessor';\r\nimport NextShaderProcessor from './NextShaderProcessor';\r\n\r\n\r\nvar ShaderGenerator = function() {\r\n this._cache = {};\r\n\r\n // ShaderProcessor singleton used by ShaderGenerator\r\n // but user can replace it if needed\r\n // this._shaderProcessor = new ShaderProcessor();\r\n this._shaderProcessor = NextShaderProcessor\r\n\r\n // ShaderCompiler Object to instanciate\r\n this._ShaderCompiler = undefined;\r\n\r\n this.setShaderCompiler(Compiler);\r\n};\r\n\r\nShaderGenerator.prototype = {\r\n // setShaderCompiler that will be used to createShader\r\n setShaderCompiler: function(ShaderCompiler) {\r\n this._ShaderCompiler = ShaderCompiler;\r\n if (!ShaderCompiler._validAttributeTypeMemberCache)\r\n this._computeStateAttributeCache(ShaderCompiler);\r\n },\r\n\r\n getShaderCompiler: function() {\r\n return this._ShaderCompiler;\r\n },\r\n\r\n getShaderProcessor: function() {\r\n return this._shaderProcessor;\r\n },\r\n\r\n setShaderProcessor: function(shaderProcessor) {\r\n this._shaderProcessor = shaderProcessor;\r\n },\r\n\r\n // filter input types and write the result in the outputs array\r\n filterAttributeTypes: function(attribute) {\r\n // works for attribute that contains isEnabled\r\n // Light, Shadow. It let us to filter them to build a shader if not enabled\r\n if (attribute.isEnabled && !attribute.isEnabled()) return true;\r\n\r\n return false;\r\n },\r\n\r\n // get actives attribute that comes from state listed by compiler cache type\r\n getActiveAttributeList: function(state, list) {\r\n var hash = '';\r\n var _attributeArray = state._attributeArray;\r\n var cacheType = this._ShaderCompiler._validAttributeTypeMemberCache;\r\n\r\n for (var j = 0, k = cacheType.length; j < k; j++) {\r\n var type = cacheType[j];\r\n var attributeStack = type < _attributeArray.length ? _attributeArray[type] : undefined;\r\n if (!attributeStack) continue;\r\n\r\n var attribute = attributeStack._lastApplied;\r\n\r\n if (!attribute || this.filterAttributeTypes(attribute)) continue;\r\n\r\n hash += attribute.getHash();\r\n list.push(attribute);\r\n }\r\n\r\n return hash;\r\n },\r\n\r\n // create a hash from actives attribute listed by compiler cache type\r\n getActiveAttributeListCache: function(state) {\r\n var hash = '';\r\n\r\n var cacheType = this._ShaderCompiler._validAttributeTypeMemberCache;\r\n for (var i = 0, l = cacheType.length; i < l; i++) {\r\n var type = cacheType[i];\r\n var attributeStack =\r\n type < state._attributeArray.length ? state._attributeArray[type] : undefined;\r\n if (attributeStack) {\r\n var attribute = attributeStack._lastApplied;\r\n if (!attribute || this.filterAttributeTypes(attribute)) continue;\r\n\r\n hash += attributeStack._lastApplied.getHash();\r\n }\r\n }\r\n\r\n return hash;\r\n },\r\n\r\n // create a hash from actives texture attribute listed by compiler cache type\r\n getActiveTextureAttributeListCache: function(state) {\r\n var hash = '';\r\n\r\n var cacheType = this._ShaderCompiler._validTextureAttributeTypeMemberCache;\r\n var textureUnitList = state._textureAttributeArrayList;\r\n for (var j = 0; j < textureUnitList.length; j++) {\r\n var textureUnit = textureUnitList[j];\r\n if (!textureUnit) continue;\r\n\r\n var textureUnitLength = textureUnit.length;\r\n for (var i = 0; i < cacheType.length; i++) {\r\n var type = cacheType[i];\r\n var attributeStack = type < textureUnitLength ? textureUnit[type] : undefined;\r\n if (attributeStack) {\r\n var attribute = attributeStack._lastApplied;\r\n\r\n if (\r\n !attribute ||\r\n this.filterAttributeTypes(attribute) ||\r\n attribute.isTextureNull()\r\n )\r\n continue;\r\n\r\n // we check to filter texture null in hash\r\n // but it's probably better to just set the hash correctly of a tetxure null, to remove this custom code\r\n hash += attribute.getHash();\r\n }\r\n }\r\n }\r\n\r\n return hash;\r\n },\r\n\r\n // get actives texture attribute that comes from state\r\n getActiveTextureAttributeList: function(state, list) {\r\n var hash = '';\r\n var _attributeArrayList = state._textureAttributeArrayList;\r\n var i, l;\r\n var cacheType = this._ShaderCompiler._validTextureAttributeTypeMemberCache;\r\n\r\n for (i = 0, l = _attributeArrayList.length; i < l; i++) {\r\n var _attributeArrayForUnit = _attributeArrayList[i];\r\n\r\n if (!_attributeArrayForUnit) continue;\r\n\r\n list[i] = [];\r\n\r\n for (var j = 0, m = cacheType.length; j < m; j++) {\r\n var type = cacheType[j];\r\n\r\n var attributeStack =\r\n type < _attributeArrayForUnit.length ? _attributeArrayForUnit[type] : undefined;\r\n if (!attributeStack) continue;\r\n\r\n var attribute = attributeStack._lastApplied;\r\n if (!attribute || this.filterAttributeTypes(attribute) || attribute.isTextureNull())\r\n continue;\r\n\r\n hash += attribute.getHash();\r\n list[i].push(attribute);\r\n }\r\n }\r\n return hash;\r\n },\r\n\r\n getActiveUniforms: function(state, attributeList, textureAttributeList) {\r\n var uniforms = {};\r\n\r\n for (var i = 0, l = attributeList.length; i < l; i++) {\r\n var at = attributeList[i];\r\n if (at.getOrCreateUniforms) {\r\n var attributeUniformMap = at.getOrCreateUniforms();\r\n // It could happen that uniforms are declared conditionally\r\n if (attributeUniformMap !== undefined) {\r\n for (var keyAttribute in attributeUniformMap) {\r\n var uniform = attributeUniformMap[keyAttribute];\r\n uniforms[uniform.getName()] = uniform;\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var a = 0, n = textureAttributeList.length; a < n; a++) {\r\n var tat = textureAttributeList[a];\r\n if (tat) {\r\n for (var b = 0, o = tat.length; b < o; b++) {\r\n var attr = tat[b];\r\n\r\n var texUniformMap = attr.getOrCreateUniforms(a);\r\n\r\n for (var tname in texUniformMap) {\r\n var tuniform = texUniformMap[tname];\r\n uniforms[tuniform.getName()] = tuniform;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return uniforms;\r\n },\r\n\r\n _computeStateAttributeCache: function(CompilerShader) {\r\n var typeMemberNames = CompilerShader.stateAttributeConfig.attribute || [];\r\n var validTypeMemberList = [];\r\n var typeMemberName;\r\n var i, il, cache;\r\n var id;\r\n for (i = 0, il = typeMemberNames.length; i < il; i++) {\r\n typeMemberName = typeMemberNames[i];\r\n id = utils.getIdFromTypeMember(typeMemberName);\r\n if (id !== undefined) {\r\n if (validTypeMemberList.indexOf(id) !== -1) {\r\n notify.warn(\r\n 'Compiler ' +\r\n CompilerShader.name +\r\n ' contains duplicate attribute entry ' +\r\n typeMemberName +\r\n ', check the Compiler configuration'\r\n );\r\n } else {\r\n validTypeMemberList.push(id);\r\n }\r\n }\r\n }\r\n cache = new Uint8Array(validTypeMemberList);\r\n CompilerShader._validAttributeTypeMemberCache = cache;\r\n\r\n typeMemberNames = CompilerShader.stateAttributeConfig.textureAttribute || [];\r\n validTypeMemberList = [];\r\n for (i = 0, il = typeMemberNames.length; i < il; i++) {\r\n typeMemberName = typeMemberNames[i];\r\n id = utils.getTextureIdFromTypeMember(typeMemberName);\r\n if (validTypeMemberList.indexOf(id) !== -1) {\r\n notify.warn(\r\n 'Compiler ' +\r\n CompilerShader.name +\r\n ' contains duplicate texture attribute entry ' +\r\n typeMemberName +\r\n ', check the Compiler configuration'\r\n );\r\n } else {\r\n validTypeMemberList.push(id);\r\n }\r\n }\r\n cache = new Uint8Array(validTypeMemberList);\r\n CompilerShader._validTextureAttributeTypeMemberCache = cache;\r\n },\r\n\r\n _createWaitingProgram: function(state, attributes, textureAttributes) {\r\n var vsDefault =\r\n 'attribute vec3 Vertex;uniform mat4 uModelViewMatrix;uniform mat4 uProjectionMatrix;void main(void) { gl_Position = vec4(10.0,10.0,10.0,1.0);}\\n';\r\n\r\n var fsDefault =\r\n '#define SHADER_NAME WaitSafe\\nprecision lowp float; void main(void) { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);}\\n';\r\n\r\n var program = new Program(\r\n new Shader(Shader.VERTEX_SHADER, vsDefault),\r\n new Shader(Shader.FRAGMENT_SHADER, fsDefault)\r\n );\r\n\r\n this.getActiveAttributeList(state, attributes);\r\n program.setActiveUniforms(this.getActiveUniforms(state, attributes, textureAttributes));\r\n program.generated = true;\r\n program.apply(state);\r\n return program;\r\n },\r\n\r\n getOrCreateProgram: (function() {\r\n var textureAttributes = [];\r\n var attributes = [];\r\n\r\n return function(state) {\r\n // extract valid attributes\r\n var hash =\r\n this.getActiveAttributeListCache(state) +\r\n this.getActiveTextureAttributeListCache(state);\r\n\r\n var cachedProgram = this._getProgram(hash, state, attributes, textureAttributes);\r\n if (cachedProgram !== undefined) {\r\n return cachedProgram;\r\n }\r\n\r\n var program = this._createProgram(hash, state, attributes, textureAttributes);\r\n\r\n return program;\r\n };\r\n })(),\r\n\r\n _getProgram: function(hash) {\r\n return this._cache[hash];\r\n },\r\n\r\n // slow path to generate shader\r\n _createProgram: function(hash, state, attributes, textureAttributes) {\r\n attributes.length = 0;\r\n textureAttributes.length = 0;\r\n\r\n this.getActiveAttributeList(state, attributes);\r\n this.getActiveTextureAttributeList(state, textureAttributes);\r\n\r\n // use ShaderCompiler, it can be overrided by a custom one\r\n var ShaderCompiler = this._ShaderCompiler;\r\n var shaderGen = new ShaderCompiler(attributes, textureAttributes, this._shaderProcessor);\r\n\r\n /* develblock:start */\r\n // Logs hash, attributes and compiler\r\n notify.debug('New Compilation ', false, true);\r\n notify.debug(\r\n {\r\n Attributes: attributes,\r\n Texture: textureAttributes,\r\n Hash: hash,\r\n Compiler: shaderGen.getFragmentShaderName()\r\n },\r\n false,\r\n true\r\n );\r\n /* develblock:end */\r\n\r\n var fragmentshader = shaderGen.createFragmentShader();\r\n var vertexshader = shaderGen.createVertexShader();\r\n\r\n var program = new Program(\r\n new Shader(Shader.VERTEX_SHADER, vertexshader),\r\n new Shader(Shader.FRAGMENT_SHADER, fragmentshader)\r\n );\r\n\r\n program.hash = hash;\r\n program.setActiveUniforms(this.getActiveUniforms(state, attributes, textureAttributes));\r\n program.generated = true;\r\n this._cache[hash] = program;\r\n\r\n program.apply(state);\r\n\r\n return program;\r\n },\r\n resetCache: function() {\r\n this._cache = {};\r\n }\r\n};\r\n\r\nexport default ShaderGenerator;\r\n","import notify from './notify';\r\nimport utils from './utils';\r\nimport Timer from './Timer';\r\nimport GLObject from './GLObject';\r\n\r\n/**\r\n * Shader manage shader for vertex and fragment, you need both to create a glsl program.\r\n * @class Shader\r\n */\r\nvar Shader = function(type, text) {\r\n GLObject.call(this);\r\n var t = type;\r\n if (typeof type === 'string') {\r\n t = Shader[type];\r\n }\r\n this.type = t;\r\n this.setText(text);\r\n};\r\n\r\nShader.VERTEX_SHADER = 0x8b31;\r\nShader.FRAGMENT_SHADER = 0x8b30;\r\n\r\n// Debug Pink shader for when shader fails\r\nvar debugName = '\\n#define SHADER_NAME FailSafe';\r\nShader.VS_DBG =\r\n '#define _DEBUG 1\\n#ifdef _DEBUG\\nattribute vec3 Vertex;uniform mat4 uModelViewMatrix;uniform mat4 uProjectionMatrix;void main(void) { gl_Position = uProjectionMatrix * uModelViewMatrix * vec4(Vertex, 1.0);}\\n';\r\nShader.FS_DBG =\r\n '#define _DEBUG 1\\n#ifdef _DEBUG\\n precision lowp float; void main(void) { gl_FragColor = vec4(1.0, 0.6, 0.6, 1.0);}\\n';\r\n\r\n// static cache of glShaders flagged for deletion, which will actually\r\n// be deleted in the correct GL context.\r\nShader._sDeletedGLShaderCache = new window.Map();\r\n\r\n// static method to delete Program\r\nShader.deleteGLShader = function(gl, shader) {\r\n if (!Shader._sDeletedGLShaderCache.has(gl)) Shader._sDeletedGLShaderCache.set(gl, []);\r\n Shader._sDeletedGLShaderCache.get(gl).push(shader);\r\n};\r\n\r\n// static method to flush all the cached glShaders which need to be deleted in the GL context specified\r\nShader.flushDeletedGLShaders = function(gl, availableTime) {\r\n // if no time available don't try to flush objects.\r\n if (availableTime <= 0.0) return availableTime;\r\n if (!Shader._sDeletedGLShaderCache.has(gl)) return availableTime;\r\n var elapsedTime = 0.0;\r\n var beginTime = Timer.instance().tick();\r\n var deleteList = Shader._sDeletedGLShaderCache.get(gl);\r\n var numShaders = deleteList.length;\r\n for (var i = numShaders - 1; i >= 0 && elapsedTime < availableTime; i--) {\r\n gl.deleteShader(deleteList[i]);\r\n deleteList.splice(i, 1);\r\n elapsedTime = Timer.instance().deltaS(beginTime, Timer.instance().tick());\r\n }\r\n return availableTime - elapsedTime;\r\n};\r\n\r\nShader.flushAllDeletedGLShaders = function(gl) {\r\n if (!Shader._sDeletedGLShaderCache.has(gl)) return;\r\n var deleteList = Shader._sDeletedGLShaderCache.get(gl);\r\n var numShaders = deleteList.length;\r\n for (var i = numShaders - 1; i >= 0; i--) {\r\n gl.deleteShader(deleteList[i]);\r\n deleteList.splice(i, 1);\r\n }\r\n return;\r\n};\r\n\r\nShader.onLostContext = function(gl) {\r\n if (!Shader._sDeletedGLShaderCache.has(gl)) return;\r\n var deleteList = Shader._sDeletedGLShaderCache.get(gl);\r\n deleteList.length = 0;\r\n return;\r\n};\r\n\r\nutils.createPrototypeObject(\r\n Shader,\r\n utils.objectInherit(GLObject.prototype, {\r\n setText: function(text) {\r\n this.text = text;\r\n },\r\n getText: function() {\r\n return this.text;\r\n },\r\n // this is where it creates a fail safe shader that should work everywhere\r\n failSafe: function(gl, shaderText) {\r\n this.shader = gl.createShader(this.type);\r\n\r\n // concat failsafe and broken shader under separate _DEBUG defines blocks\r\n var shaderName = shaderText.match(/#define[\\s]+SHADER_NAME[\\s]+([\\S]+)(\\n|$)/);\r\n shaderName = shaderName ? shaderName[1] : '';\r\n var debugShaderTxt = this.type === Shader.VERTEX_SHADER ? Shader.VS_DBG : Shader.FS_DBG;\r\n debugShaderTxt += debugName + shaderName + '\\n#else\\n' + shaderText + '\\n#endif\\n';\r\n gl.shaderSource(this.shader, debugShaderTxt);\r\n gl.compileShader(this.shader);\r\n },\r\n // webgl shader compiler error to source contextualization\r\n // for better console log messages\r\n processErrors: function(errors, source) {\r\n // regex to extract error message and line from webgl compiler reporting\r\n var r = /ERROR: [\\d]+:([\\d]+): (.+)/gim;\r\n // split sources in indexable per line array\r\n var lines = source.split('\\n');\r\n var linesLength = lines.length;\r\n if (linesLength === 0) return;\r\n\r\n var i, m;\r\n\r\n // IE reporting is not the same\r\n if (r.exec(errors) === null) {\r\n r = /Shader compilation errors\\n\\((\\d+)\\, \\d+\\): (.+)/gim;\r\n }\r\n\r\n // we dont understand error try to print it instead of nothing\r\n if (r.exec(errors) === null) {\r\n notify.error(errors);\r\n return;\r\n }\r\n\r\n // reset index to start.\r\n r.lastIndex = 0;\r\n\r\n while ((m = r.exec(errors)) !== null) {\r\n if (m.index === r.lastIndex) {\r\n // moving between errors\r\n r.lastIndex++;\r\n }\r\n // get error line\r\n var line = parseInt(m[1], 10);\r\n\r\n if (line > linesLength) continue;\r\n // webgl error report.\r\n notify.error('ERROR ' + m[2] + ' in line ' + line);\r\n\r\n var minLine = Math.max(0, line - 7);\r\n var maxLine = Math.max(0, line - 2);\r\n // for context\r\n // log surrounding line priori to error with bof check\r\n for (i = minLine; i <= maxLine; i++) {\r\n notify.warn(lines[i].replace(/^[ \\t]+/g, ''));\r\n }\r\n\r\n // Warn adds a lovely /!\\ icon in front of the culprit line\r\n maxLine = Math.max(0, line - 1);\r\n notify.error(lines[maxLine].replace(/^[ \\t]+/g, ''));\r\n\r\n minLine = Math.min(linesLength, line);\r\n maxLine = Math.min(linesLength, line + 5);\r\n // for context\r\n // surrounding line posterior to error (with eof check)\r\n for (i = minLine; i < maxLine; i++) {\r\n notify.warn(lines[i].replace(/^[ \\t]+/g, ''));\r\n }\r\n }\r\n },\r\n\r\n compile: function(gl) {\r\n if (!this._gl) this.setGraphicContext(gl);\r\n this.shader = gl.createShader(this.type);\r\n gl.shaderSource(this.shader, this.text);\r\n gl.compileShader(this.shader);\r\n },\r\n getCompilationResult: function(gl, errorCallback) {\r\n if (!gl.getShaderParameter(this.shader, gl.COMPILE_STATUS) && !gl.isContextLost()) {\r\n var err = gl.getShaderInfoLog(this.shader);\r\n this.processErrors(err, this.text);\r\n var splittedText = this.text.split('\\n');\r\n var newText = '\\n';\r\n for (var i = 0, l = splittedText.length; i < l; ++i) {\r\n newText += i + ' ' + splittedText[i] + '\\n';\r\n }\r\n // still logging whole source but folded\r\n notify.errorFold(\"can't compile shader\", newText);\r\n if (errorCallback) errorCallback(this.text, newText, err);\r\n\r\n return false;\r\n }\r\n return true;\r\n },\r\n releaseGLObjects: function() {\r\n if (this._gl !== undefined) {\r\n Shader.deleteGLShader(this._gl, this.shader);\r\n GLObject.removeObject(this._gl, this);\r\n }\r\n this.invalidate();\r\n },\r\n invalidate: function() {\r\n this.shader = undefined;\r\n }\r\n }),\r\n 'osg',\r\n 'Shader'\r\n);\r\n\r\nexport default Shader;","class EventHandle {\r\n constructor(owner, name, fn) {\r\n this.owner = owner;\r\n this.name = name;\r\n this.fn = fn;\r\n }\r\n\r\n unbind() {\r\n if (!this.owner) return;\r\n this.owner.unbind(this.name, this.fn);\r\n this.owner = null;\r\n this.name = null;\r\n this.fn = null;\r\n }\r\n\r\n call() {\r\n if (!this.fn) return;\r\n\r\n this.fn.call(\r\n this.owner,\r\n arguments[0],\r\n arguments[1],\r\n arguments[2],\r\n arguments[3],\r\n arguments[4],\r\n arguments[5],\r\n arguments[6],\r\n arguments[7],\r\n );\r\n }\r\n\r\n on(name, fn) {\r\n return this.owner.on(name, fn);\r\n }\r\n}\r\n\r\nclass WeightEventHandle {\r\n constructor(owner, name, fn) {\r\n this.owner = owner;\r\n this.name = name;\r\n this.fn = fn;\r\n }\r\n\r\n unbind() {\r\n if (!this.owner) return;\r\n\r\n this.owner.unbindWeight(this.name, this.fn);\r\n this.owner = null;\r\n this.name = null;\r\n this.fn = null;\r\n }\r\n}\r\n\r\n\r\nclass Events {\r\n constructor() {\r\n this._events = {};\r\n this._suspendEvents = false;\r\n this._weightEvents = {};\r\n }\r\n\r\n get suspendEvents() {\r\n return this._suspendEvents;\r\n }\r\n set suspendEvents(value) {\r\n this._suspendEvents = !!value;\r\n }\r\n\r\n nextTick(name, fn) {\r\n this.on(name, (function() {\r\n let timer = null;\r\n return function(...args) {\r\n if (timer) clearTimeout(timer);\r\n timer = setTimeout(fn.bind(null, ...args))\r\n }\r\n }()))\r\n }\r\n\r\n on(name, fn) {\r\n let events = this._events[name];\r\n if (events === undefined) {\r\n this._events[name] = [fn];\r\n } else {\r\n if (events.indexOf(fn) == -1) events.push(fn);\r\n }\r\n return new EventHandle(this, name, fn);\r\n }\r\n\r\n //按高优先级进行响应\r\n onHighWeight(name, weight, fn) {\r\n\r\n let events = this._weightEvents[name];\r\n if (events === undefined) {\r\n this._weightEvents[name] = [{ weight: weight, fn }];\r\n } else {\r\n let event = { weight: weight, fn };\r\n let n = events.length;\r\n let ok = false;\r\n for (let i = 0; i < n; i++) {\r\n if (weight > events[i].weight) {\r\n events.splice(i, 0, event);\r\n ok = true;\r\n break;\r\n }\r\n }\r\n if (!ok) {\r\n events.push(event);\r\n }\r\n }\r\n return new WeightEventHandle(this, name, fn);\r\n }\r\n\r\n once(name, fn) {\r\n let self = this;\r\n let evt = this.on(\r\n name,\r\n function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {\r\n fn.call(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);\r\n evt.unbind();\r\n },\r\n );\r\n return evt;\r\n }\r\n\r\n\r\n emit(name, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {\r\n if (this._suspendEvents) return;\r\n\r\n let events = this._events[name];\r\n if (!events) return this;\r\n\r\n events = events.slice(0);\r\n\r\n for (let i = 0; i < events.length; i++) {\r\n if (!events[i]) continue;\r\n\r\n try {\r\n events[i].call(this, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);\r\n } catch (ex) {\r\n console.info(\r\n '%c%s %c(event error)',\r\n 'color: #06f',\r\n name,\r\n 'color: #f00',\r\n );\r\n console.error(ex);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n emitHighWeight(name, ...args) {\r\n if (this._suspendHighEvents) return;\r\n\r\n let events = this._weightEvents[name];\r\n if (!events) return this;\r\n\r\n let event = events[0];\r\n try {\r\n event.fn.call(this, ...args);\r\n } catch (ex) {\r\n console.info(\r\n '%c%s %c(emitHighWeight error)',\r\n 'color: #06f',\r\n name,\r\n 'color: #f00',\r\n );\r\n console.error(ex);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n unbindWeight(name, fn) {\r\n\r\n if (!name) {\r\n this._weightEvents = {};\r\n return this;\r\n }\r\n\r\n let events = this._weightEvents[name];\r\n if (!events) return this;\r\n\r\n if (!fn) {\r\n delete this._weightEvents[name];\r\n return this;\r\n }\r\n\r\n let n = events.length;\r\n while (n--) {\r\n if (events[n].fn == fn) {\r\n\r\n if (events.length === 1) {\r\n delete this._weightEvents[name];\r\n return this;\r\n }\r\n events.splice(n, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n unbind(name, fn) {\r\n if (name) {\r\n let events = this._events[name];\r\n if (!events) return this;\r\n\r\n if (fn) {\r\n let i = events.indexOf(fn);\r\n if (i !== -1) {\r\n if (events.length === 1) {\r\n delete this._events[name];\r\n } else {\r\n events.splice(i, 1);\r\n }\r\n }\r\n } else {\r\n delete this._events[name];\r\n }\r\n } else {\r\n this._events = {};\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nexport {\r\n EventHandle,\r\n Events\r\n};","export default {\r\n allowSwiftShader: false,\r\n animationAutoplay: true,\r\n anisotropy: true,\r\n annotation: 0,\r\n annotationTooltipVisible: true,\r\n arkit: false,\r\n arkitDebug: false,\r\n asyncImage: false,\r\n asyncShader: 0,\r\n autoMaterial: 0,\r\n autospin: 0,\r\n autostart: true,\r\n camera: false,\r\n cameraConstraints: true,\r\n cameraFollowBones: 0,\r\n cardboard: 0,\r\n carmel: false,\r\n cleanShader: false,\r\n continuousRender: false,\r\n convertVertexColor8Bit: true,\r\n debug3D: false,\r\n depthMipmap: 0,\r\n dofAttenuateDistance: true,\r\n dofAttenuateSpeed: false,\r\n dofCircle: true,\r\n dofRes: 2,\r\n dofSticky: false,\r\n dofTransition: true,\r\n doubleClick: true,\r\n downloadPicture: false,\r\n drs: true,\r\n drsRatio: 1,\r\n drsFps: 15,\r\n drsMin: 0.8,\r\n drsTest: false,\r\n epsilonAlpha: 0.00001,\r\n floatRtt: 2,\r\n forceController: '',\r\n forceControllerOrientation: -0.5,\r\n forceControllerRayOrientation: -0.075,\r\n forceFallback: false,\r\n forceMs: 0,\r\n forceTriangles: false,\r\n fpsSpeed: 5,\r\n grainSpeed: 64,\r\n graphOptimizer: false,\r\n imageCompression: false,\r\n internal: false,\r\n isApp: false,\r\n keepEmptyGeometries: false,\r\n materialNames: 'main_material',\r\n materialPacking: true,\r\n materialShowcase: false,\r\n maxTextureUnits: 32,\r\n maxDevicePixelRatio: 3.0,\r\n maxTextureSize: 8192,\r\n maxVertexUniforms: 8192,\r\n mergeMaterials: false,\r\n morphEpsilon: 0.05,\r\n morphGpu: 4,\r\n navigation: 'orbit',\r\n orbitPanFactor: 1,\r\n orbitRotationFactor: 1,\r\n orbitZoomFactor: 1,\r\n panorama: false,\r\n powerPreference: 'high-performance',\r\n preload: false,\r\n preserveDrawingBuffer: false,\r\n processMaterial: false,\r\n processOptions: false,\r\n refractionRes: 1,\r\n resizeTimeout: 16,\r\n rgbm: true,\r\n scale: 1,\r\n scaleEpsilon: 0.00001,\r\n scrollwheel: true,\r\n shadow: true,\r\n shadowAtlas: true,\r\n shadowJitterOffset: 'default',\r\n shadowNormalOffset: false,\r\n shadowPCF: '1Tap(4texFetch)',\r\n shadowTextureSize: 1024,\r\n share: false,\r\n snapKeyframe: false,\r\n soundEnable: true,\r\n soundMute: false,\r\n soundPreload: false,\r\n splitLimit: 65535,\r\n ssaoNormal: false,\r\n ssrTransparent: false,\r\n sssJitter: 1,\r\n sssKernel: 17,\r\n stats: false,\r\n svgSize: 2048,\r\n substanceDisplacement: false,\r\n supersample: true,\r\n tracking: false,\r\n taaAnimation: false,\r\n taaFeedbackMax: 0.97,\r\n taaFeedbackMin: 0.88,\r\n textureFrameBudget: 512,\r\n transparent: false,\r\n uiAnimations: true,\r\n uiAnnotations: true,\r\n uiAr: false,\r\n uiArHelp: true,\r\n uiArQrcode: true,\r\n uiColor: '',\r\n uiControls: true,\r\n uiFadeout: false,\r\n uiFullscreen: true,\r\n uiGeneralControls: true,\r\n uiHelp: true,\r\n uiHint: 1,\r\n uiInfos: false,\r\n uiInspector: true,\r\n uiInspectorOpen: false,\r\n uiLoading: true,\r\n uiSettings: true,\r\n uiSnapshots: true,\r\n uiSound: true,\r\n uiStart: true,\r\n uiStop: false,\r\n uiTheatre: false,\r\n uiVr: true,\r\n uiWatermark: false,\r\n uiWatermarkLink: true,\r\n unitRenderLocal: false,\r\n unitRenderReporter: 'html',\r\n useVao: true,\r\n varyingSorting: true,\r\n vrAr: false,\r\n vrBrowserEnv: 'c0022acc4f3242e2bcae8043e08df8cc',\r\n vrFade: 200,\r\n vrLauncherAlphaCardFactor: 1,\r\n vrMirror: false,\r\n vrMobileMaxFaces: 50000,\r\n vrGenerateUiTextures: true,\r\n vrForceRaf: false,\r\n vrLinkNavigation: 0,\r\n vrInNavigation: 0,\r\n vrScaleRtt: 0,\r\n vrStereo: true,\r\n webglExt: true,\r\n webglRestore: 3,\r\n webglTimerGpu: false,\r\n webglUniforms: false,\r\n zoct: false,\r\n zq: true,\r\n zw: true,\r\n zratio: 50,\r\n zz: false,\r\n annotationCycleAutostart: false,\r\n annotationCycleDuration: 5000,\r\n sssHalfKernel: 9,\r\n preferOriginalNormalMap: false,\r\n};\r\n","export default {\r\n 'utils/common.glsl':\r\n '#define PI 3.141593\\n#define saturate(_x) clamp(_x, 0., 1.)\\n',\r\n 'utils/functions.glsl':\r\n \"// approximation such as http://chilliant.blogspot.fr/2012/08/srgb-approximations-for-hlsl.html\\n// introduced slightly darker colors and more slight banding in the darks.\\n\\n// so we stick with the reference implementation (except we don't check if color >= 0.0):\\n// https://www.khronos.org/registry/gles/extensions/EXT/EXT_sRGB.txt\\n#define LIN_SRGB(x) x < 0.0031308 ? x * 12.92 : 1.055 * pow(x, 1.0/2.4) - 0.055\\n#define SRGB_LIN(x) x < 0.04045 ? x * (1.0 / 12.92) : pow((x + 0.055) * (1.0 / 1.055), 2.4)\\n\\nfloat linearTosRGB(const in float color) { return LIN_SRGB(color); }\\nvec3 linearTosRGB(const in vec3 color) { return vec3(LIN_SRGB(color.r), LIN_SRGB(color.g), LIN_SRGB(color.b)); }\\nvec4 linearTosRGB(const in vec4 color) { return vec4(LIN_SRGB(color.r), LIN_SRGB(color.g), LIN_SRGB(color.b), color.a); }\\n\\nfloat sRGBToLinear(const in float color) { return SRGB_LIN(color); }\\nvec3 sRGBToLinear(const in vec3 color) { return vec3(SRGB_LIN(color.r), SRGB_LIN(color.g), SRGB_LIN(color.b)); }\\nvec4 sRGBToLinear(const in vec4 color) { return vec4(SRGB_LIN(color.r), SRGB_LIN(color.g), SRGB_LIN(color.b), color.a); }\\n\\n//http://graphicrants.blogspot.fr/2009/04/rgbm-color-encoding.html\\nvec3 RGBMToRGB( const in vec4 rgba ) {\\n const float maxRange = 8.0;\\n return rgba.rgb * maxRange * rgba.a;\\n}\\n\\nconst mat3 LUVInverse = mat3( 6.0013, -2.700, -1.7995, -1.332, 3.1029, -5.7720, 0.3007, -1.088, 5.6268 );\\n\\nvec3 LUVToRGB( const in vec4 vLogLuv ) {\\n float Le = vLogLuv.z * 255.0 + vLogLuv.w;\\n vec3 Xp_Y_XYZp;\\n Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\\n Xp_Y_XYZp.z = Xp_Y_XYZp.y / vLogLuv.y;\\n Xp_Y_XYZp.x = vLogLuv.x * Xp_Y_XYZp.z;\\n vec3 vRGB = LUVInverse * Xp_Y_XYZp;\\n return max(vRGB, 0.0);\\n}\\n\\n// http://graphicrants.blogspot.fr/2009/04/rgbm-color-encoding.html\\nvec4 encodeRGBM(const in vec3 color, const in float range) {\\n if(range <= 0.0) return vec4(color, 1.0);\\n vec4 rgbm;\\n vec3 col = color / range;\\n rgbm.a = clamp( max( max( col.r, col.g ), max( col.b, 1e-6 ) ), 0.0, 1.0 );\\n rgbm.a = ceil( rgbm.a * 255.0 ) / 255.0;\\n rgbm.rgb = col / rgbm.a;\\n return rgbm;\\n}\\n\\nvec3 decodeRGBM(const in vec4 color, const in float range) {\\n if(range <= 0.0) return color.rgb;\\n return range * color.rgb * color.a;\\n}\\n\",\r\n 'shadowing/shadowReceive.glsl':\r\n \"#extension GL_OES_standard_derivatives : enable\\n\\n%UNROLL 4%\\n#ifdef HAS_SHADOW_%ID%\\n uniform float uShadowReceive%ID%_bias;\\n uniform float uStaticFrameNumShadow%ID%;\\n uniform vec2 uShadow_Texture%ID%_depthRange;\\n uniform vec3 uShadow_Texture%ID%_projection;\\n uniform vec4 uShadow_Texture%ID%_viewLook;\\n uniform vec4 uShadow_Texture%ID%_viewRight;\\n uniform vec4 uShadow_Texture%ID%_viewUp;\\n\\n #ifdef _ATLAS_SHADOW\\n uniform vec4 uShadow_Texture%ID%_mapSize;\\n #else\\n uniform vec2 uShadow_Texture%ID%_renderSize;\\n #endif\\n#endif // HAS_SHADOW\\n%%\\n\\n// TODO rename sampler uniform to be better and sync with light number (e.g: sShadow0, sShadow1, etc)\\n#ifdef _ATLAS_SHADOW\\n uniform vec2 uShadow_Texture0_renderSize;\\n uniform sampler2D Texture12;\\n#else\\n #ifdef HAS_SHADOW_0\\n uniform sampler2D Texture12;\\n #define TEX_SHADOW_0 Texture12\\n #endif\\n #ifdef HAS_SHADOW_1\\n uniform sampler2D Texture13;\\n #define TEX_SHADOW_1 Texture13\\n #endif\\n #ifdef HAS_SHADOW_2\\n uniform sampler2D Texture14;\\n #define TEX_SHADOW_2 Texture14\\n #endif\\n #ifdef HAS_SHADOW_3\\n uniform sampler2D Texture15;\\n #define TEX_SHADOW_3 Texture15\\n #endif\\n#endif // _ATLAS_SHADOW\\n\\n#ifdef _OUT_DISTANCE\\n#define OPT_ARG_outDistance ,out float outDistance\\n#define OPT_INSTANCE_ARG_outDistance ,outDistance\\n#else\\n#define OPT_ARG_outDistance\\n#define OPT_INSTANCE_ARG_outDistance\\n#endif\\n\\n#ifdef _ATLAS_SHADOW\\n#define OPT_ARG_atlasSize ,const in vec4 atlasSize\\n#else\\n#define OPT_ARG_atlasSize\\n#endif\\n\\n#ifdef _NORMAL_OFFSET\\n#define OPT_ARG_normalBias ,const in float normalBias\\n#else\\n#define OPT_ARG_normalBias\\n#endif\\n\\n#ifdef _JITTER_OFFSET\\n#define OPT_ARG_jitter ,const in float jitter\\n#define OPT_INSTANCE_ARG_jitter ,jitter\\n#else\\n#define OPT_ARG_jitter\\n#define OPT_INSTANCE_ARG_jitter\\n#endif\\n\\n#pragma include \\\"shadowing/tapPCF.glsl\\\"\\n\\nfloat shadowReceive(const in bool lighted,\\n const in vec3 normalWorld,\\n const in vec3 vertexWorld,\\n\\n const in sampler2D shadowTexture,\\n\\n const in vec2 shadowSize,\\n const in vec3 shadowProjection,\\n\\n const in vec4 shadowViewRight,\\n const in vec4 shadowViewUp,\\n const in vec4 shadowViewLook,\\n\\n\\n const in vec2 shadowDepthRange,\\n const in float shadowBias\\n OPT_ARG_atlasSize\\n OPT_ARG_normalBias\\n OPT_ARG_outDistance\\n OPT_ARG_jitter) {\\n\\n // 0 for early out\\n bool earlyOut = false;\\n\\n // Calculate shadow amount\\n float shadow = 1.0;\\n\\n if (!lighted) {\\n shadow = 0.0;\\n#ifndef _OUT_DISTANCE\\n earlyOut = true;\\n#endif // _OUT_DISTANCE\\n }\\n\\n if (shadowDepthRange.x == shadowDepthRange.y) {\\n earlyOut = true;\\n }\\n\\n vec4 shadowVertexEye;\\n vec4 shadowNormalEye;\\n float shadowReceiverZ = 0.0;\\n vec4 shadowVertexProjected;\\n vec2 shadowUV;\\n float N_Dot_L;\\n float invDepthRange;\\n\\n if (!earlyOut) {\\n\\n shadowVertexEye.x = dot(shadowViewRight.xyz, vertexWorld.xyz) + shadowViewRight.w;\\n shadowVertexEye.y = dot(shadowViewUp.xyz, vertexWorld.xyz) + shadowViewUp.w;\\n shadowVertexEye.z = dot(shadowViewLook.xyz, vertexWorld.xyz) + shadowViewLook.w;\\n shadowVertexEye.w = 1.0;\\n\\n\\n // derivated, only need z.\\n //vec3 shadowLightDir = vec3(0.0, 0.0, 1.0); // in shadow view light is camera\\n //shadowNormalEye = shadowViewMatrix * normalFront;\\n //shadowNormalEye.x = dot(shadowViewRight.xyz, normalWorld.xyz);\\n //shadowNormalEye.y = dot(shadowViewUp.xyz, normalWorld.xyz);\\n shadowNormalEye.z = dot(shadowViewLook.xyz, normalWorld.xyz);\\n //shadowNormalEye.w = 0.0;\\n\\n //N_Dot_L = dot(shadowNormalEye.xyz, shadowLightDir);\\n N_Dot_L = shadowNormalEye.z;\\n\\n if (!earlyOut) {\\n\\n invDepthRange = 1.0 / (shadowDepthRange.y - shadowDepthRange.x);\\n\\n#ifdef _NORMAL_OFFSET\\n\\n // http://www.dissidentlogic.com/old/images/NormalOffsetShadows/GDC_Poster_NormalOffset.png\\n float normalOffsetScale = clamp(1.0 - N_Dot_L, 0.0 , 1.0);\\n normalOffsetScale *= abs((shadowVertexEye.z - shadowDepthRange.x) * invDepthRange);\\n normalOffsetScale *= max(shadowProjection.x, shadowProjection.y);\\n normalOffsetScale *= normalBias * invDepthRange;\\n\\n\\n vec4 shadowNormalShift = vec4(normalWorld, 0.0) * normalOffsetScale;\\n shadowNormalEye.x = dot(shadowViewRight.xyz, shadowNormalShift.xyz);\\n shadowNormalEye.y = dot(shadowViewUp.xyz, shadowNormalShift.xyz);\\n shadowNormalEye.z = dot(shadowViewLook.xyz, shadowNormalShift.xyz);\\n shadowNormalEye.w = 0.0;\\n\\n vec4 viewShadow = shadowVertexEye + shadowNormalEye;\\n#else\\n vec4 viewShadow = shadowVertexEye;\\n#endif\\n\\n\\n if (shadowProjection.z == 0.0){\\n\\n // X, 0, 0, 0,\\n // 0, Y, 0, 0,\\n // 0, 0, -1, -1,\\n // 0, 0, -2.0*znear, 0\\n // mat4 shadowProjectionMatrix;\\n // shadowProjectionMatrix[0] = vec4(shadowProjection.x, 0.0, 0.0, 0.0 );\\n // shadowProjectionMatrix[1] = vec4(0.0, shadowProjection.y, 0.0, 0.0 );\\n // shadowProjectionMatrix[2] = vec4(0.0, 0.0, -1.0, -1.0 );\\n // shadowProjectionMatrix[3] = vec4(0.0, 0.0, -2.0*shadowDepthRange.x, 0.0 );\\n // shadowVertexProjected = shadowProjectionMatrix * shadowVertexEye;\\n\\n // derivated optimisation\\n shadowVertexProjected.x = shadowProjection.x * viewShadow.x;\\n shadowVertexProjected.y = shadowProjection.y * viewShadow.y;\\n\\n shadowVertexProjected.z = - viewShadow.z - (2.0 * shadowDepthRange.x * viewShadow.w);\\n shadowVertexProjected.w = - viewShadow.z;\\n\\n }\\n else{\\n // lr = 1/(left-right);\\n // bt = 1/(bottom-top);\\n // nf = 1/(near-far);\\n // -2*lr, 0, 0, 0,\\n // 0, -2*bt, 0, 0,\\n // 0, 0, 2*nf, 0.0,\\n // (left+right)*lr, (top+bottom)*bt, (far+near)*nf), 1\\n // here left = -right && top = -bottom\\n // float lr = 1.0 / (-2.0 * shadowProjection.x);\\n // float bt = 1.0 / (-2.0 * shadowProjection.y);\\n // float nf = 1.0 / (shadowDepthRange.x - shadowDepthRange.y);\\n float nfNeg = 1.0 / (shadowDepthRange.x - shadowDepthRange.y);\\n float nfPos = (shadowDepthRange.x + shadowDepthRange.y)*nfNeg;\\n\\n //mat4 shadowProjectionMatrix;\\n //shadowProjectionMatrix[0] = vec4(1.0 / shadowProjection.x, 0.0, 0.0, 0.0 );\\n //shadowProjectionMatrix[1] = vec4(0.0, 1.0 / shadowProjection.y, 0.0, 0.0 );\\n //shadowProjectionMatrix[2] = vec4(0.0, 0.0, 2.0*nfNeg, 0.0 );\\n //shadowProjectionMatrix[3] = vec4(0.0, 0.0, nfPos, 1.0 );\\n //shadowdertexProjected = shadowProjectionMatrix * shadowVertexEye;\\n\\n // derivated optimisation\\n shadowVertexProjected.x = viewShadow.x / shadowProjection.x;\\n shadowVertexProjected.y = viewShadow.y / shadowProjection.y;\\n\\n shadowVertexProjected.z = 2.0 * nfNeg* viewShadow.z + nfPos * viewShadow.w;\\n shadowVertexProjected.w = viewShadow.w;\\n\\n }\\n\\n\\n if (shadowVertexProjected.w < 0.0) {\\n earlyOut = true; // notably behind camera\\n }\\n\\n }\\n\\n if (!earlyOut) {\\n\\n shadowUV.xy = shadowVertexProjected.xy / shadowVertexProjected.w;\\n shadowUV.xy = shadowUV.xy * 0.5 + 0.5;// mad like\\n\\n if (any(bvec4 ( shadowUV.x > 1., shadowUV.x < 0., shadowUV.y > 1., shadowUV.y < 0.))) {\\n earlyOut = true;// limits of light frustum\\n }\\n\\n // most precision near 0, make sure we are near 0 and in [0,1]\\n shadowReceiverZ = - shadowVertexEye.z;\\n shadowReceiverZ = (shadowReceiverZ - shadowDepthRange.x) * invDepthRange;\\n\\n if(shadowReceiverZ < 0.0) {\\n earlyOut = true; // notably behind camera\\n }\\n\\n }\\n }\\n\\n // pcf pbias to add on offset\\n vec2 shadowBiasPCF = vec2 (0.);\\n\\n#ifdef GL_OES_standard_derivatives\\n#ifdef _RECEIVERPLANEDEPTHBIAS\\n vec2 biasUV;\\n\\n vec3 texCoordDY = dFdx(shadowVertexEye.xyz);\\n vec3 texCoordDX = dFdy(shadowVertexEye.xyz);\\n\\n biasUV.x = texCoordDY.y * texCoordDX.z - texCoordDX.y * texCoordDY.z;\\n biasUV.y = texCoordDX.x * texCoordDY.z - texCoordDY.x * texCoordDX.z;\\n biasUV *= 1.0 / ((texCoordDX.x * texCoordDY.y) - (texCoordDX.y * texCoordDY.x));\\n\\n // Static depth biasing to make up for incorrect fractional sampling on the shadow map grid\\n float fractionalSamplingError = dot(vec2(1.0, 1.0) * shadowSize.xy, abs(biasUV));\\n float receiverDepthBias = min(fractionalSamplingError, 0.01);\\n\\n shadowBiasPCF.x = biasUV.x;\\n shadowBiasPCF.y = biasUV.y;\\n\\n shadowReceiverZ += receiverDepthBias;\\n\\n#else // _RECEIVERPLANEDEPTHBIAS\\n shadowBiasPCF.x = clamp(dFdx(shadowReceiverZ) * shadowSize.x, -1.0, 1.0 );\\n shadowBiasPCF.y = clamp(dFdy(shadowReceiverZ) * shadowSize.y, -1.0, 1.0 );\\n#endif\\n\\n#endif // GL_OES_standard_derivatives\\n\\n\\n vec4 clampDimension;\\n\\n#ifdef _ATLAS_SHADOW\\n shadowUV.xy = ((shadowUV.xy * atlasSize.zw ) + atlasSize.xy) * shadowSize.xy;\\n\\n // clamp uv bias/filters by half pixel to avoid point filter on border\\n clampDimension.xy = atlasSize.xy + vec2(0.5);\\n clampDimension.zw = (atlasSize.xy + atlasSize.zw) - vec2(0.5);\\n\\n clampDimension = clampDimension * shadowSize.xyxy;\\n#else\\n clampDimension = vec4(0.0, 0.0, 1.0, 1.0);\\n#endif // _RECEIVERPLANEDEPTHBIAS\\n\\n\\n // now that derivatives is done and we don't access any mipmapped/texgrad texture we can early out\\n // see http://teknicool.tumblr.com/post/77263472964/glsl-dynamic-branching-and-texture-samplers\\n if (earlyOut) {\\n // empty statement because of weird gpu intel bug\\n } else {\\n\\n // depth bias: fighting shadow acne (depth imprecsion z-fighting)\\n // cosTheta is dot( n, l ), clamped between 0 and 1\\n // float shadowBias = 0.005*tan(acos(N_Dot_L));\\n // same but 4 cycles instead of 15\\n float depthBias = 0.05 * sqrt( 1.0 - N_Dot_L * N_Dot_L) / clamp(N_Dot_L, 0.0005, 1.0);\\n\\n // That makes sure that plane perpendicular to light doesn't flicker due to\\n // selfshadowing and 1 = dot(Normal, Light) using a min bias\\n depthBias = clamp(depthBias, 0.00005, 2.0 * shadowBias);\\n\\n // shadowZ must be clamped to [0,1]\\n // otherwise it's not comparable to shadow caster depth map\\n // which is clamped to [0,1]\\n // Not doing that makes ALL shadowReceiver > 1.0 black\\n // because they ALL becomes behind any point in Caster depth map\\n shadowReceiverZ = clamp(shadowReceiverZ, 0.0, 1.0 -depthBias) - depthBias;\\n\\n // Now computes Shadow\\n float res = getShadowPCF(shadowTexture,\\n shadowSize,\\n shadowUV,\\n shadowReceiverZ,\\n shadowBiasPCF,\\n clampDimension\\n OPT_INSTANCE_ARG_outDistance\\n OPT_INSTANCE_ARG_jitter);\\n#ifdef _OUT_DISTANCE\\n if (lighted) shadow = res;\\n outDistance *= shadowDepthRange.y - shadowDepthRange.x; // world space distance\\n#else\\n shadow = res;\\n#endif // _OUT_DISTANCE\\n }\\n\\n return shadow;\\n\\n}\\n\",\r\n 'shadowing/shadowLinearSoft.glsl':\r\n 'float decodeFloatRGBA(const in vec4 rgba) {\\n return dot(rgba, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));\\n}\\n\\nfloat getSingleFloatFromTex(const in sampler2D depths, const in vec2 uv){\\n#ifndef _FLOATTEX\\n return decodeFloatRGBA(texture2D(depths, uv));\\n#else\\n return texture2D(depths, uv).x;\\n#endif\\n}\\n\\n// simulation of texture2Dshadow glsl call on HW\\n// http://codeflow.org/entries/2013/feb/15/soft-shadow-mapping/\\nfloat texture2DCompare(const in sampler2D depths,\\n const in vec2 uv,\\n const in float compare,\\n const in vec4 clampDimension){\\n float depth = getSingleFloatFromTex(depths, clamp(uv, clampDimension.xy, clampDimension.zw));\\n return compare - depth;\\n}\\n\\n#ifdef _JITTER_OFFSET\\n// TODO could be in a random.glsl file\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/Random.ush#L27\\nfloat shadowInterleavedGradientNoise(const in vec2 fragCoord, const in float frameMod) {\\n vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\\n return fract(magic.z * fract(dot(fragCoord.xy + frameMod * vec2(47.0, 17.0) * 0.695, magic.xy)));\\n}\\n#endif\\n\\n// simulates linear fetch like texture2d shadow\\nfloat texture2DShadowLerp(\\n const in sampler2D depths,\\n const in vec2 size,\\n const in vec2 uv,\\n const in float compare,\\n const in vec4 clampDimension\\n OPT_ARG_outDistance\\n OPT_ARG_jitter){\\n\\n vec2 centroidCoord = uv / size.xy;\\n\\n#ifdef _JITTER_OFFSET\\n if (jitter > 0.0){\\n centroidCoord += shadowInterleavedGradientNoise(gl_FragCoord.xy, jitter);\\n }\\n#endif\\n\\n centroidCoord = centroidCoord + 0.5;\\n vec2 f = fract(centroidCoord);\\n vec2 centroidUV = floor(centroidCoord) * size.xy;\\n\\n vec4 fetches;\\n const vec2 shift = vec2(1.0, 0.0);\\n fetches.x = texture2DCompare(depths, centroidUV + size.xy * shift.yy, compare, clampDimension);\\n fetches.y = texture2DCompare(depths, centroidUV + size.xy * shift.yx, compare, clampDimension);\\n fetches.z = texture2DCompare(depths, centroidUV + size.xy * shift.xy, compare, clampDimension);\\n fetches.w = texture2DCompare(depths, centroidUV + size.xy * shift.xx, compare, clampDimension);\\n\\n#ifdef _OUT_DISTANCE\\n float _a = mix(fetches.x, fetches.y, f.y);\\n float _b = mix(fetches.z, fetches.w, f.y);\\n outDistance = mix(_a, _b, f.x);\\n#endif\\n\\n vec4 st = step(fetches, vec4(0.0));\\n\\n float a = mix(st.x, st.y, f.y);\\n float b = mix(st.z, st.w, f.y);\\n return mix(a, b, f.x);\\n}\\n',\r\n 'shadowing/tapPCF.glsl':\r\n '#pragma include \"shadowing/shadowLinearSoft.glsl\"\\n\\nfloat getShadowPCF(\\n const in sampler2D depths,\\n const in vec2 size,\\n const in vec2 uv,\\n const in float compare,\\n const in vec2 biasPCF,\\n const in vec4 clampDimension\\n OPT_ARG_outDistance\\n OPT_ARG_jitter) {\\n\\n float res = 0.0;\\n\\n res += texture2DShadowLerp(depths, size, uv + biasPCF, compare, clampDimension OPT_INSTANCE_ARG_outDistance OPT_INSTANCE_ARG_jitter);\\n\\n\\n#if defined(_PCFx1)\\n\\n#else\\n\\n float dx0 = -size.x;\\n float dy0 = -size.y;\\n float dx1 = size.x;\\n float dy1 = size.y;\\n\\n#define TSF(o1,o2) texture2DShadowLerp(depths, size, uv + vec2(o1, o2) + biasPCF, compare, clampDimension OPT_INSTANCE_ARG_outDistance OPT_INSTANCE_ARG_jitter)\\n\\n res += TSF(dx0, dx0);\\n res += TSF(dx0, .0);\\n res += TSF(dx0, dx1);\\n\\n#if defined(_PCFx4)\\n\\n res /=4.0;\\n\\n#elif defined(_PCFx9)\\n res += TSF(.0, dx0);\\n res += TSF(.0, dx1);\\n\\n res += TSF(dx1, dx0);\\n res += TSF(dx1, .0);\\n res += TSF(dx1, dx1);\\n\\n\\n res /=9.0;\\n\\n#elif defined(_PCFx25)\\n\\n float dx02 = 2.0*dx0;\\n float dy02 = 2.0*dy0;\\n float dx2 = 2.0*dx1;\\n float dy2 = 2.0*dy1;\\n\\n // complete row above\\n res += TSF(dx0, dx02);\\n res += TSF(dx0, dx2);\\n\\n res += TSF(.0, dx02);\\n res += TSF(.0, dx2);\\n\\n res += TSF(dx1, dx02);\\n res += TSF(dx1, dx2);\\n\\n // two new col\\n res += TSF(dx02, dx02);\\n res += TSF(dx02, dx0);\\n res += TSF(dx02, .0);\\n res += TSF(dx02, dx1);\\n res += TSF(dx02, dx2);\\n\\n res += TSF(dx2, dx02);\\n res += TSF(dx2, dx0);\\n res += TSF(dx2, .0);\\n res += TSF(dx2, dx1);\\n res += TSF(dx2, dx2);\\n\\n\\n res/=25.0;\\n\\n#endif\\n\\n#undef TSF\\n\\n#endif\\n return res;\\n}\\n/////// end Tap\\n',\r\n 'utils/lightCommon.glsl':\r\n '#define LIGHT_SPOT 0\\n#define LIGHT_POINT 1\\n#define LIGHT_DIRECTION 2\\n#define LIGHT_HEMI 3\\n\\n%UNROLL 4%\\n#ifdef LIGHT_TYPE_%ID%\\n uniform vec4 uEditorLight%ID%_diffuse;\\n\\n #if LIGHT_TYPE_%ID% == LIGHT_DIRECTION\\n uniform vec3 uEditorLight%ID%_viewDirection;\\n #elif LIGHT_TYPE_%ID% == LIGHT_SPOT\\n uniform vec3 uEditorLight%ID%_viewDirection;\\n uniform vec4 uEditorLight%ID%_viewPosition;\\n uniform float uEditorLight%ID%_spotBlend;\\n uniform float uEditorLight%ID%_spotCutOff;\\n uniform vec4 uEditorLight%ID%_attenuation;\\n #elif LIGHT_TYPE_%ID% == LIGHT_POINT\\n uniform vec4 uEditorLight%ID%_viewPosition;\\n uniform vec4 uEditorLight%ID%_attenuation;\\n #elif LIGHT_TYPE_%ID% == LIGHT_HEMI\\n uniform vec4 uEditorLight%ID%_ground;\\n uniform vec3 uEditorLight%ID%_viewDirection;\\n #endif\\n#endif // LIGHT_TYPE\\n%%\\n\\nfloat getLightAttenuation(const in float dist, const in vec4 lightAttenuation) {\\n // lightAttenuation(constantEnabled, linearEnabled, quadraticEnabled)\\n // TODO find a vector alu instead of 4 scalar\\n float constant = lightAttenuation.x;\\n float linear = lightAttenuation.y * dist;\\n float quadratic = lightAttenuation.z * dist * dist;\\n return 1.0 / (constant + linear + quadratic);\\n}\\n\\nvoid precomputeSpot(\\n const in vec3 normal,\\n const in vec3 viewVertex,\\n \\n const in vec3 lightViewDirection,\\n const in vec4 lightAttenuation,\\n const in vec3 lightViewPosition,\\n const in float lightSpotCutOff,\\n const in float lightSpotBlend,\\n \\n out float attenuation,\\n out vec3 eyeLightDir,\\n out float dotNL) {\\n\\n eyeLightDir = lightViewPosition - viewVertex;\\n float dist = length(eyeLightDir);\\n eyeLightDir = dist > 0.0 ? eyeLightDir / dist : vec3( 0.0, 1.0, 0.0 );\\n\\n float cosCurAngle = dot(-eyeLightDir, lightViewDirection);\\n float spot = cosCurAngle * smoothstep(0.0, 1.0, (cosCurAngle - lightSpotCutOff) / lightSpotBlend);\\n\\n dotNL = dot(eyeLightDir, normal);\\n attenuation = spot * getLightAttenuation(dist, lightAttenuation);\\n}\\n\\nvoid precomputePoint(\\n const in vec3 normal,\\n const in vec3 viewVertex,\\n\\n const in vec4 lightAttenuation,\\n const in vec3 lightViewPosition,\\n\\n out float attenuation,\\n out vec3 eyeLightDir,\\n out float dotNL) {\\n\\n eyeLightDir = lightViewPosition - viewVertex;\\n float dist = length(eyeLightDir);\\n\\n attenuation = getLightAttenuation(dist, lightAttenuation);\\n eyeLightDir = dist > 0.0 ? eyeLightDir / dist : vec3( 0.0, 1.0, 0.0 );\\n dotNL = dot(eyeLightDir, normal);\\n}\\n\\nvoid precomputeSun(\\n const in vec3 normal,\\n const in vec3 lightViewDirection,\\n \\n out float attenuation,\\n out vec3 eyeLightDir,\\n out float dotNL) {\\n\\n attenuation = 1.0;\\n eyeLightDir = -lightViewDirection;\\n dotNL = dot(eyeLightDir, normal);\\n}',\r\n 'utils/lights.glsl':\r\n '#pragma include \"utils/lightCommon.glsl\"\\n\\n////////////////\\n// COOK TORRANCE\\n////////////////\\nvec3 specularCookTorrance(\\n const in vec3 normal,\\n const in vec3 lightDir,\\n const in vec3 eyeVector,\\n const in float materialShininess,\\n const in vec3 materialSpecular,\\n const in vec3 lightSpecular) {\\n \\n vec3 h = normalize(eyeVector + lightDir);\\n float nh = dot(normal, h);\\n float specfac = 0.0;\\n\\n if(nh > 0.0) {\\n float nv = max( dot(normal, eyeVector), 0.0 );\\n float i = pow(nh, materialShininess);\\n i = i / (0.1 + nv);\\n specfac = i;\\n }\\n // ugly way to fake an energy conservation (mainly to avoid super bright stuffs with low glossiness)\\n float att = materialShininess > 100.0 ? 1.0 : smoothstep(0.0, 1.0, materialShininess * 0.01);\\n return specfac * materialSpecular * lightSpecular * att;\\n}\\n\\nvec3 lambert(const in float dotNL, const in vec3 materialDiffuse, const in vec3 lightDiffuse) {\\n return dotNL * materialDiffuse * lightDiffuse;\\n}\\n\\nvoid computeLightLambertCookTorrance(\\n const in vec3 normal,\\n const in vec3 eyeVector,\\n const in float dotNL,\\n const in float attenuation,\\n\\n const in vec3 materialDiffuse,\\n const in vec3 materialSpecular,\\n const in float materialShininess,\\n\\n const in vec3 lightDiffuse,\\n const in vec3 lightSpecular,\\n const in vec3 eyeLightDir,\\n\\n out vec3 diffuseOut,\\n out vec3 specularOut,\\n out bool lighted) {\\n\\n lighted = dotNL > 0.0;\\n if (lighted == false) {\\n specularOut = diffuseOut = vec3(0.0);\\n return;\\n }\\n\\n specularOut = attenuation * specularCookTorrance(normal, eyeLightDir, eyeVector, materialShininess, materialSpecular, lightSpecular);\\n diffuseOut = attenuation * lambert(dotNL, materialDiffuse, lightDiffuse);\\n}\\n\\n///////\\n// HEMI\\n///////\\nvoid hemiLight(\\n const in vec3 normal,\\n const in vec3 eyeVector,\\n const in float dotNL,\\n const in vec3 eyeLightDir,\\n\\n const in vec3 materialDiffuse,\\n const in vec3 materialSpecular,\\n const in float materialShininess,\\n\\n const in vec3 lightDiffuse,\\n const in vec3 lightGround,\\n\\n out vec3 diffuseOut,\\n out vec3 specularOut,\\n out bool lighted) {\\n\\n lighted = false;\\n float weight = 0.5 * dotNL + 0.5;\\n diffuseOut = materialDiffuse * mix(lightGround, lightDiffuse, weight);\\n\\n // same cook-torrance as above for sky/ground\\n float skyWeight = 0.5 * dot(normal, normalize(eyeVector + eyeLightDir)) + 0.5;\\n float gndWeight = 0.5 * dot(normal, normalize(eyeVector - eyeLightDir)) + 0.5;\\n float skySpec = pow(skyWeight, materialShininess);\\n float skyGround = pow(gndWeight, materialShininess);\\n float divisor = (0.1 + max( dot(normal, eyeVector), 0.0 ));\\n float att = materialShininess > 100.0 ? 1.0 : smoothstep(0.0, 1.0, materialShininess * 0.01);\\n \\n specularOut = lightDiffuse * materialSpecular * weight * att * (skySpec + skyGround) / divisor;\\n}\\n',\r\n 'utils/lightsPBR.glsl':\r\n '#pragma include \"utils/common.glsl\"\\n#pragma include \"utils/lightCommon.glsl\"\\n\\nvec4 precomputeGGX(const in vec3 normal, const in vec3 eyeVector, const in float roughness) {\\n float NoV = saturate(dot(normal, eyeVector));\\n float r2 = roughness * roughness;\\n return vec4(r2, r2 * r2, NoV, NoV * (1.0 - r2));\\n}\\n\\n// Walter et al. 2007, \"Microfacet models for refraction through rough surfaces\"\\nfloat D_GGX(const vec4 precomputeGGX, const float NoH) {\\n float a2 = precomputeGGX.y;\\n float d = (NoH * a2 - NoH) * NoH + 1.0;\\n return a2 / (PI * d * d);\\n}\\n\\n// Schlick 1994, \"An Inexpensive BRDF Model for Physically-Based Rendering\"\\nvec3 F_Schlick(const vec3 f0, const float f90, const in float VoH) {\\n float VoH5 = pow(1.0 - VoH, 5.0);\\n return f90 * VoH5 + (1.0 - VoH5) * f0;\\n}\\n\\n// greyscale f0 version (clearcoat)\\nfloat F_Schlick(const float f0, const float f90, const in float VoH) {\\n return f0 + (f90 - f0) * pow(1.0 - VoH, 5.0);\\n}\\n\\n\\n// Heitz 2014, \"Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs\"\\nfloat V_SmithCorrelated(const vec4 precomputeGGX, const float NoL) {\\n float a = precomputeGGX.x;\\n float smithV = NoL * (precomputeGGX.w + a);\\n float smithL = precomputeGGX.z * (NoL * (1.0 - a) + a);\\n return 0.5 / (smithV + smithL);\\n // same as\\n // Hammon 2017, \"PBR Diffuse Lighting for GGX+Smith Microsurfaces\"\\n // return 0.5 / mix(2.0 * NoL * NoV, NoL + NoV, precomputeGGX.y)\\n}\\n\\nvec3 specularLobe(const vec4 precomputeGGX, const vec3 normal, const vec3 eyeVector, const vec3 eyeLightDir, const vec3 specular, const float NoL, const float f90) {\\n vec3 H = normalize(eyeVector + eyeLightDir);\\n float NoH = saturate(dot(normal, H));\\n float VoH = saturate(dot(eyeLightDir, H));\\n\\n // distribution / visibility / fresnel\\n float D = D_GGX(precomputeGGX, NoH);\\n float V = V_SmithCorrelated(precomputeGGX, NoL);\\n vec3 F = F_Schlick(specular, f90, VoH);\\n\\n return (D * V * PI) * F; // we multipy by PI because our diffuse is not divided by PI\\n}\\n\\n// pure compute Light PBR\\nvoid computeLightLambertGGX(\\n const in vec3 normal,\\n const in vec3 eyeVector,\\n const in float NoL,\\n const in vec4 precomputeGGX,\\n\\n const in vec3 diffuse,\\n const in vec3 specular,\\n\\n const in float attenuation,\\n const in vec3 lightColor,\\n const in vec3 eyeLightDir,\\n const in float f90,\\n\\n out vec3 diffuseOut,\\n out vec3 specularOut,\\n out bool lighted) {\\n\\n lighted = NoL > 0.0;\\n if (lighted == false) {\\n specularOut = diffuseOut = vec3(0.0);\\n return;\\n }\\n\\n vec3 colorAttenuate = attenuation * NoL * lightColor;\\n specularOut = colorAttenuate * specularLobe(precomputeGGX, normal, eyeVector, eyeLightDir, specular, NoL, f90);\\n diffuseOut = colorAttenuate * diffuse;\\n}\\n\\n/////////////\\n// ANISOTROPY\\n/////////////\\n\\nfloat V_SmithGGXCorrelated_Anisotropic(float at, float ab, float ToV, float BoV, float ToL, float BoL, float NoV, float NoL) {\\n // Heitz 2014, \"Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs\"\\n // UE4 version : https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/BRDF.ush#L270-L286\\n float lambdaV = NoL * length(vec3(at * ToV, ab * BoV, NoV));\\n float lambdaL = NoV * length(vec3(at * ToL, ab * BoL, NoL));\\n return 0.5 / (lambdaV + lambdaL);\\n}\\n\\nfloat D_GGX_Anisotropic(const float at, const float ab, const float ToH, const float BoH, const float NoH) {\\n // Burley 2012, \"Physically-Based Shading at Disney\"\\n // https://github.com/google/filament/blob/master/shaders/src/brdf.fs#L81\\n // similar to UE4 version https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/BRDF.ush#L232-L238\\n float a2 = at * ab;\\n vec3 d = vec3(ab * ToH, at * BoH, a2 * NoH);\\n float x = a2 / dot(d, d);\\n return a2 * (x * x) / PI;\\n}\\n\\nvec3 anisotropicLobe(\\n const vec4 precomputeGGX,\\n const vec3 normal,\\n const vec3 eyeVector,\\n\\n const vec3 eyeLightDir,\\n const vec3 specular,\\n const float NoL,\\n const float f90,\\n\\n const in vec3 anisotropicT,\\n const in vec3 anisotropicB,\\n const in float anisotropy) {\\n\\n vec3 H = normalize(eyeVector + eyeLightDir);\\n float NoH = saturate(dot(normal, H));\\n float NoV = saturate(dot(normal, eyeVector));\\n float VoH = saturate(dot(eyeLightDir, H));\\n\\n float ToV = dot(anisotropicT, eyeVector);\\n float BoV = dot(anisotropicB, eyeVector);\\n float ToL = dot(anisotropicT, eyeLightDir);\\n float BoL = dot(anisotropicB, eyeLightDir);\\n float ToH = dot(anisotropicT, H);\\n float BoH = dot(anisotropicB, H);\\n\\n // slide 26, Disney 2012, \"Physically Based Shading at Disney\"\\n // https://blog.selfshadow.com/publications/s2012-shading-course/burley/s2012_pbs_disney_brdf_notes_v3.pdf\\n float aspect = sqrt(1.0 - abs(anisotropy) * 0.9);\\n if (anisotropy > 0.0) aspect = 1.0 / aspect;\\n float at = precomputeGGX.x * aspect;\\n float ab = precomputeGGX.x / aspect;\\n\\n // slide 24, Kulla 2017, \"Revisiting Physically Based Shading at Imageworks\"\\n // https://blog.selfshadow.com/publications/s2017-shading-course/imageworks/s2017_pbs_imageworks_slides_v2.pdf\\n // float at = max(0.002025, precomputeGGX.x * (1.0 + anisotropy));\\n // float ab = max(0.002025, precomputeGGX.x * (1.0 - anisotropy));\\n\\n // specular anisotropic BRDF\\n float D = D_GGX_Anisotropic(at, ab, ToH, BoH, NoH);\\n float V = V_SmithGGXCorrelated_Anisotropic(at, ab, ToV, BoV, ToL, BoL, NoV, NoL);\\n vec3 F = F_Schlick(specular, f90, VoH);\\n\\n return (D * V * PI) * F;\\n}\\n\\nvoid computeLightLambertGGXAnisotropy(\\n const in vec3 normal,\\n const in vec3 eyeVector,\\n const in float NoL,\\n const in vec4 precomputeGGX,\\n\\n const in vec3 diffuse,\\n const in vec3 specular,\\n\\n const in float attenuation,\\n const in vec3 lightColor,\\n const in vec3 eyeLightDir,\\n const in float f90,\\n\\n const in vec3 anisotropicT,\\n const in vec3 anisotropicB,\\n const in float anisotropy,\\n\\n out vec3 diffuseOut,\\n out vec3 specularOut,\\n out bool lighted) {\\n\\n lighted = NoL > 0.0;\\n if (lighted == false) {\\n specularOut = diffuseOut = vec3(0.0);\\n return;\\n }\\n\\n vec3 colorAttenuate = attenuation * NoL * lightColor;\\n specularOut = colorAttenuate * anisotropicLobe(precomputeGGX, normal, eyeVector, eyeLightDir, specular, NoL, f90, anisotropicT, anisotropicB, anisotropy);\\n diffuseOut = colorAttenuate * diffuse;\\n}\\n',\r\n 'utils/lightsSSS.glsl':\r\n '#pragma include \"utils/common.glsl\"\\n#pragma include \"utils/lightCommon.glsl\"\\n\\n///////////////////////////\\n/// SUBSURFACE TRANSLUCENCY\\n///////////////////////////\\nvec3 computeLightSSS(\\n const in float dotNL,\\n const in float attenuation,\\n const in float thicknessFactor,\\n const in vec3 translucencyColor,\\n const in float translucencyFactor,\\n const in float shadowDistance,\\n const in vec3 diffuse,\\n const in vec3 lightColor) {\\n\\n // http://blog.stevemcauley.com/2011/12/03/energy-conserving-wrapped-diffuse/\\n // float scatter = 0.5;\\n // float wrap = saturate((dotNL + scatter) / ((1.0 + scatter) * (1.0 + scatter)));\\n\\n // https://github.com/iryoku/separable-sss/blob/master/SeparableSSS.h#L362\\n float wrap = saturate(0.3 - dotNL);\\n float thickness = max(0.0, shadowDistance / max(0.001, thicknessFactor));\\n\\n // http://www.crytek.com/download/2014_03_25_CRYENGINE_GDC_Schultz.pdf\\n // skin approximation vec3(0.98, 0.3, 0.2)\\n float finalAttenuation = translucencyFactor * attenuation * wrap;\\n return finalAttenuation * lightColor * diffuse * exp(-thickness / max(translucencyColor, vec3(0.001))); \\n}\\n',\r\n 'utils/skinning.glsl':\r\n \"//////////////////////////////\\n// UN-OPTIMIZED VERSION (WITH IF)\\n//////////////////////////////\\n\\n// //http://http.developer.nvidia.com/GPUGems/gpugems_ch04.html\\n// mat4 getMat4FromVec4(const int index, inout mat4 myMat) {\\n// // We have to use a global variable because we can't access dynamically\\n// // matrix is transpose so we should do vec * matrix\\n// myMat[0] = uBones[index];\\n// myMat[1] = uBones[index + 1];\\n// myMat[2] = uBones[index + 2];\\n// return myMat;\\n// }\\n\\n// mat4 skinning( const in vec4 weights, const in vec4 bonesIndex ) {\\n// ivec4 idx = 3 * ivec4(bonesIndex);\\n// mat4 tmpMat = mat4(1.0);\\n// mat4 outMat = mat4(0.0);\\n\\n// // we handle negative weights\\n// if(all(equal(weights, vec4(0.0)))) return tmpMat;\\n\\n// if(weights.x != 0.0) outMat += weights.x * getMat4FromVec4(idx.x, tmpMat);\\n// if(weights.y != 0.0) outMat += weights.y * getMat4FromVec4(idx.y, tmpMat);\\n// if(weights.z != 0.0) outMat += weights.z * getMat4FromVec4(idx.z, tmpMat);\\n// if(weights.w != 0.0) outMat += weights.w * getMat4FromVec4(idx.w, tmpMat);\\n// return outMat;\\n// }\\n\\n//////////////////////////////\\n// UN-OPTIMIZED VERSION (NO IF)\\n//////////////////////////////\\n\\nmat4 skinning(const in vec4 weights, const in vec4 bonesIndex) {\\n ivec4 idx = 3 * ivec4(bonesIndex);\\n mat4 tmpMat = mat4(1.0);\\n\\n // if sum is 0, return identity\\n vec4 absWeights = -abs(weights);\\n mat4 outMat = step(0.0, absWeights.x + absWeights.y + absWeights.z + absWeights.w) * tmpMat;\\n\\n // we handle negative weights\\n // outMat[3][3] += weights.x + weights.y + weights.z + weights.w;\\n\\n tmpMat[0] = uBones[idx.x];\\n tmpMat[1] = uBones[idx.x + 1];\\n tmpMat[2] = uBones[idx.x + 2];\\n outMat += weights.x * tmpMat;\\n\\n tmpMat[0] = uBones[idx.y];\\n tmpMat[1] = uBones[idx.y + 1];\\n tmpMat[2] = uBones[idx.y + 2];\\n outMat += weights.y * tmpMat;\\n\\n tmpMat[0] = uBones[idx.z];\\n tmpMat[1] = uBones[idx.z + 1];\\n tmpMat[2] = uBones[idx.z + 2];\\n outMat += weights.z * tmpMat;\\n\\n tmpMat[0] = uBones[idx.w];\\n tmpMat[1] = uBones[idx.w + 1];\\n tmpMat[2] = uBones[idx.w + 2];\\n outMat += weights.w * tmpMat;\\n\\n return outMat;\\n}\\n\",\r\n 'utils/morphing.glsl':\r\n 'vec3 morphing(const in vec4 weights, const in vec3 vertex, const in vec3 target0) {\\n return mix(vertex, target0, weights[0]);\\n}\\n\\nvec3 morphing(const in vec4 weights, const in vec3 vertex, const in vec3 target0, const in vec3 target1) {\\n vec3 vecOut = vertex * (1.0 - ( weights[0] + weights[1]));\\n vecOut += target0 * weights[0];\\n vecOut += target1 * weights[1];\\n return vecOut;\\n}\\n\\nvec3 morphing(const in vec4 weights, const in vec3 vertex, const in vec3 target0, const in vec3 target1, const in vec3 target2) {\\n vec3 vecOut = vertex * (1.0 - ( weights[0] + weights[1] + weights[2]));\\n vecOut += target0 * weights[0];\\n vecOut += target1 * weights[1];\\n vecOut += target2 * weights[2];\\n return vecOut;\\n}\\n\\nvec3 morphing(const in vec4 weights,const in vec3 vertex,const in vec3 target0,const in vec3 target1,const in vec3 target2,const in vec3 target3) {\\n vec3 vecOut = vertex * (1.0 - ( weights[0] + weights[1] + weights[2] + weights[3]));\\n vecOut += target0 * weights[0];\\n vecOut += target1 * weights[1];\\n vecOut += target2 * weights[2];\\n vecOut += target3 * weights[3];\\n return vecOut;\\n}\\n',\r\n 'utils/environment.glsl':\r\n 'uniform float uEnvironmentExposure;\\r\\nuniform mat3 uEnvironmentTransform;\\r\\nuniform vec2 uTextureEnvironmentSpecularPBRLodRange;\\r\\nuniform vec2 uTextureEnvironmentSpecularPBRTextureSize;\\r\\nuniform vec3 uDiffuseSPH[9];\\r\\n\\r\\n#ifdef HAS_ENVIRONMENT_BRDF\\r\\nuniform sampler2D sIntegrateBRDF;\\r\\n#endif\\r\\n\\r\\nvec3 computeDiffuseSPH(const in vec3 normal) {\\r\\n vec3 n = uEnvironmentTransform * normal;\\r\\n // https://github.com/cedricpinson/envtools/blob/master/Cubemap.cpp#L523\\r\\n vec3 result =\\r\\n uDiffuseSPH[0] +\\r\\n uDiffuseSPH[1] * n.y +\\r\\n uDiffuseSPH[2] * n.z +\\r\\n uDiffuseSPH[3] * n.x +\\r\\n uDiffuseSPH[4] * n.y * n.x +\\r\\n uDiffuseSPH[5] * n.y * n.z +\\r\\n uDiffuseSPH[6] * (3.0 * n.z * n.z - 1.0) +\\r\\n uDiffuseSPH[7] * (n.z * n.x) +\\r\\n uDiffuseSPH[8] * (n.x * n.x - n.y * n.y);\\r\\n return max(result, vec3(0.0));\\r\\n}\\r\\n\\r\\n#ifndef HAS_LEGACY_CLASSIC\\r\\n\\r\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/BRDF.ush#L202\\r\\nvec3 integrateBRDF(const in vec3 specular, const in float roughness, const in float NoV, const in float f90) {\\r\\n#ifdef HAS_ENVIRONMENT_BRDF\\r\\n vec4 rgba = texture2D(sIntegrateBRDF, vec2(NoV, roughness));\\r\\n float b = (rgba[3] * 65280.0 + rgba[2] * 255.0);\\r\\n float a = (rgba[1] * 65280.0 + rgba[0] * 255.0);\\r\\n const float div = 1.0 / 65535.0;\\r\\n return (specular * a + b * f90) * div;\\r\\n#else\\r\\n // https://www.unrealengine.com/blog/physically-based-shading-on-mobile\\r\\n // TODO should we use somehow specular f0 ?\\r\\n const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);\\r\\n const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04);\\r\\n vec4 r = roughness * c0 + c1;\\r\\n float a004 = min(r.x * r.x, exp2(-9.28 * NoV)) * r.x + r.y;\\r\\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\\r\\n return specular * AB.x + AB.y * f90;\\r\\n#endif\\r\\n}\\r\\n\\r\\n// Frostbite, Lagarde paper p67\\r\\n// http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf\\r\\nfloat linRoughnessToMipmap(const in float roughnessLinear) {\\r\\n return sqrt(roughnessLinear);\\r\\n}\\r\\n\\r\\n#ifdef ENV_CUBEMAP\\r\\nuniform samplerCube sSpecularPBR;\\r\\n#pragma include \"utils/cubemapLod.glsl\"\\r\\n#endif\\r\\n\\r\\n#ifdef ENV_PANORAMA\\r\\nuniform sampler2D sSpecularPBR;\\r\\n#pragma include \"utils/panoramaLod.glsl\"\\r\\n#endif\\r\\n\\r\\nvec3 getSpecularDominantDir(const in vec3 N, const in vec3 R, const in float realRoughness) {\\r\\n float smoothness = 1.0 - realRoughness;\\r\\n float lerpFactor = smoothness * (sqrt(smoothness) + realRoughness);\\r\\n // The result is not normalized as we fetch in a cubemap\\r\\n return mix(N, R, lerpFactor);\\r\\n}\\r\\n\\r\\nvec3 getPrefilteredEnvMapColor(const in vec3 normal, const in vec3 eyeVector, const in float roughness, const in vec3 frontNormal) {\\r\\n vec3 R = reflect(-eyeVector, normal);\\r\\n\\r\\n // specular dominant dir is using the bentNormal in the anisotropy scenario\\r\\n // if we want to get rid of the dominant dir but still have a matching result with anisotropy=0 we could try:\\r\\n // R = mix(getSpecularDominantDir(normal, R, roughness), R, anisotropy);\\r\\n R = getSpecularDominantDir(normal, R, roughness);\\r\\n\\r\\n#ifdef ENV_CUBEMAP\\r\\n vec3 prefilteredColor = prefilterEnvMapCube(roughness, uEnvironmentTransform * R);\\r\\n#else\\r\\n vec3 prefilteredColor = prefilterEnvMapPanorama(roughness, uEnvironmentTransform * R);\\r\\n#endif\\r\\n\\r\\n // http://marmosetco.tumblr.com/post/81245981087\\r\\n // marmoset uses 1.3, we force it to 1.0\\r\\n float factor = clamp(1.0 + dot(R, frontNormal), 0.0, 1.0);\\r\\n prefilteredColor *= factor * factor;\\r\\n return prefilteredColor;\\r\\n}\\r\\n\\r\\nvec3 computeIBLSpecularUE4(const in vec3 normal, const in vec3 eyeVector, const in float roughness, const in vec3 specular, const in vec3 frontNormal, const in float f90) {\\r\\n float NoV = dot(normal, eyeVector);\\r\\n return getPrefilteredEnvMapColor(normal, eyeVector, roughness, frontNormal) * integrateBRDF(specular, roughness, NoV, f90);\\r\\n}\\r\\n\\r\\n#endif\\r\\n',\r\n 'utils/panoramaLod.glsl':\r\n '#pragma include \"utils/functions.glsl\"\\r\\n\\r\\nvec2 computeUVForMipmap(const in float level, const in vec2 uv) {\\r\\n // width for level\\r\\n float widthForLevel = exp2(uTextureEnvironmentSpecularPBRLodRange.x - level);\\r\\n\\r\\n // the height locally for the level in pixel\\r\\n // to opimitize a bit we scale down the v by two in the inputs uv\\r\\n float heightForLevel = widthForLevel * 0.5;\\r\\n\\r\\n // compact version\\r\\n float texelSize = 1.0 / uTextureEnvironmentSpecularPBRTextureSize.x;\\r\\n vec2 uvSpaceLocal = vec2(1.0) + uv * vec2(widthForLevel - 2.0, heightForLevel - 2.0);\\r\\n uvSpaceLocal.y += uTextureEnvironmentSpecularPBRTextureSize.x - widthForLevel;\\r\\n return uvSpaceLocal * texelSize;\\r\\n}\\r\\n\\r\\n//for y up\\r\\nvec2 normalToPanoramaUVY(const in vec3 dir) {\\r\\n float n = length(dir.xz);\\r\\n\\r\\n // to avoid bleeding the max(-1.0,dir.x / n) is needed\\r\\n vec2 pos = vec2((n > 0.0000001) ? max(-1.0, dir.x / n) : 0.0, dir.y);\\r\\n\\r\\n // fix edge bleeding\\r\\n if (pos.x > 0.0) pos.x = min(0.999999, pos.x);\\r\\n\\r\\n pos = acos(pos) * 0.3183098861837907; // inv_pi\\r\\n\\r\\n pos.x = (dir.z > 0.0) ? pos.x * 0.5 : 1.0 - (pos.x * 0.5);\\r\\n\\r\\n // shift u to center the panorama to -z\\r\\n pos.x = mod(pos.x - 0.25 + 1.0, 1.0);\\r\\n pos.y = 1.0 - pos.y;\\r\\n return pos;\\r\\n}\\r\\n\\r\\nvec3 prefilterEnvMapPanorama(const in float rLinear, const in vec3 R) {\\r\\n float lod = min(uTextureEnvironmentSpecularPBRLodRange.x, linRoughnessToMipmap(rLinear) * uTextureEnvironmentSpecularPBRLodRange.y);\\r\\n vec2 uvBase = normalToPanoramaUVY(R);\\r\\n\\r\\n // // we scale down v here because it avoid to do twice in sub functions\\r\\n // uvBase.y *= 0.5;\\r\\n\\r\\n vec3 texel0 = LUVToRGB(texture2D(sSpecularPBR, computeUVForMipmap(floor(lod), uvBase)));\\r\\n vec3 texel1 = LUVToRGB(texture2D(sSpecularPBR, computeUVForMipmap(ceil(lod), uvBase)));\\r\\n\\r\\n return mix(texel0, texel1, fract(lod));\\r\\n}\\r\\n',\r\n 'utils/cubemapLod.glsl':\r\n '#pragma include \"utils/functions.glsl\"\\r\\n\\r\\n#extension GL_EXT_shader_texture_lod : enable\\r\\nvec3 prefilterEnvMapCube(const in float rLinear, const in vec3 R) {\\r\\n vec3 dir = R;\\r\\n float lod = min(uTextureEnvironmentSpecularPBRLodRange.x, linRoughnessToMipmap(rLinear) * uTextureEnvironmentSpecularPBRLodRange.y);\\r\\n\\r\\n // http://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-physically-based-rendering/\\r\\n float scale = 1.0 - exp2(lod) / uTextureEnvironmentSpecularPBRTextureSize.x;\\r\\n vec3 absDir = abs(dir);\\r\\n float M = max(max(absDir.x, absDir.y), absDir.z);\\r\\n\\r\\n if (absDir.x != M) dir.x *= scale;\\r\\n if (absDir.y != M) dir.y *= scale;\\r\\n if (absDir.z != M) dir.z *= scale;\\r\\n\\r\\n return LUVToRGB(textureCubeLodEXT(sSpecularPBR, dir, lod));\\r\\n}\\r\\n',\r\n 'utils/cubemap.glsl':\r\n '#pragma include \"utils/functions.glsl\"\\n\\n// used by background.frag\\nvec3 textureCubeFixed(const in samplerCube tex, const in vec3 R, const in float size) {\\n vec3 dir = R;\\n float scale = 1.0 - 1.0 / size;\\n // http://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-physically-based-rendering/\\n vec3 absDir = abs(dir);\\n float M = max(max(absDir.x, absDir.y), absDir.z);\\n\\n if (absDir.x != M) dir.x *= scale;\\n if (absDir.y != M) dir.y *= scale;\\n if (absDir.z != M) dir.z *= scale;\\n\\n return LUVToRGB(textureCube(tex, dir));\\n}\\n',\r\n 'utils/rand.glsl':\r\n '\\n// white vs interleaved vs blue noise\\n// https://blog.demofox.org/2017/10/31/animating-noise-for-integration-over-time/\\n\\n// to test in a shadertoy\\n// https://www.shadertoy.com/view/lsdfD4\\n\\n// https://www.shadertoy.com/view/4djSRW\\n// most combinations are possible : in[1,2,3] -> out[1,2,3]\\n#define INT_SCALE1 .1031\\nfloat pseudoRandom(const in vec2 fragCoord) {\\n vec3 p3 = fract(vec3(fragCoord.xyx) * INT_SCALE1);\\n p3 += dot(p3, p3.yzx + 19.19);\\n return fract((p3.x + p3.y) * p3.z);\\n}\\n\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/Random.ush#L27\\nfloat interleavedGradientNoise(const in vec2 fragCoord, const in float frameMod) {\\n vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\\n return fract(magic.z * fract(dot(fragCoord.xy + frameMod * vec2(47.0, 17.0) * 0.695, magic.xy)));\\n}\\n\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/MaterialTemplate.ush#L1863\\n// we slighty change it by multiplying by 1.2 (to match with other noise), otherwise the range seems to be between [0 - 0.83]\\nfloat ditheringNoise(const in vec2 fragCoord, const in float frameMod) {\\n // float fm = mod(frameMod, 2.0) == 0.0 ? 1.0 : -1.0;\\n float fm = frameMod;\\n float dither5 = fract((fragCoord.x + fragCoord.y * 2.0 - 1.5 + fm) / 5.0);\\n float noise = fract(dot(vec2(171.0, 231.0) / 71.0, fragCoord.xy));\\n return (dither5 * 5.0 + noise) * (1.2 / 6.0);\\n}\\n\\nvoid ditheringMaskingDiscard(\\n const in vec4 fragCoord,\\n const in int dithering,\\n const in float alpha,\\n const in float factor,\\n\\n const in float thinLayer,\\n\\n const in float frameMod,\\n const in vec2 nearFar,\\n\\n const in vec4 halton) {\\n\\n float rnd;\\n\\n if (thinLayer == 0.0) {\\n float linZ = (1.0 / fragCoord.w - nearFar.x) / (nearFar.y - nearFar.x);\\n float sliceZ = floor(linZ * 500.0) / 500.0;\\n rnd = interleavedGradientNoise(fragCoord.xy + sliceZ, frameMod);\\n } else {\\n rnd = pseudoRandom(fragCoord.xy + halton.xy * 1000.0 + fragCoord.z * (abs(halton.z) == 2.0 ? 1000.0 : 1.0));\\n }\\n\\n if ((alpha * factor) < rnd) discard;\\n}\\n',\r\n 'utils/curvature.glsl':\r\n '#extension GL_OES_standard_derivatives : enable\\n\\nuniform float uMatcapCurvature;\\nuniform mat4 uProjectionMatrix;\\n\\n// http://madebyevan.com/shaders/curvature/\\nfloat getCurvature(const in vec3 normal) {\\n#ifndef GL_OES_standard_derivatives\\n return 1.0;\\n#else\\n if (uMatcapCurvature == 0.0) return 1.0;\\n\\n // Compute curvature\\n vec3 dx = dFdx(normal);\\n vec3 dy = dFdy(normal);\\n vec3 xneg = normal - dx;\\n vec3 xpos = normal + dx;\\n vec3 yneg = normal - dy;\\n vec3 ypos = normal + dy;\\n\\n float factor = uMatcapCurvature / (length(vViewVertex.xyz) * atan(-1.0 / uProjectionMatrix[2][3]));\\n float curvature = (cross(xneg, xpos).y - cross(yneg, ypos).x) * factor;\\n\\n float curvDirt = clamp(-curvature * 1.5, 0.0, 1.0);\\n float curvEdge = clamp(curvature * 2.5, 0.0, 1.0);\\n\\n float factorDirt = mix(1.0, 0.3, curvDirt);\\n float factorEdge = 2.0;\\n\\n return mix(factorDirt, factorEdge, curvEdge);\\n#endif\\n}\\n',\r\n 'utils/refraction.glsl':\r\n '#pragma include \"utils/encodeDecode.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n\\n// manual refract mostly to re-use dot(I, N)\\nvec3 batchRefract(const in vec3 I, const in vec3 N , const in float eta, const in float dotNI) {\\n float k = 1.0 - eta * eta * (1.0 - dotNI * dotNI);\\n return (k < 0.0) ? vec3(0.0) : eta * I - (eta * dotNI + sqrt(k)) * N;\\n}\\n\\nuniform float uOpacityIOR;\\nuniform vec3 uOpacityRefractionColor;\\n\\nuniform float uBoxRadius;\\nuniform int uIsVr;\\nuniform sampler2D uTextureToBeRefracted;\\nuniform vec2 uTextureToBeRefractedSize;\\nuniform mat4 uProjectionMatrix;\\nuniform vec4 uPreviousHalton;\\nuniform vec2 uPreviousGlobalTexRatio;\\nuniform vec2 uPreviousGlobalTexSize;\\nuniform vec2 uGlobalTexSize;\\n\\n#ifndef HAS_REFRACTION_NORMAL_OFFSET\\n uniform sampler2D uTextureMipmapDepth;\\n uniform vec2 uNearFar;\\n uniform vec2 uGlobalTexRatio;\\n uniform mat4 uPreviousProjection;\\n uniform vec4 uTaaCornersCSLeft[2];\\n#endif\\n\\nvec3 refraction(\\n const in float roughness,\\n const in vec3 normalSurface,\\n\\n#ifdef HAS_REFRACTION_NORMAL_OFFSET\\n const in vec3 normalVertex\\n#else\\n const in vec3 eyeVector\\n#endif\\n)\\n\\n{\\n\\n#ifdef HAS_REFRACTION_NORMAL_OFFSET\\n // no reprojection and no depth compare for the normal offset version (not worth it as for the moment)\\n vec2 uv = gl_FragCoord.xy / uGlobalTexSize.xy + (normalVertex.xy - normalSurface.xy) * (uOpacityIOR - 1.0);\\n#else\\n float dotNI = -dot(eyeVector, normalSurface);\\n\\n // compute UV at distortion point\\n // https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Curved_Glass\\n vec3 pos = vViewVertex.xyz + uBoxRadius * batchRefract(-eyeVector, normalSurface, 1.0 / uOpacityIOR, dotNI);\\n pos = (uProjectionMatrix * vec4(pos, 1.0)).xyw; // we discard z and only keep the perspective divide\\n vec2 uv = 0.5 + 0.5 * pos.xy / pos.z;\\n\\n if (uIsVr == 1) {\\n // no reprojection in vr (would require another uTaaCornersCSRight uniform)\\n uv.x *= 0.5;\\n if (gl_FragCoord.x > uGlobalTexSize.x * 0.5) uv.x += 0.5;\\n } else {\\n // we discard refraction on pixels that are in front of refracted surface by\\n // comparing current pixel depth with depth at refraction point\\n // if we are on the background we take the depth of the current position\\n #ifdef DEPTH_MIPMAP\\n vec3 pack = texture2D(uTextureMipmapDepth, uPreviousGlobalTexRatio * vec2(uv.x, (1.0 - uv.y) * 0.5)).xyz;\\n float depthRefracted = pack.x == 1.0 ? (-vViewVertex.z - uNearFar.x) / (uNearFar.y - uNearFar.x) : decode24(pack);\\n #else\\n vec4 pack = texture2D(uTextureMipmapDepth, uGlobalTexRatio * uv);\\n float depthRefracted = pack.x == 1.0 ? (-vViewVertex.z - uNearFar.x) / (uNearFar.y - uNearFar.x) : decodeDepth(pack);\\n #endif\\n\\n // compute view space refracted position from depth\\n vec4 AB = mix(uTaaCornersCSLeft[0], uTaaCornersCSLeft[1], uv.x);\\n pos = vec3(mix(AB.xy, AB.zw, uv.y), 1.0) * -(uNearFar.x + (uNearFar.y - uNearFar.x) * depthRefracted);\\n\\n // pos is computed with last frame projection which is not entirely correct\\n if (dot(pos.xyz - vViewVertex.xyz, normalSurface) > 0.00001) {\\n uv = gl_FragCoord.xy / uGlobalTexSize.xy;\\n } else {\\n // reproject view vector\\n pos = (uPreviousProjection * vec4(pos, 1.0)).xyw;\\n uv.xy = 0.5 + 0.5 * pos.xy / pos.z;\\n }\\n }\\n#endif\\n\\n // unjitter (so that the refraction is stable when doing supersampling)\\n uv -= 0.5 * uPreviousHalton.xy / uPreviousGlobalTexSize.xy;\\n\\n // repeat mirror for out of screen fetches (it\\'s better than a sudden cut)\\n // we can\\'t simply use MIRRORED_REPEAT because of manual mipmap\\n uv = abs(uv); \\n if (uv.x > 1.0) uv.x -= 2.0 * (uv.x - 1.0);\\n if (uv.y > 1.0) uv.y -= 2.0 * (uv.y - 1.0);\\n\\n // adjusts roughness-to-mipmap depending of distance from surface (aka: consistent blurring even when we unzoom)\\n float adjustRoughness = clamp(uProjectionMatrix[1][1] / 12.0 * uBoxRadius / -vViewVertex.z, 0.0, 1.0);\\n float adjustFactor = 0.05; // the higher it is, the sharper it will be when we are far away\\n adjustRoughness = (1.0 + adjustFactor) * adjustRoughness / (adjustFactor + adjustRoughness);\\n\\n // roughness support\\n float maxLod = 7.0;\\n float lodLevel = maxLod * min(0.99, roughness * adjustRoughness); // same as in pbr\\n\\n float lowerLevel = floor(lodLevel);\\n float higherLevel = min(maxLod, lowerLevel + 1.0);\\n float lerpFactor = lodLevel - lowerLevel; // [0,1]\\n\\n // see packMipmapRefraction.glsl\\n // mipmap packing of refracted texture (the packing is not optimal and is a bit naive):\\n // level0: (1-uv)/2\\n // level1: (3-uv)/4\\n // level2: (7-uv)/8\\n // level3: (15-uv)/16\\n // level4: (31-uv)/32\\n // etc...\\n\\n float powLevel = pow(2.0, higherLevel);\\n\\n // border pixel issue with bilinear...\\n vec2 pixelSize = 2.0 * powLevel / uTextureToBeRefractedSize;\\n uv = max(pixelSize, min(1.0 - pixelSize, uv));\\n\\n // lower uv\\n vec2 uvLower = vec2(2.0 * uv.x, powLevel - 1.0 - uv.y) * uPreviousGlobalTexRatio.xy / powLevel;\\n\\n // higher uv\\n powLevel *= 2.0;\\n vec2 uvHigher = vec2(2.0 * uv.x, powLevel - 1.0 - uv.y) * uPreviousGlobalTexRatio.xy / powLevel;\\n\\n // manual lerp, mixing rgbm colors exhibits visible seams\\n vec3 fetch = mix(decodeRGBM(texture2D(uTextureToBeRefracted, uvLower), 7.0), decodeRGBM(texture2D(uTextureToBeRefracted, uvHigher), 7.0), lerpFactor);\\n\\n#ifndef HAS_REFRACTION_NORMAL_OFFSET\\n // reduce bright fresnel effect, it darkens/accentuates the edges in some cases (very rough surface)\\n fetch.rgb -= fetch.rgb * pow(clamp(1.0 + dotNI, 0.0, 1.0), 4.0);\\n#endif\\n\\n return uOpacityRefractionColor * fetch.rgb;\\n}\\n',\r\n 'utils/clearCoat.glsl':\r\n '#pragma include \"utils/lightsPBR.glsl\"\\n\\n//https://en.wikipedia.org/wiki/Beer%E2%80%93Lambert_law for translucent material absorbtion\\nvec3 beerLambert(const float NoV, const float NoL, const vec3 tint, const float d) {\\n // exp(tint * -distance * density)\\n return exp(tint * -(d * ((NoL + NoV) / max(NoL * NoV, 1e-3))));\\n}\\n\\nvec3 getClearCoatAbsorbtion(const in float NoV, const in float NoL, const in float clearCoatFactor) {\\n return mix(vec3(1.0), beerLambert(NoV, NoL, uClearCoatTint, uClearCoatThickness), clearCoatFactor);\\n}\\n\\n// compute Light PBR for clearCoat layer\\nvoid computeLightLambertGGXClearCoat(\\n const in float ccNoV,\\n const in vec3 normal,\\n const in vec3 eyeVector,\\n const in float dotNL,\\n const in vec4 precomputeGGX,\\n\\n const in float attenuation,\\n const in vec3 lightColor,\\n const in vec3 eyeLightDir,\\n\\n const in float clearCoatFactor,\\n\\n out vec3 clearCoatSpecular,\\n out vec3 clearCoatAttenuation) {\\n\\n if (dotNL <= 0.0) {\\n clearCoatSpecular = vec3(0.0);\\n clearCoatAttenuation = vec3(0.0);\\n return;\\n }\\n\\n float ccNoL = saturate(dot(normal, -refract(eyeLightDir, normal, 1.0 / uClearCoatIor)));\\n vec3 clearCoatAbsorption = getClearCoatAbsorbtion(ccNoV, ccNoL, clearCoatFactor);\\n\\n vec3 H = normalize(eyeVector + eyeLightDir);\\n float NoH = saturate(dot(normal, H));\\n float VoH = saturate(dot(eyeLightDir, H));\\n\\n // distribution / visibility / fresnel\\n float D = D_GGX(precomputeGGX, NoH);\\n float V = V_SmithCorrelated(precomputeGGX, ccNoL);\\n float F = F_Schlick(uClearCoatF0, 1.0, VoH);\\n\\n clearCoatSpecular = (attenuation * dotNL * clearCoatFactor * D * V * PI * F) * lightColor;\\n clearCoatAttenuation = (1.0 - F * clearCoatFactor) * clearCoatAbsorption;\\n}\\n',\r\n 'utils/ssr.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n\\n#define SSR_STEPS 8\\n\\n#define LOD_COLOR 7.0\\n#define LOD_DEPTH 5.0\\n\\nuniform int uDrawOpaque;\\nuniform float uFrameModTaaSS;\\nuniform float uQuality;\\nuniform float uSsrFactor;\\n\\nuniform sampler2D uTextureToBeRefracted;\\nuniform sampler2D uTextureMipmapDepth;\\n\\nuniform vec2 uTextureToBeRefractedSize;\\nuniform vec2 uPreviousGlobalTexRatio;\\nuniform vec2 uPreviousGlobalTexSize;\\nuniform vec2 uNearFar;\\nuniform vec2 uGlobalTexRatio;\\nuniform vec4 uTaaCornersCSLeft[2];\\n\\nuniform mat4 uProjectionMatrix;\\nuniform mat4 uReprojectViewProj;\\nuniform mat4 uPreviousViewInvView;\\nuniform mat4 uPreviousProjection; // DEPTH_MIPMAP\\n\\nvec3 computeLodNearestPixelSizePowLevel(const in float lodLevelIn, const in float maxLod, const in vec2 size) {\\n float lodLevel = min(maxLod - 0.01, lodLevelIn);\\n float lowerLevel = floor(lodLevel);\\n float higherLevel = min(maxLod, lowerLevel + 1.0);\\n\\n float powLevel = pow(2.0, higherLevel);\\n vec2 pixelSize = 2.0 * powLevel / size;\\n\\n if (lodLevel - lowerLevel > 0.5) powLevel *= 2.0;\\n return vec3(pixelSize, powLevel);\\n}\\n\\n// lerping between 2 mipmap is too costly (with no notable quality gain in the end)\\nvec2 computeLodUVNearest(const in vec2 uvIn, const in vec3 pixelSizePowLevel) {\\n // border pixel issue with bilinear...\\n vec2 uv = max(pixelSizePowLevel.xy, min(1.0 - pixelSizePowLevel.xy, uvIn));\\n return vec2(2.0 * uv.x, pixelSizePowLevel.z - 1.0 - uv.y) / pixelSizePowLevel.z;\\n}\\n\\nfloat fetchDepthLod(const in vec2 uv, const in vec3 pixelSizePowLevel) {\\n#ifdef DEPTH_MIPMAP\\n vec2 uvNearest = computeLodUVNearest(uv, pixelSizePowLevel);\\n float depth = decodeDepth(texture2D(uTextureMipmapDepth, uvNearest * uPreviousGlobalTexRatio));\\n#else\\n float depth = decodeDepth(texture2D(uTextureMipmapDepth, uv * uGlobalTexRatio));\\n#endif\\n\\n if (depth >= 1.0) return -uNearFar.y * 100.0; // very far so it won\\'t reflect background\\n return -uNearFar.x - depth * (uNearFar.y - uNearFar.x);\\n}\\n\\nvec4 fetchDepthLod(const in vec4 uv0, const in vec4 uv1, const in vec3 pixelSizePowLevel) {\\n vec4 result = vec4(0.0);\\n result.x = fetchDepthLod(uv0.xy, pixelSizePowLevel);\\n result.y = fetchDepthLod(uv0.zw, pixelSizePowLevel);\\n result.z = fetchDepthLod(uv1.xy, pixelSizePowLevel);\\n result.w = fetchDepthLod(uv1.zw, pixelSizePowLevel);\\n return result;\\n}\\n\\nvec3 ssrViewToScreen(const in mat4 projection, const in vec3 viewVertex) {\\n vec4 projected = projection * vec4(viewVertex, 1.0);\\n return vec3(0.5 + 0.5 * projected.xy / projected.w, projected.w);\\n}\\n\\nvec3 fetchColorLod(const in float level, const in vec2 uv) {\\n vec3 pixelSizePowLevel = computeLodNearestPixelSizePowLevel(LOD_COLOR * level, LOD_COLOR, uPreviousGlobalTexSize); \\n vec2 uvNearest = computeLodUVNearest(uv, pixelSizePowLevel);\\n return decodeRGBM(texture2D(uTextureToBeRefracted, uvNearest * uPreviousGlobalTexRatio), 7.0);\\n}\\n\\n// #define HASHSCALE1 .1031\\n// #define HASHSCALE3 vec3(.1031, .1030, .0973)\\n// #define HASHSCALE4 vec4(.1031, .1030, .0973, .1099)\\n\\n// vec2 hash23(vec3 p3)\\n// {\\n// p3 = fract(p3 * HASHSCALE3);\\n// p3 += dot(p3, p3.yzx + 19.19);\\n// return fract((p3.xx + p3.yz) * p3.zy);\\n// }\\n\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/ScreenSpaceReflections.usf#L143\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Private/MonteCarlo.ush#L169\\nvec3 unrealImportanceSampling(const in float frameMod, const in vec3 tangentX, const in vec3 tangentY, const in vec3 tangentZ, const in vec3 eyeVector, const in float rough4) {\\n vec2 E;\\n\\n // could be improved (visible patterns)\\n E.x = interleavedGradientNoise(gl_FragCoord.yx, frameMod);\\n E.y = fract(E.x * 52.9829189);\\n // E = hash23(vec3(gl_FragCoord.xy + frameMod * 150.2420, frameMod * 100.0));\\n\\n // Reduces BRDF tail is noisy, we clamp it\\n // https://www.slideshare.net/DICEStudio/stochastic-screenspace-reflections#p=67\\n E.y = mix(E.y, 1.0, 0.7);\\n\\n float phi = 2.0 * 3.14159 * E.x;\\n // float cosTheta = sqrt((1.0 - E.y) / (1.0 + (rough4 - 1.0) * E.y)); // ggx (long tail, more noisy)\\n float cosTheta = pow(max(E.y, 0.000001), rough4 / (2.0 - rough4)); // blinn\\n float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\\n\\n vec3 h = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta);\\n h = h.x * tangentX + h.y * tangentY + h.z * tangentZ;\\n return normalize((2.0 * dot(eyeVector, h)) * h - eyeVector);\\n}\\n\\nfloat getStepOffset(const in float frameMod) {\\n return (interleavedGradientNoise(gl_FragCoord.xy, frameMod) - 0.5);\\n}\\n\\nvec3 computeRayDirUV(const in vec3 rayOriginUV, const in float rayLen, const in vec3 rayDirView) {\\n#ifdef DEPTH_MIPMAP\\n vec3 rayDirUV = ssrViewToScreen(uPreviousProjection, vViewVertex.xyz + rayDirView * rayLen);\\n#else\\n vec3 rayDirUV = ssrViewToScreen(uProjectionMatrix, vViewVertex.xyz + rayDirView * rayLen);\\n#endif\\n\\n rayDirUV.z = 1.0 / rayDirUV.z;\\n rayDirUV -= rayOriginUV;\\n\\n // clip the line to the viewport edges\\n // https://github.com/godotengine/godot/blob/master/drivers/gles3/shaders/screen_space_reflection.glsl#L124\\n float scaleMaxX = min(1.0, 0.99 * (1.0 - rayOriginUV.x) / max(1e-5, rayDirUV.x));\\n float scaleMaxY = min(1.0, 0.99 * (1.0 - rayOriginUV.y) / max(1e-5, rayDirUV.y));\\n float scaleMinX = min(1.0, 0.99 * rayOriginUV.x / max(1e-5, -rayDirUV.x));\\n float scaleMinY = min(1.0, 0.99 * rayOriginUV.y / max(1e-5, -rayDirUV.y));\\n return rayDirUV * min(scaleMaxX, scaleMaxY) * min(scaleMinX, scaleMinY);\\n}\\n\\n#define SSR_RAY_FETCH(void) \\\\\\nsampleUV = rayOriginUV + rayDirUV * diffSampleW.y; \\\\\\ndepth = fetchDepthLod(sampleUV.xy, pixelSizePowLevel); \\\\\\ndepthDiff = -1.0 / sampleUV.z - depth; \\\\\\nhit = abs(depthDiff + depthTolerance) < depthTolerance; \\\\\\ntimeLerp = clamp(diffSampleW.x / (diffSampleW.x - depthDiff), 0.0, 1.0); \\\\\\nhitTime = hit ? (diffSampleW.y + timeLerp * invNumSteps - invNumSteps) : 1.0; \\\\\\ndiffSampleW.z = min(diffSampleW.z, hitTime); \\\\\\ndiffSampleW.x = depthDiff; \\\\\\ndiffSampleW.y += invNumSteps; \\\\\\n\\n#define SSR_RAY_UNROLLED(void) \\\\\\nSSR_RAY_FETCH() \\\\\\nSSR_RAY_FETCH() \\\\\\nSSR_RAY_FETCH() \\\\\\nSSR_RAY_FETCH() \\\\\\nSSR_RAY_FETCH() \\\\\\nSSR_RAY_FETCH() \\\\\\nSSR_RAY_FETCH() \\\\\\nSSR_RAY_FETCH() \\\\\\n\\nvec4 rayTraceUnrealSimple(\\n const in vec3 rayOriginUV,\\n const in float rayLen,\\n in float depthTolerance,\\n const in vec3 rayDirView,\\n\\n const in float roughness,\\n const in float frameMod) {\\n\\n vec3 pixelSizePowLevel = computeLodNearestPixelSizePowLevel(LOD_DEPTH * roughness, LOD_DEPTH, uTextureToBeRefractedSize); \\n\\n float invNumSteps = 1.0 / float(SSR_STEPS);\\n if (uQuality > 1.0) invNumSteps /= 2.0;\\n\\n depthTolerance *= invNumSteps;\\n\\n vec3 rayDirUV = computeRayDirUV(rayOriginUV, rayLen, rayDirView);\\n\\n float sampleTime = getStepOffset(frameMod) * invNumSteps + invNumSteps;\\n vec3 diffSampleW = vec3(0.0, sampleTime, 1.0);\\n\\n vec3 sampleUV;\\n float depth, depthDiff, timeLerp, hitTime;\\n bool hit;\\n\\n SSR_RAY_UNROLLED()\\n if (uQuality > 1.0) { SSR_RAY_UNROLLED() }\\n\\n // alternative : ray refinement around the intersected cell\\n // if (uQuality > 1.0) {\\n // rayOriginUV = rayOriginUV + rayDirUV * diffSampleW.z - rayDirUV * invNumSteps * 0.5;\\n // diffSampleW = vec3(0.0, sampleTime, 1.0);\\n // rayDirUV *= invNumSteps;\\n // depthTolerance *= invNumSteps;\\n // SSR_RAY_UNROLLED()\\n // }\\n\\n return vec4(rayOriginUV + rayDirUV * diffSampleW.z, 1.0 - diffSampleW.z);\\n}\\n\\nvec4 fetchColorContribution(\\n in vec4 resRay,\\n const in float maskSsr,\\n const in vec3 specularEnvironment,\\n const in vec3 specularColor,\\n const in float roughness) {\\n\\n // reprojection\\n vec4 AB = mix(uTaaCornersCSLeft[0], uTaaCornersCSLeft[1], resRay.x);\\n resRay.xyz = vec3(mix(AB.xy, AB.zw, resRay.y), 1.0) * -1.0 / resRay.z;\\n resRay.xyz = (uReprojectViewProj * vec4(resRay.xyz, 1.0)).xyw;\\n resRay.xy /= resRay.z;\\n\\n // fade edge of screen\\n float maskEdge = clamp(6.0 - 6.0 * max(abs(resRay.x), abs(resRay.y)), 0.0, 1.0);\\n\\n resRay.xy = 0.5 + 0.5 * resRay.xy;\\n\\n vec3 fetchColor = specularColor * fetchColorLod(roughness * (1.0 - resRay.w), resRay.xy);\\n\\n // fade ray count\\n // maskEdge *= resRay.w;\\n\\n return vec4(mix(specularEnvironment, fetchColor, maskSsr * maskEdge), 1.0);\\n}\\n\\nvec3 ssr(const in vec3 specularEnvironment, const in vec3 specularColor, const in float roughness, const in vec3 normal, const in vec3 eyeVector) {\\n\\n#if (defined(HAS_OPACITY_BLEND_OR_ADDITIVE) || defined(HAS_OPACITY_REFRACTION)) && !defined(HAS_SSR_TRANSPARENT)\\n // no ssr for transparent pxiels for now (mainly performance reason)\\n if (uDrawOpaque == 0) return specularEnvironment;\\n#endif\\n\\n vec4 result = vec4(0.0);\\n\\n // precompute importance sampling roughness^4\\n float rough4 = roughness * roughness;\\n rough4 = rough4 * rough4;\\n\\n // precompute importance sampling basis tangent\\n vec3 upVector = abs(normal.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);\\n vec3 tangentX = normalize(cross(upVector, normal));\\n vec3 tangentY = cross(normal, tangentX);\\n\\n // fade ray that points toward camera\\n float maskSsr = uSsrFactor * clamp(-4.0 * dot(eyeVector, normal) + 3.8, 0.0, 1.0);\\n maskSsr *= clamp(4.7 - roughness * 5.0, 0.0, 1.0); // fade out ssr for high roughness values\\n\\n // compute ray uv origin\\n vec3 rayOriginUV = ssrViewToScreen(uProjectionMatrix, vViewVertex.xyz);\\n rayOriginUV.z = 1.0 / rayOriginUV.z;\\n\\n // direction of reflection\\n vec3 rayDirView = unrealImportanceSampling(uFrameModTaaSS, tangentX, tangentY, normal, eyeVector, rough4);\\n\\n // if reflection is toward us, we cast [near, vertex], otherwise [vertex, far]\\n float rayLen = mix(uNearFar.y + vViewVertex.z, -vViewVertex.z - uNearFar.x, rayDirView.z * 0.5 + 0.5);\\n float depthTolerance = 0.5 * rayLen;\\n\\n // ray under the surface (normalmap or inverted normal)\\n if (dot(rayDirView, normal) > 0.001 && maskSsr > 0.0) {\\n vec4 resRay = rayTraceUnrealSimple(rayOriginUV, rayLen, depthTolerance, rayDirView, roughness, uFrameModTaaSS);\\n if (resRay.w > 0.0) result += fetchColorContribution(resRay, maskSsr, specularEnvironment, specularColor, roughness);\\n }\\n\\n // if (uQuality > 0.4) {\\n // for (int i = 1; i < 4; ++i) {\\n // float frameRay = frameMod + float(i) * 50.0;\\n // rayDirView = unrealImportanceSampling(frameRay, tangentX, tangentY, normal, eyeVector, rough4);\\n // rayLen = mix(uNearFar.y + vViewVertex.z, -vViewVertex.z - uNearFar.x, rayDirView.z * 0.5 + 0.5);\\n // depthTolerance = 0.5 * rayLen;\\n\\n // if (dot(rayDirView, normal) > 0.001) {\\n // vec4 resRay = rayTraceUnrealSimple(rayOriginUV, rayLen, depthTolerance, rayDirView, roughness, frameRay);\\n // if (resRay.w > 0.0) result += fetchColorContribution(resRay, maskSsr, specularEnvironment, specularColor, roughness);\\n // }\\n // }\\n // }\\n\\n return result.w > 0.0 ? result.rgb / result.w : specularEnvironment;\\n}\\n',\r\n 'utils/material.glsl':\r\n '#define MIN_ROUGHNESS 0.045\\n\\n#pragma include \"utils/functions.glsl\"\\n\\n#ifdef HAS_OPACITY_REFRACTION\\n float gRefractionRoughness; // global variable (simpler to handle in order to re-use rough/gloss fetch)\\n#endif\\n\\n#ifdef HAS_VERTEX_COLOR\\n varying vec4 vColor;\\n\\n vec3 getVertexColor() {\\n return COLOR_CONVERT_VERTEX_COLOR(vColor.rgb);\\n }\\n#endif\\n\\n// METALNESS WORKFLOW\\n#ifdef HAS_ALBEDOPBR\\n uniform float uAlbedoPBRFactor;\\n\\n vec3 getMaterialAlbedo() {\\n vec3 albedo;\\n #ifdef SAMPLER_ALBEDOPBR\\n albedo = uAlbedoPBRFactor * COLOR_CONVERT_ALBEDOPBR(texture2D(SAMPLER_ALBEDOPBR, UV_ALBEDOPBR).PACK_ALBEDOPBR);\\n #else\\n albedo = vec3(uAlbedoPBRFactor);\\n #endif\\n\\n #ifdef HAS_VERTEX_COLOR\\n albedo *= getVertexColor();\\n #endif\\n\\n return albedo;\\n }\\n#endif\\n\\n#ifdef HAS_METALNESSPBR\\n uniform float uMetalnessPBRFactor;\\n\\n float getMaterialMetalness() {\\n #ifdef SAMPLER_METALNESSPBR\\n return uMetalnessPBRFactor * COLOR_CONVERT_METALNESSPBR(texture2D(SAMPLER_METALNESSPBR, UV_METALNESSPBR).PACK_METALNESSPBR);\\n #else\\n return uMetalnessPBRFactor;\\n #endif\\n }\\n#endif\\n\\n#ifdef HAS_SPECULARF0\\n uniform float uSpecularF0Factor;\\n\\n float getMaterialF0() {\\n #ifdef SAMPLER_SPECULARF0\\n return uSpecularF0Factor * COLOR_CONVERT_SPECULARF0(texture2D(SAMPLER_SPECULARF0, UV_SPECULARF0).PACK_SPECULARF0);\\n #else\\n return uSpecularF0Factor;\\n #endif\\n }\\n#endif\\n\\n// SPECULAR WORKFLOW\\n#ifdef HAS_DIFFUSEPBR\\n uniform float uDiffusePBRFactor;\\n\\n vec3 getMaterialDiffuse() {\\n vec3 diffuse;\\n #ifdef SAMPLER_DIFFUSEPBR\\n diffuse = uDiffusePBRFactor * COLOR_CONVERT_DIFFUSEPBR(texture2D(SAMPLER_DIFFUSEPBR, UV_DIFFUSEPBR).PACK_DIFFUSEPBR);\\n #else\\n diffuse = vec3(uDiffusePBRFactor);\\n #endif\\n\\n #ifdef HAS_VERTEX_COLOR\\n diffuse *= getVertexColor();\\n #endif\\n\\n return diffuse;\\n }\\n#endif\\n\\n#ifdef HAS_SPECULARPBR\\n uniform float uSpecularPBRFactor;\\n\\n vec3 getMaterialSpecular() {\\n #ifdef SAMPLER_SPECULARPBR\\n return uSpecularPBRFactor * COLOR_CONVERT_SPECULARPBR(texture2D(SAMPLER_SPECULARPBR, UV_SPECULARPBR).PACK_SPECULARPBR);\\n #else\\n return vec3(uSpecularPBRFactor);\\n #endif\\n }\\n#endif\\n\\n// MICROSURFACE\\n#ifdef HAS_ROUGHNESSPBR\\n uniform float uRoughnessPBRFactor;\\n\\n float getMaterialRoughness() {\\n #ifdef SAMPLER_ROUGHNESSPBR\\n float fetch = COLOR_CONVERT_ROUGHNESSPBR(texture2D(SAMPLER_ROUGHNESSPBR, UV_ROUGHNESSPBR).PACK_ROUGHNESSPBR);\\n\\n #ifdef HAS_REFRACTION_MICROSURFACE\\n gRefractionRoughness *= fetch;\\n #endif\\n\\n return uRoughnessPBRFactor * fetch;\\n #else\\n return uRoughnessPBRFactor;\\n #endif\\n }\\n#endif\\n\\n#ifdef HAS_GLOSSINESSPBR\\n uniform float uGlossinessPBRFactor;\\n\\n float getMaterialGlossiness() {\\n #ifdef SAMPLER_GLOSSINESSPBR\\n float fetch = COLOR_CONVERT_GLOSSINESSPBR(texture2D(SAMPLER_GLOSSINESSPBR, UV_GLOSSINESSPBR).PACK_GLOSSINESSPBR);\\n\\n #ifdef HAS_REFRACTION_MICROSURFACE\\n gRefractionRoughness = mix(1.0 - fetch, 1.0, gRefractionRoughness);\\n #endif\\n\\n return uGlossinessPBRFactor * fetch;\\n #else\\n return uGlossinessPBRFactor;\\n #endif\\n }\\n#endif\\n\\n\\n#ifdef HAS_EMITCOLOR\\n uniform float uEmitColorFactor;\\n uniform int uEmitMultiplicative;\\n\\n vec3 getMaterialEmitColor() {\\n #ifdef SAMPLER_EMITCOLOR\\n return uEmitColorFactor * COLOR_CONVERT_EMITCOLOR(texture2D(SAMPLER_EMITCOLOR, UV_EMITCOLOR).PACK_EMITCOLOR);\\n #else\\n return vec3(0.0);\\n #endif\\n }\\n#endif\\n\\n#ifdef HAS_AOPBR\\n uniform float uAOPBRFactor;\\n uniform int uAOPBROccludeSpecular;\\n\\n float getMaterialAO() {\\n return mix(1.0, COLOR_CONVERT_AOPBR(texture2D(SAMPLER_AOPBR, UV_AOPBR).PACK_AOPBR), uAOPBRFactor);\\n }\\n#endif\\n\\n#ifdef HAS_CAVITYPBR\\n uniform float uCavityPBRFactor;\\n\\n float getMaterialCavity() {\\n return mix(1.0, COLOR_CONVERT_CAVITYPBR(texture2D(SAMPLER_CAVITYPBR, UV_CAVITYPBR).PACK_CAVITYPBR), uCavityPBRFactor);\\n }\\n#endif\\n\\n#ifdef HAS_SUBSURFACETRANSLUCENCY\\n uniform float uSubsurfaceTranslucencyFactor;\\n uniform float uSubsurfaceTranslucencyThicknessFactor;\\n uniform vec3 uSubsurfaceTranslucencyColor;\\n\\n float getMaterialTranslucency() {\\n #ifdef SAMPLER_SUBSURFACETRANSLUCENCY\\n return uSubsurfaceTranslucencyFactor * COLOR_CONVERT_SUBSURFACETRANSLUCENCY(texture2D(SAMPLER_SUBSURFACETRANSLUCENCY, UV_SUBSURFACETRANSLUCENCY).PACK_SUBSURFACETRANSLUCENCY);\\n #else\\n return uSubsurfaceTranslucencyFactor;\\n #endif\\n }\\n#endif\\n\\n#ifdef HAS_NORMALMAP\\n uniform float uNormalMapFactor;\\n uniform int uNormalMapFlipY;\\n\\n vec3 getMaterialNormalMap() {\\n vec3 nmap = COLOR_CONVERT_NORMALMAP(texture2D(SAMPLER_NORMALMAP, UV_NORMALMAP).PACK_NORMALMAP) * 2.0 - 1.0;\\n nmap.y = uNormalMapFlipY == 1 ? -nmap.y : nmap.y;\\n return nmap;\\n }\\n#endif\\n\\n#ifdef HAS_BUMPMAP\\n uniform float uBumpMapFactor;\\n uniform vec2 uBumpMapSize;\\n\\n vec2 getMaterialBumpMap() {\\n vec2 bump;\\n vec3 invSize = vec3(1.0 / uBumpMapSize, 0.0);\\n return uBumpMapFactor * vec2(COLOR_CONVERT_BUMPMAP(texture2D(SAMPLER_BUMPMAP, UV_BUMPMAP - invSize.xz).PACK_BUMPMAP)\\n - COLOR_CONVERT_BUMPMAP(texture2D(SAMPLER_BUMPMAP, UV_BUMPMAP + invSize.xz).PACK_BUMPMAP),\\n COLOR_CONVERT_BUMPMAP(texture2D(SAMPLER_BUMPMAP, UV_BUMPMAP - invSize.zy).PACK_BUMPMAP)\\n -COLOR_CONVERT_BUMPMAP(texture2D(SAMPLER_BUMPMAP, UV_BUMPMAP + invSize.zy).PACK_BUMPMAP));\\n }\\n#endif\\n\\n#ifdef HAS_SUBSURFACESCATTERING\\n uniform float uSubsurfaceScatteringProfile;\\n uniform float uSubsurfaceScatteringFactor;\\n uniform float uScatteringFactorPacker;\\n\\n float getMaterialScattering() {\\n #ifdef SAMPLER_SUBSURFACESCATTERING\\n return uScatteringFactorPacker * uSubsurfaceScatteringFactor * COLOR_CONVERT_SUBSURFACESCATTERING(texture2D(SAMPLER_SUBSURFACESCATTERING, UV_SUBSURFACESCATTERING).PACK_SUBSURFACESCATTERING);\\n #else\\n return uScatteringFactorPacker * uSubsurfaceScatteringFactor;\\n #endif\\n }\\n#endif\\n\\n#ifdef HAS_ALPHAMASK\\n uniform float uAlphaMaskFactor;\\n uniform int uAlphaMaskInvert;\\n\\n float getMaterialAlphaMask() {\\n float alpha = 1.0;\\n\\n #ifdef SAMPLER_ALPHAMASK\\n alpha = COLOR_CONVERT_ALPHAMASK(texture2D(SAMPLER_ALPHAMASK, UV_ALPHAMASK).PACK_ALPHAMASK);\\n if (uAlphaMaskInvert == 1) alpha = 1.0 - alpha;\\n #endif\\n\\n #ifdef HAS_VERTEX_ALPHA\\n alpha *= vColor.a;\\n #endif\\n\\n return alpha;\\n }\\n#endif\\n\\n#ifdef HAS_OPACITY\\n uniform float uOpacityFactor;\\n uniform int uOpacityInvert;\\n\\n #ifdef HAS_OPACITY_DITHER\\n uniform float uOpacityThinLayer;\\n uniform int uOpacityDithering;\\n #endif\\n\\n #ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n uniform int uOpacityAdditive;\\n #endif\\n\\n #ifdef HAS_OPACITY_REFRACTION\\n uniform float uOpacityRoughnessFactor;\\n #endif\\n\\n float getMaterialOpacity() {\\n float alpha = 1.0;\\n\\n #ifdef SAMPLER_OPACITY\\n alpha = COLOR_CONVERT_OPACITY(texture2D(SAMPLER_OPACITY, UV_OPACITY).PACK_OPACITY);\\n if (uOpacityInvert == 1) alpha = 1.0 - alpha;\\n #endif\\n\\n #ifndef HAS_OPACITY_DITHER\\n alpha *= uOpacityFactor;\\n #endif\\n\\n #ifdef HAS_VERTEX_ALPHA\\n alpha *= vColor.a;\\n #endif\\n\\n return alpha;\\n }\\n#endif // HAS_OPACITY\\n\\n\\n#ifdef HAS_CLEARCOAT\\n uniform vec3 uClearCoatTint;\\n uniform float uClearCoatThickness;\\n uniform float uClearCoatIor;\\n uniform float uClearCoatFactor;\\n uniform float uClearCoatF0;\\n\\n float getMaterialClearCoat() {\\n #ifdef SAMPLER_CLEARCOAT\\n return uClearCoatFactor * COLOR_CONVERT_CLEARCOAT(texture2D(SAMPLER_CLEARCOAT, UV_CLEARCOAT).PACK_CLEARCOAT);\\n #else\\n return uClearCoatFactor;\\n #endif\\n }\\n#endif\\n\\n#ifdef HAS_CLEARCOATROUGHNESS\\n uniform float uClearCoatRoughnessFactor;\\n\\n float getMaterialClearCoatRoughness() {\\n #ifdef SAMPLER_CLEARCOATROUGHNESS\\n return uClearCoatRoughnessFactor * COLOR_CONVERT_CLEARCOATROUGHNESS(texture2D(SAMPLER_CLEARCOATROUGHNESS, UV_CLEARCOATROUGHNESS).PACK_CLEARCOATROUGHNESS);\\n #else\\n return uClearCoatRoughnessFactor;\\n #endif\\n }\\n#endif\\n\\n#ifdef HAS_CLEARCOATNORMALMAP\\n uniform float uClearCoatNormalMapFactor;\\n uniform int uClearCoatNormalMapFlipY;\\n\\n vec3 getMaterialClearCoatNormal() {\\n vec3 nmap = COLOR_CONVERT_CLEARCOATNORMALMAP(texture2D(SAMPLER_CLEARCOATNORMALMAP, UV_CLEARCOATNORMALMAP).PACK_CLEARCOATNORMALMAP) * 2.0 - 1.0;\\n nmap.y = uClearCoatNormalMapFlipY == 1 ? -nmap.y : nmap.y;\\n return nmap;\\n }\\n#endif\\n\\n#ifdef HAS_ANISOTROPY\\n uniform float uAnisotropyFactor;\\n uniform float uAnisotropyDirection;\\n uniform int uAnisotropyFlipXY;\\n\\n #ifdef SAMPLER_ANISOTROPY\\n vec2 getMaterialDirectionAnisotropy() {\\n vec2 dir = COLOR_CONVERT_ANISOTROPY(texture2D(SAMPLER_ANISOTROPY, UV_ANISOTROPY).PACK_ANISOTROPY) * 2.0 - 1.0;\\n if (uAnisotropyFlipXY == 1) dir.xy = dir.yx;\\n return dir;\\n }\\n #endif\\n\\n#endif\\n\\n\\n#ifdef HAS_SHEEN\\n\\nuniform float uSheenFactor;\\nuniform vec3 uSheenColorFactor;\\nuniform float uSheenRoughnessFactor;\\n\\n\\nfloat sheenLobe(const float sheenRoughness, const float NdotV, const float NdotL, const float NdotH) {\\n // Charlie Sheen distribution, Conty Estevez and Kulla Production Friendly Microfacet Sheen BRDF\\n float r = sheenRoughness * sheenRoughness;\\n float invAlpha = 1.0 / r;\\n float cos2h = NdotH * NdotH;\\n // 0.0078125 => 2^(-14/2), so sin2h^2 > 0 in fp16\\n float sin2h = max(1.0 - cos2h, 0.0078125);\\n float D = (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n\\n // Sheen visibility (much faster than charlie sheen distribution)\\n // Ashikhmin and Premoze Distribution-based Brdfs\\n // also Neubelt and Pettineo Crafting a Next-gen Material Pipeline for The Order\\n float V = clamp(1.0 / (4.0 * (NdotL + NdotV - NdotL * NdotV)), 0.0, 1.0);\\n return (D * V);\\n}\\n\\nfloat getMaterialSheenRoughness(){\\n#if defined(SAMPLER_SHEENROUGHNESS)\\n return uSheenRoughnessFactor * texture2D(SAMPLER_SHEENROUGHNESS, UV_SHEENROUGHNESS).PACK_SHEENROUGHNESS;\\n#else\\n return uSheenRoughnessFactor;\\n#endif\\n}\\n\\nvec3 computeSheen(const vec3 normal, const vec3 lightDir, const vec3 eyeVector, const float sheenRoughness){\\n\\n float NdotL = dot(normal, lightDir);\\n float NdotV = dot(normal, eyeVector);\\n vec3 H = normalize(lightDir + eyeVector);\\n float NdotH = dot(normal, H);\\n\\n float sheenContribution = sheenLobe(max(0.04, sheenRoughness), NdotV, NdotL, NdotH);\\n\\n#if defined(SAMPLER_SHEEN)\\n vec3 sheenColor = uSheenFactor * uSheenColorFactor * COLOR_CONVERT_SHEEN(texture2D(SAMPLER_SHEEN, UV_SHEEN).PACK_SHEEN);\\n#else\\n vec3 sheenColor = uSheenFactor * uSheenColorFactor;\\n#endif\\n\\n return max(vec3(0.0), sheenContribution * sheenColor);\\n}\\n\\n#endif\\n\\n\\n\\n\\n\\n/////////////////\\n// LEGACY CLASSIC\\n/////////////////\\n#ifdef HAS_LEGACY_CLASSIC\\n uniform vec2 uTextureEnvironmentSpecularTextureSize;\\n uniform samplerCube sEnvironmentSpecular;\\n uniform mat3 uEnvironmentTransform;\\n\\n uniform float uReflection;\\n\\n uniform float uDiffuseColorFactor;\\n uniform float uDiffuseIntensityFactor;\\n vec3 getMaterialLegacyDiffuse() {\\n vec3 diffuse = vec3(0.0);\\n #if defined(SAMPLER_DIFFUSECOLOR)\\n diffuse = uDiffuseColorFactor * COLOR_CONVERT_DIFFUSECOLOR(texture2D(SAMPLER_DIFFUSECOLOR, UV_DIFFUSECOLOR).PACK_DIFFUSECOLOR);\\n #elif defined(HAS_DIFFUSECOLOR)\\n diffuse = vec3(uDiffuseColorFactor);\\n #endif\\n\\n #ifdef HAS_VERTEX_COLOR\\n diffuse *= getVertexColor();\\n #endif\\n\\n #ifdef HAS_DIFFUSEINTENSITY\\n #ifdef SAMPLER_DIFFUSEINTENSITY\\n diffuse *= uDiffuseIntensityFactor * COLOR_CONVERT_DIFFUSEINTENSITY(texture2D(SAMPLER_DIFFUSEINTENSITY, UV_DIFFUSEINTENSITY).PACK_DIFFUSEINTENSITY);\\n #else\\n diffuse *= uDiffuseIntensityFactor;\\n #endif\\n #endif\\n\\n return diffuse;\\n }\\n\\n uniform float uSpecularColorFactor;\\n vec3 getMaterialLegacySpecular() {\\n #if defined(SAMPLER_SPECULARCOLOR)\\n return uSpecularColorFactor * COLOR_CONVERT_SPECULARCOLOR(texture2D(SAMPLER_SPECULARCOLOR, UV_SPECULARCOLOR).PACK_SPECULARCOLOR);\\n #elif defined(HAS_SPECULARCOLOR)\\n return vec3(uSpecularColorFactor);\\n #else\\n return vec3(0.0);\\n #endif\\n }\\n\\n uniform float uSpecularHardnessFactor;\\n float getMaterialLegacyShininess() {\\n #if defined(SAMPLER_SPECULARHARDNESS)\\n return uSpecularHardnessFactor * COLOR_CONVERT_SPECULARHARDNESS(texture2D(SAMPLER_SPECULARHARDNESS, UV_SPECULARHARDNESS).PACK_SPECULARHARDNESS);\\n #elif defined(HAS_SPECULARHARDNESS)\\n return uSpecularHardnessFactor;\\n #else\\n return 0.0;\\n #endif\\n }\\n\\n#endif\\n',\r\n 'utils/normalBump.glsl':\r\n '// version for vertex shader\\nvec3 bumpMap(const in vec4 tangent, const in vec3 normal, const in vec2 gradient) {\\n vec3 tang = normalize(tangent.xyz);\\n vec3 binormal = tangent.w * normalize(cross(normal, tang));\\n return normalize(normal + gradient.x * tang + gradient.y * binormal);\\n}\\n\\n// #define transformNormal(f, tn, tex, b, n) n = f * n.xy; n = normalize(tex.x * t.xyz + tex.y * b + tex.z * n)\\nvec3 transformNormal(const in float factor, in vec3 normal, const in vec3 t, const in vec3 b, in vec3 n) {\\n normal.xy = factor * normal.xy;\\n return normalize(normal.x * t + normal.y * b + normal.z * n);\\n}\\n\\n// anisotropy transform\\nvec3 transformTangent(in vec2 tangent, const in vec3 t, const in vec3 b) {\\n return normalize(tangent.x * t + tangent.y * b);\\n}\\n\\n// #define transformBump(tex, t, b, n) n = normalize(tex.x * t.xyz + tex.y * b + n)\\nvec3 transformBump(in vec2 bump, const in vec3 t, const in vec3 b, in vec3 n) {\\n return normalize(bump.x * t + bump.y * b + n);\\n}\\n',\r\n 'utils/checkerboard.glsl':\r\n 'float checkerboard(const in vec2 uv, const in vec4 halton) {\\n vec2 flooredUV = floor(uv);\\n return mod((halton.z < 0.0 ? 0.0 : 1.0) + flooredUV.x + flooredUV.y, 2.0);\\n}\\n',\r\n 'utils/decodeDepth.glsl':\r\n 'int decodeProfile(const in vec4 pack) {\\n float packValue = floor(pack.b * 255.0 + 0.5);\\n // we extract the 2 lowest bits\\n float profile = mod(packValue, 2.0);\\n profile += mod(packValue - profile, 4.0);\\n return int(profile);\\n}\\n\\nfloat decodeDepth(const in vec4 pack) {\\n if(decodeProfile(pack) == 0){\\n const vec3 decode = 1.0 / vec3(1.0, 255.0, 65025.0);\\n return dot(pack.rgb, decode);\\n }\\n\\n return pack.r + pack.g / 255.0;\\n}\\n\\nfloat decodeScatter(const in vec4 pack) {\\n // avoid huge number, summation, division and associated loss of precision\\n // by deriving the whole computation to the end\\n // As floor is with mod(x,y) = x - y * floor(x/y)\\n\\n // float scatter = pack.b - mod(pack.b, 4.0 / 255.0);\\n // float scatter = pack.b - pack.b + (4.0 /255.0) * floor(pack.b / (4.0 /255.0));\\n // float scatter = (4.0 /255.0) * floor(pack.b / (4.0 / 255.0));\\n float scatter = (4.0 / 255.0) * floor(pack.b * 255.0 * 0.25);\\n\\n //return scatter * 255.0 / 4.0 / 63.0;\\n return scatter * 1.0119047619;\\n}\\n\\nfloat decodeAlpha(const in vec4 pack) {\\n return pack.a;\\n}\\n\\nfloat distanceToDepth(const in sampler2D depth, const in vec2 uv, const in vec4 viewPos, const vec2 nearFar) {\\n float fragDepth = clamp( (-viewPos.z * viewPos.w - nearFar.x) / (nearFar.y - nearFar.x), 0.0, 1.0);\\n return fragDepth - decodeDepth(texture2D(depth, uv));\\n}\\n',\r\n 'utils/encodeDepth.glsl':\r\n '// random links on packing :\\n// cesium attributes packing\\n// https://cesiumjs.org/2015/05/18/Vertex-Compression/\\n\\n// float packing in 24 bits or 32 bits\\n// https://skytiger.wordpress.com/2010/12/01/packing-depth-into-color/\\n\\nvec4 encodeDepthAlphaProfileScatter(const in float depth, const in float alpha, const in float profile, const in float scatter) {\\n vec4 pack = vec4(0.0);\\n\\n // opacity in alpha\\n pack.a = alpha;\\n\\n if(profile == 0.0) {\\n const vec3 code = vec3(1.0, 255.0, 65025.0);\\n pack.rgb = vec3(code * depth);\\n pack.gb = fract(pack.gb);\\n pack.rg -= pack.gb * (1.0 / 256.0);\\n } else {\\n // depth in rg\\n pack.g = fract(depth * 255.0);\\n pack.r = depth - pack.g / 255.0;\\n\\n // scatter 6 bits\\n pack.b = floor(0.5 + scatter * 63.0) * 4.0 / 255.0;\\n }\\n\\n // profile on 2 lower bits\\n pack.b -= mod(pack.b, 4.0 / 255.0);\\n pack.b += profile / 255.0; // 3 profile possible for sss\\n\\n return pack;\\n}\\n',\r\n 'utils/encodeDecode.glsl':\r\n 'vec3 encode24(const in float x){\\n const vec3 code = vec3(1.0, 255.0, 65025.0);\\n vec3 pack = vec3(code * x);\\n pack.gb = fract(pack.gb);\\n pack.rg -= pack.gb * (1.0 / 256.0);\\n return pack;\\n}\\n\\nfloat decode24(const in vec3 x) {\\n const vec3 decode = 1.0 / vec3(1.0, 255.0, 65025.0);\\n return dot(x, decode);\\n}\\n',\r\n 'utils/getLuminance.glsl':\r\n 'float getLuminance(const in vec3 color) {\\n // http://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color\\n const vec3 colorBright = vec3(0.2126, 0.7152, 0.0722);\\n return dot(color, colorBright);\\n}\\n',\r\n 'base.vert':\r\n 'uniform float uDisplay2D;\\nuniform float uPointSize;\\n\\nuniform vec2 uGlobalTexRatio;\\nuniform vec2 uGlobalTexSize;\\nuniform vec4 uHalton;\\n\\nuniform mat3 uModelNormalMatrix;\\nuniform mat3 uModelViewNormalMatrix;\\n\\nuniform mat4 uProjectionMatrix;\\nuniform mat4 uModelMatrix;\\nuniform mat4 uViewMatrix;\\nuniform mat4 uModelViewMatrix;\\n\\n// in case of srgbToLinear texfetch\\n#ifdef HAS_DISPLACEMENT\\n#pragma include \"utils/functions.glsl\"\\n#endif\\n\\n#ifdef IS_IOS\\ninvariant gl_Position;\\n#endif\\n\\n\\n#if defined(HAS_COMPRESSION) && !defined(HAS_MORPHING)\\n #define HAS_POSITION_COMPRESSION\\n#endif\\n\\n/////////////////////////////////////\\n// ATTRIBUTES (NORMAL/VERTEX/TANGENT)\\n/////////////////////////////////////\\n\\n#ifdef HAS_ZW_COMPRESSION\\n attribute vec4 Vertex;\\n#else\\n attribute vec3 Vertex;\\n#endif\\n\\n// need normal to displace vertex\\n#if defined(HAS_VIEW_NORMAL) || defined(HAS_MODEL_NORMAL) || defined(HAS_EDITOR_DISPLACEMENT)\\n\\n #ifdef HAS_POSITION_COMPRESSION\\n attribute vec2 Normal;\\n #else\\n attribute vec3 Normal;\\n #endif\\n\\n #define NEED_LOCAL_NORMAL\\n#endif\\n\\n// if no normalmap, correct the normal with displacement (as bump)\\n#if defined(HAS_DISPLACEMENT) && !defined(HAS_NORMALMAP) && (defined(HAS_MODEL_NORMAL) || defined(HAS_VIEW_NORMAL))\\n #define CORRECT_BUMP_NORMAL\\n#endif\\n\\n// need tangent to correct normal\\n#if defined(HAS_VIEW_TANGENT) || defined(HAS_MODEL_TANGENT) || defined(CORRECT_BUMP_NORMAL)\\n\\n #ifdef HAS_POSITION_COMPRESSION\\n attribute vec3 Tangent;\\n #else\\n attribute vec4 Tangent;\\n #endif\\n\\n #define NEED_LOCAL_TANGENT\\n#endif\\n\\n#ifdef HAS_VERTEX_COLOR\\n attribute vec4 Color;\\n#endif\\n\\n////////////////////\\n// VARYING/VARIABLES\\n////////////////////\\n\\n// view\\n#ifdef HAS_VIEW_VERTEX\\n varying vec4 vViewVertex;\\n#else\\n vec4 vViewVertex;\\n#endif\\n\\n#ifdef HAS_VIEW_NORMAL\\n varying vec3 vViewNormal;\\n#endif\\n\\n#ifdef HAS_VIEW_TANGENT\\n varying vec4 vViewTangent;\\n#endif\\n\\n// model\\n#if defined(HAS_MODEL_VERTEX)\\n varying vec3 vModelVertex;\\n#elif defined(HAS_DISPLACEMENT)\\n vec3 vModelVertex;\\n#endif\\n\\n#if defined(HAS_MODEL_NORMAL)\\n varying vec3 vModelNormal;\\n#elif defined(HAS_EDITOR_DISPLACEMENT)\\n vec3 vModelNormal;\\n#endif\\n\\n#if defined(HAS_MODEL_TANGENT)\\n varying vec3 vModelTangent;\\n#endif\\n\\n#ifdef HAS_VERTEX_COLOR\\n varying vec4 vColor;\\n uniform float uArrayColorEnabled;\\n#endif\\n\\n////////////\\n// ANIMATION\\n////////////\\n\\n#ifdef HAS_MORPHING\\n uniform vec4 uTargetWeights;\\n\\n%UNROLL 4%\\n #if NUM_TARGETS > %ID%\\n attribute vec3 Vertex_%ID%;\\n #define ARG_MORPH_VERTEX_%ID% , Vertex_%ID%\\n\\n #ifdef HAS_MORPHING_NORMAL\\n attribute vec3 Normal_%ID%;\\n #define ARG_MORPH_NORMAL_%ID% , Normal_%ID%\\n #endif\\n\\n #ifdef HAS_MORPHING_TANGENT\\n attribute vec3 Tangent_%ID%;\\n #define ARG_MORPH_TANGENT_%ID% , Tangent_%ID%.xyz\\n #endif\\n #else\\n #define ARG_MORPH_VERTEX_%ID%\\n #define ARG_MORPH_NORMAL_%ID%\\n #define ARG_MORPH_TANGENT_%ID%\\n #endif\\n%%\\n\\n #pragma include \"utils/morphing.glsl\"\\n#endif\\n\\n#ifdef HAS_SKINNING\\n #ifndef NUM_BONES\\n #define NUM_BONES 1\\n #endif\\n\\n attribute vec4 Bones;\\n attribute vec4 Weights;\\n uniform vec4 uBones[NUM_BONES];\\n\\n #pragma include \"utils/skinning.glsl\"\\n#endif\\n\\n#ifdef HAS_DISPLACEMENT\\n uniform float uDisplacementFactor;\\n#endif\\n\\n#ifdef CORRECT_BUMP_NORMAL\\n uniform float uDisplacementNormal;\\n uniform vec2 uDisplacementSize;\\n #pragma include \"utils/normalBump.glsl\"\\n#endif\\n\\n#ifdef HAS_POSITION_COMPRESSION\\n uniform vec3 uQVT;\\n uniform vec3 uQVS;\\n\\n #ifdef HAS_OCT_COMPRESSION\\n #define UNCOMPRESS_DIR(n) n.z = 1.0 - abs(n.x) - abs(n.y); n.xy = n.z >= 0.0 ? n.xy : (1.0 - abs(n.yx)) * sign(n.xy);\\n #else\\n #define UNCOMPRESS_DIR(n) n.z = dot(n.xy, n.xy); n.xyz = vec3(2.0 * n.xy * sqrt(1.0 - n.z), 1.0 - 2.0 * n.z);\\n #endif\\n#endif\\n\\n// attribute -> morph -> skin -> model -> displace -> view -> screen\\n// localVertex = skin(morph(Vertex))\\n// modelVertex = displacement(modelMatrix * localVertex)\\n// viewVertex = viewMatrix * modelVertex\\n\\nvoid main() {\\n#ifdef ASSIGN_UV\\n ASSIGN_UV\\n#endif\\n\\n#ifdef HAS_VERTEX_COLOR\\n vColor = uArrayColorEnabled == 1.0 ? Color : vec4(1.0);\\n#endif\\n\\n#ifdef HAS_SKINNING\\n mat4 boneMatrix = skinning(Weights, Bones);\\n#endif\\n\\n /////////////////////\\n // LOCAL/MODEL VERTEX\\n /////////////////////\\n vec3 localVertex = Vertex.xyz;\\n#ifdef HAS_POSITION_COMPRESSION\\n #ifdef HAS_ZW_COMPRESSION\\n localVertex += Vertex.w;\\n #endif\\n localVertex = localVertex * uQVS RAND_SCALE + uQVT;\\n#endif\\n\\n#ifdef HAS_MORPHING\\n localVertex = morphing(uTargetWeights, localVertex ARG_MORPH_VERTEX_0 ARG_MORPH_VERTEX_1 ARG_MORPH_VERTEX_2 ARG_MORPH_VERTEX_3);\\n#endif\\n\\n#ifdef HAS_SKINNING\\n localVertex = (vec4(localVertex, 1.0) * boneMatrix).xyz;\\n#endif\\n\\n#if defined(HAS_MODEL_VERTEX) || defined(HAS_DISPLACEMENT)\\n vModelVertex = (uModelMatrix * vec4(localVertex, 1.0)).xyz;\\n#endif\\n\\n#if (defined(NEED_LOCAL_NORMAL) && defined(HAS_MORPHING_NORMAL)) || (defined(NEED_LOCAL_TANGENT) && defined(HAS_MORPHING_TANGENT))\\n // normalize weights for direction morphing\\n vec4 nTargetWeights = abs(uTargetWeights);\\n nTargetWeights = uTargetWeights / max(1.0, nTargetWeights.x + nTargetWeights.y + nTargetWeights.z + nTargetWeights.w);\\n#endif\\n\\n /////////\\n // NORMAL\\n /////////\\n#ifdef NEED_LOCAL_NORMAL\\n #ifdef HAS_POSITION_COMPRESSION\\n vec3 localNormal = Normal.xyy;\\n UNCOMPRESS_DIR(localNormal);\\n #else\\n vec3 localNormal = Normal;\\n #endif\\n\\n #ifdef HAS_MORPHING_NORMAL\\n localNormal = morphing(nTargetWeights, localNormal ARG_MORPH_NORMAL_0 ARG_MORPH_NORMAL_1 ARG_MORPH_NORMAL_2 ARG_MORPH_NORMAL_3);\\n #endif\\n\\n #ifdef HAS_SKINNING\\n localNormal = (vec4(localNormal, 0.0) * boneMatrix).xyz;\\n #endif\\n\\n #if defined(HAS_MORPHING) || defined(HAS_SKINNING)\\n localNormal.xyz = normalize(localNormal);\\n #endif\\n\\n #if defined(HAS_MODEL_NORMAL) || defined(HAS_EDITOR_DISPLACEMENT)\\n vModelNormal = uModelNormalMatrix * localNormal;\\n #endif\\n\\n // view normal computed later if we need to correct it (displacement)\\n #if defined(HAS_VIEW_NORMAL) && !defined(CORRECT_BUMP_NORMAL)\\n vViewNormal = uModelViewNormalMatrix * localNormal;\\n #endif\\n#endif\\n\\n //////////\\n // TANGENT\\n //////////\\n#ifdef NEED_LOCAL_TANGENT\\n #ifdef HAS_POSITION_COMPRESSION\\n vec4 localTangent = Tangent.xyzz;\\n UNCOMPRESS_DIR(localTangent);\\n #else\\n vec4 localTangent = Tangent;\\n #endif\\n\\n #ifdef HAS_MORPHING_TANGENT\\n localTangent.xyz = morphing(nTargetWeights, localTangent.xyz ARG_MORPH_TANGENT_0 ARG_MORPH_TANGENT_1 ARG_MORPH_TANGENT_2 ARG_MORPH_TANGENT_3);\\n #endif\\n\\n #ifdef HAS_SKINNING\\n localTangent.xyz = (vec4(localTangent.xyz, 0.0) * boneMatrix).xyz;\\n #endif\\n\\n #if defined(HAS_MORPHING) || defined(HAS_SKINNING)\\n localTangent.xyz = normalize(localTangent.xyz);\\n #endif\\n\\n #ifdef HAS_MODEL_TANGENT\\n vModelTangent = vec4(uModelNormalMatrix * localTangent.xyz, localTangent.w).xyz;\\n #endif\\n\\n #ifdef HAS_VIEW_TANGENT\\n vViewTangent = vec4(uModelViewNormalMatrix * localTangent.xyz, localTangent.w);\\n #endif\\n#endif\\n\\n //////////////////\\n // DISPLACE VERTEX\\n //////////////////\\n#ifdef HAS_DISPLACEMENT\\n // we multiply by 1 - uDisplay2D here as we don\\'t want the displacement to appear in the 2D view of the inspector\\n float displacement = (COLOR_CONVERT_DISPLACEMENT(texture2D(SAMPLER_DISPLACEMENT, UV_DISPLACEMENT).PACK_DISPLACEMENT) - 0.5) * uDisplacementFactor * (1.0 - uDisplay2D);\\n #ifdef HAS_EDITOR_DISPLACEMENT\\n vModelVertex += normalize(vModelNormal) * displacement;\\n #else\\n vModelVertex += vec3(0.0, 0.0, 1.0) * (vModelVertex.z > 0.01 ? displacement : 0.0);\\n #endif\\n vViewVertex = uViewMatrix * vec4(vModelVertex, 1.0);\\n#else\\n vViewVertex = uModelViewMatrix * vec4(localVertex, 1.0);\\n#endif\\n\\n //////////////////\\n // DISPLACE NORMAL\\n //////////////////\\n#ifdef CORRECT_BUMP_NORMAL\\n // if there is no normal map, use displacement to correct normal\\n vec3 invSize = vec3(1.0 / uDisplacementSize, 0.0);\\n vec2 gradient = vec2(COLOR_CONVERT_DISPLACEMENT(texture2D(SAMPLER_DISPLACEMENT, UV_DISPLACEMENT - invSize.xz).PACK_DISPLACEMENT)\\n - COLOR_CONVERT_DISPLACEMENT(texture2D(SAMPLER_DISPLACEMENT, UV_DISPLACEMENT + invSize.xz).PACK_DISPLACEMENT),\\n COLOR_CONVERT_DISPLACEMENT(texture2D(SAMPLER_DISPLACEMENT, UV_DISPLACEMENT - invSize.zy).PACK_DISPLACEMENT)\\n -COLOR_CONVERT_DISPLACEMENT(texture2D(SAMPLER_DISPLACEMENT, UV_DISPLACEMENT + invSize.zy).PACK_DISPLACEMENT));\\n\\n localNormal = bumpMap(localTangent, localNormal, uDisplacementNormal * gradient);\\n\\n #if defined(HAS_VIEW_NORMAL)\\n vModelNormal = uModelNormalMatrix * localNormal;\\n #endif\\n\\n #ifdef HAS_VIEW_NORMAL\\n vViewNormal = uModelViewNormalMatrix * localNormal;\\n #endif\\n#endif\\n\\n ///////////////////////\\n // PROJECTION JITTERING (could be done on the CPU)\\n ///////////////////////\\n mat4 jitteredProjection = uProjectionMatrix;\\n#if defined(WIREFRAME)\\n vViewVertex.w += 0.005 / uProjectionMatrix[1][1];\\n#elif defined(SHADOW_CAST)\\n float doPersp = jitteredProjection[3][3] == 0.0 ? 1.0 : 0.0;\\n vec2 jitter = (abs(uHalton.z) == 2.0 ? 1.0 : 0.0) * (uHalton.xy / uShadowMapSize.xy);\\n jitteredProjection[2].xy += doPersp * jitter;\\n jitteredProjection[3].xy += (1.0 - doPersp) * jitter;\\n#elif !defined(NO_JITTER)\\n jitteredProjection[2].xy += (1.0 - uDisplay2D) * (uHalton.xy * uGlobalTexRatio.xy / uGlobalTexSize.xy);\\n#endif\\n\\n gl_Position = jitteredProjection * vViewVertex;\\n\\n#ifdef HAS_POINT_SIZE\\n gl_PointSize = min(64.0, max(1.0, -uPointSize / vViewVertex.z));\\n#else\\n gl_PointSize = 1.0;\\n#endif\\n\\n// probably not the best solution (in case you need custom things while including base.vert)\\n#ifdef INJECT_VERT\\n INJECT_VERT\\n#endif\\n}\\n',\r\n 'earlyz.vert': '#define HAS_VIEW_VERTEX\\n#pragma include \"base.vert\"\\n',\r\n // 'earlyz.frag':\r\n // '// opacity\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uFrameMod;\\nuniform int uDrawOpaque;\\n\\nvarying vec4 vViewVertex;\\n\\n#pragma include \"utils/encodeDepth.glsl\"\\n\\n#pragma include \"utils/material.glsl\"\\n\\n#ifdef HAS_OPACITY\\n#pragma include \"utils/rand.glsl\"\\n#endif\\n\\nvoid main() {\\n#ifdef HAS_POINT_CIRCLE\\n if (length(2.0 * gl_PointCoord - 1.0) > 1.0) discard;\\n#endif\\n\\n\\n#ifdef HAS_ALPHAMASK\\n if (getMaterialAlphaMask() < uAlphaMaskFactor) discard;\\n#endif\\n#ifdef HAS_OPACITY_DITHER\\n ditheringMaskingDiscard(gl_FragCoord, uOpacityDithering, getMaterialOpacity(), uOpacityFactor, uOpacityThinLayer, uFrameMod, uNearFar, uHalton);\\n#endif\\n\\n float alpha = 1.0;\\n#if defined(HAS_OPACITY_BLEND_OR_ADDITIVE) || defined(HAS_OPACITY_REFRACTION)\\n alpha = getMaterialOpacity();\\n if (uDrawOpaque == 1 && alpha < EPSILON_ALPHA) discard;\\n alpha = uDrawOpaque == 1 ? 1.0 : alpha;\\n#endif\\n\\n float depth = (-vViewVertex.z - uNearFar.x) / (uNearFar.y - uNearFar.x);\\n float scatter = 0.0;\\n float profile = 0.0;\\n\\n#ifdef HAS_SUBSURFACESCATTERING\\n scatter = getMaterialScattering();\\n profile = uSubsurfaceScatteringProfile;\\n#endif\\n\\n gl_FragColor = encodeDepthAlphaProfileScatter(depth, alpha, profile, scatter);\\n}\\n',\r\n 'pbr.vert':\r\n '#define HAS_VIEW_NORMAL\\n#define HAS_VIEW_VERTEX\\n#pragma include \"base.vert\"\\n',\r\n 'pbr.frag':\r\n 'uniform float uRGBMRange;\\nuniform int uOutputLinear;\\n\\n// stuffs (ssr, opacity, scattering)\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uFrameMod;\\nuniform int uDrawOpaque;\\n\\n// shadow signature...\\n#ifdef HAS_SUBSURFACETRANSLUCENCY\\n #define _OUT_DISTANCE\\n #define OPT_DISTANCE shadowDistance,\\n#else\\n #define OPT_DISTANCE\\n#endif\\n\\n//////////\\n// VARYING\\n//////////\\nvarying vec4 vViewVertex;\\nvarying vec3 vViewNormal;\\n\\n#ifdef HAS_SHADOW\\n varying vec3 vModelNormal;\\n varying vec3 vModelVertex;\\n#endif\\n\\n#ifdef HAS_VIEW_TANGENT\\n varying vec4 vViewTangent;\\n#endif\\n\\n#pragma include \"utils/common.glsl\"\\n\\n#pragma include \"utils/functions.glsl\"\\n\\n#pragma include \"utils/material.glsl\"\\n\\n// TODO ifdef around pragma include can result in error (files being included multiple times can be ignored)\\n#pragma include \"utils/decodeDepth.glsl\"\\n\\n#pragma include \"utils/rand.glsl\"\\n\\n#if defined(HAS_NORMALMAP) || defined(HAS_BUMPMAP) || defined(HAS_CLEARCOATNORMALMAP) || defined(SAMPLER_ANISOTROPY)\\n#pragma include \"utils/normalBump.glsl\"\\n#endif\\n\\n#ifdef HAS_SHADOW\\n#pragma include \"shadowing/shadowReceive.glsl\"\\n#endif\\n\\n// /!\\\\ (lightsPBR is also included in clearcoat file, and ifdef around pragma include is not reliable)\\n#if defined(HAS_LIGHT) || defined(HAS_CLEARCOAT) || defined(HAS_SHEEN)\\n#pragma include \"utils/lightsPBR.glsl\"\\n#endif\\n\\n#ifdef HAS_ENVIRONMENT\\n#pragma include \"utils/environment.glsl\"\\n#endif\\n\\n#ifdef HAS_SUBSURFACETRANSLUCENCY\\n#pragma include \"utils/lightsSSS.glsl\"\\n#endif\\n\\n#ifdef HAS_SUBSURFACESCATTERING\\n#pragma include \"utils/checkerboard.glsl\"\\n#endif\\n\\n#ifdef HAS_CLEARCOAT\\n#pragma include \"utils/clearCoat.glsl\"\\n#endif\\n\\n// #ifdef HAS_OPACITY_DITHER\\n// #pragma include \"utils/rand.glsl\"\\n// #endif\\n\\n#ifdef HAS_OPACITY_REFRACTION\\n#pragma include \"utils/refraction.glsl\"\\n#endif\\n\\n#ifdef HAS_SSR\\n#pragma include \"utils/ssr.glsl\"\\n#endif\\n\\nfloat specularOcclusion(const in int occlude, const in float ao, const in vec3 normal, const in vec3 eyeVector) {\\n if (occlude == 0) return 1.0;\\n // Yoshiharu Gotanda\\'s specular occlusion approximation:\\n // cf http://research.tri-ace.com/Data/cedec2011_RealtimePBR_Implementation_e.pptx pg59\\n float d = dot(normal, eyeVector) + ao;\\n return clamp((d * d) - 1.0 + ao, 0.0, 1.0);\\n}\\n\\nfloat adjustRoughnessNormalMap(const in float roughness, const in vec3 normal) {\\n // Based on The Order : 1886 SIGGRAPH course notes implementation (page 21 notes)\\n float nlen2 = dot(normal, normal);\\n if (nlen2 < 1.0) {\\n float nlen = sqrt(nlen2);\\n float kappa = (3.0 * nlen - nlen2 * nlen) / (1.0 - nlen2);\\n // http://www.frostbite.com/2014/11/moving-frostbite-to-pbr/\\n // page 91 : they use 0.5/kappa instead\\n return min(1.0, sqrt(roughness * roughness + 1.0 / kappa));\\n }\\n return roughness;\\n}\\n\\nvec3 computeAnisotropicBentNormal(const in vec3 normal, const in vec3 eyeVector, const in float roughness, const in vec3 anisotropicT, const in vec3 anisotropicB, const in float anisotropy) {\\n vec3 anisotropyDirection = anisotropy >= 0.0 ? anisotropicB : anisotropicT;\\n vec3 anisotropicTangent = cross(anisotropyDirection, eyeVector);\\n vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection);\\n float bendFactor = abs(anisotropy) * clamp(5.0 * roughness, 0.0, 1.0);\\n return normalize(mix(normal, anisotropicNormal, bendFactor));\\n}\\n\\nvoid main() {\\n //////////////////\\n // OPACITY DISCARD\\n //////////////////\\n#ifdef HAS_POINT_CIRCLE\\n if (length(2.0 * gl_PointCoord - 1.0) > 1.0) discard;\\n#endif\\n\\n#ifdef HAS_ALPHAMASK\\n if (getMaterialAlphaMask() < uAlphaMaskFactor) discard;\\n#endif\\n#ifdef HAS_OPACITY_DITHER\\n ditheringMaskingDiscard(gl_FragCoord, uOpacityDithering, getMaterialOpacity(), uOpacityFactor, uOpacityThinLayer, uFrameMod, uNearFar, uHalton);\\n#endif\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n float alpha = getMaterialOpacity();\\n float alphaFinal = alpha * float(1 - uOpacityAdditive);\\n if (alpha == 0.0 || (uDrawOpaque == 1 && alphaFinal < EPSILON_ALPHA) || (uDrawOpaque == 0 && alphaFinal >= EPSILON_ALPHA)) discard;\\n#endif\\n\\n // /!\\\\ because of refraction roughness, this part should be done before the call to getMetalness/getSpecular\\n#ifdef HAS_OPACITY_REFRACTION\\n gRefractionRoughness = uOpacityRoughnessFactor;\\n float alphaRefraction = getMaterialOpacity();\\n if ((uDrawOpaque == 1 && alphaRefraction < EPSILON_ALPHA) || (uDrawOpaque == 0 && alphaRefraction >= EPSILON_ALPHA)) discard;\\n#endif\\n\\n ///////////\\n // GEOMETRY\\n ///////////\\n // https://twitter.com/pyalot/status/711956736639418369\\n vec3 eyeVector = -normalize(vViewVertex.xyz);\\n vec3 frontNormal = normalize(gl_FrontFacing ? vViewNormal : -vViewNormal);\\n\\n#ifdef HAS_VIEW_TANGENT\\n vec4 tangent;\\n tangent = vViewTangent;\\n\\n tangent = gl_FrontFacing ? tangent : -tangent;\\n tangent.xyz = normalize(tangent.xyz);\\n vec3 binormal = normalize(cross(frontNormal, tangent.xyz)) * tangent.w;\\n#endif\\n\\n ///////////\\n // MATERIAL\\n ///////////\\n#if defined(HAS_LEGACY_CLASSIC)\\n vec3 materialDiffuse = getMaterialLegacyDiffuse();\\n vec3 materialSpecular = getMaterialLegacySpecular();\\n#elif defined(HAS_METALNESSPBR)\\n float f0 = 0.08 * getMaterialF0();\\n float metal = getMaterialMetalness();\\n\\n #ifdef HAS_OPACITY_REFRACTION\\n metal *= alphaRefraction;\\n #endif\\n\\n vec3 materialDiffuse = getMaterialAlbedo();\\n vec3 materialSpecular = mix(vec3(f0), materialDiffuse, metal);\\n materialDiffuse *= 1.0 - metal;\\n#else\\n vec3 materialSpecular = getMaterialSpecular();\\n vec3 materialDiffuse = getMaterialDiffuse();\\n\\n #ifdef HAS_OPACITY_REFRACTION\\n materialSpecular *= mix(0.08, 1.0, alphaRefraction);\\n #endif\\n#endif // HAS_METALNESSPBR\\n\\n#if defined(HAS_ENVIRONMENT) || defined(HAS_LIGHT)\\n float materialF90 = clamp(50.0 * materialSpecular.g, 0.0, 1.0);\\n#endif\\n\\n#if defined(HAS_LEGACY_CLASSIC)\\n float materialShininess = getMaterialLegacyShininess();\\n float materialRoughness = 0.0;\\n#elif defined(HAS_ROUGHNESSPBR)\\n float materialRoughness = getMaterialRoughness();\\n#else\\n float materialRoughness = 1.0 - getMaterialGlossiness();\\n#endif // HAS_ROUGHNESSPBR\\n\\n#ifdef HAS_AOPBR\\n float materialAO = getMaterialAO();\\n#endif\\n\\n#ifdef HAS_EMITCOLOR\\n vec3 materialEmit = getMaterialEmitColor();\\n#endif\\n\\n#ifdef HAS_CAVITYPBR\\n float materialCavity = getMaterialCavity();\\n#endif\\n\\n#ifdef HAS_SUBSURFACETRANSLUCENCY\\n float materialTranslucency = getMaterialTranslucency();\\n#endif\\n\\n vec3 materialNormal = frontNormal;\\n#ifdef HAS_NORMALMAP\\n materialNormal = getMaterialNormalMap();\\n materialRoughness = adjustRoughnessNormalMap(materialRoughness, materialNormal);\\n materialNormal = transformNormal(uNormalMapFactor, materialNormal, tangent.xyz, binormal, frontNormal);\\n#endif\\n\\n#ifdef HAS_BUMPMAP\\n materialNormal = transformBump(getMaterialBumpMap(), tangent.xyz, binormal, frontNormal);\\n#endif\\n\\n#ifdef HAS_CLEARCOAT\\n float materialClearCoat = getMaterialClearCoat();\\n float materialClearCoatRoughness = getMaterialClearCoatRoughness();\\n #ifdef HAS_CLEARCOATNORMALMAP\\n vec3 materialClearCoatNormal = transformNormal(uClearCoatNormalMapFactor, getMaterialClearCoatNormal(), tangent.xyz, binormal, frontNormal);\\n #else\\n vec3 materialClearCoatNormal = frontNormal;\\n #endif\\n#endif\\n\\n#if defined(HAS_ANISOTROPY) && (defined(HAS_LIGHT) || defined(HAS_ENVIRONMENT))\\n float anisotropy = uAnisotropyFactor;\\n\\n #ifdef SAMPLER_ANISOTROPY\\n vec2 aniso = getMaterialDirectionAnisotropy();\\n vec3 anisotropicT = transformTangent(aniso, tangent.xyz, binormal);\\n // reproject tangent/binormal on the material normal plane\\n anisotropicT = normalize(anisotropicT - materialNormal * dot(anisotropicT, materialNormal));\\n vec3 anisotropicB = normalize(cross(materialNormal, anisotropicT.xyz));\\n\\n anisotropy *= length(aniso);\\n #else\\n #if defined(HAS_NORMALMAP) || defined(HAS_BUMPMAP)\\n // reproject tangent/binormal on the material normal plane\\n tangent.xyz = normalize(tangent.xyz - materialNormal * dot(tangent.xyz, materialNormal));\\n binormal = normalize(cross(materialNormal, tangent.xyz)) * tangent.w;\\n #endif\\n\\n vec3 anisotropicT = normalize(mix(tangent.xyz, binormal, uAnisotropyDirection));\\n vec3 anisotropicB = normalize(mix(binormal, -tangent.xyz, uAnisotropyDirection));\\n #endif\\n#endif\\n\\n vec3 diffuse = vec3(0.0);\\n vec3 specular = vec3(0.0);\\n\\n#if (defined(HAS_ENVIRONMENT) || defined(HAS_LIGHT))\\n #if defined(HAS_CLEARCOAT)\\n float ccNoV = saturate(dot(materialClearCoatNormal, -refract(eyeVector, materialClearCoatNormal, 1.0 / uClearCoatIor)));\\n #endif\\n #if defined(HAS_SHEEN)\\n float sheenRoughness = getMaterialSheenRoughness();\\n #endif\\n#endif\\n //////////////\\n // ENVIRONMENT\\n //////////////\\n#ifdef HAS_ENVIRONMENT\\n\\n #ifdef HAS_ANISOTROPY\\n vec3 bentAnisotropicNormal = computeAnisotropicBentNormal(materialNormal, eyeVector, materialRoughness, anisotropicT, anisotropicB, anisotropy);\\n #else\\n vec3 bentAnisotropicNormal = materialNormal;\\n #endif\\n\\n\\n diffuse = materialDiffuse * computeDiffuseSPH(materialNormal);\\n\\n #ifdef HAS_SHEEN\\n diffuse += computeSheen(materialNormal, getSpecularDominantDir(materialNormal, reflect(-eyeVector, materialNormal), sheenRoughness), eyeVector, sheenRoughness);\\n #endif\\n\\n #ifdef HAS_LEGACY_CLASSIC\\n specular = materialSpecular * textureCubeFixed(sEnvironmentSpecular, uEnvironmentTransform * normalize((2.0 * clamp(dot(materialNormal, eyeVector), 0.0, 1.0)) * materialNormal - eyeVector), uTextureEnvironmentSpecularTextureSize.x);\\n #else\\n specular = computeIBLSpecularUE4(bentAnisotropicNormal, eyeVector, materialRoughness, materialSpecular, frontNormal, materialF90);\\n #endif\\n\\n #ifdef HAS_CLEARCOAT\\n float ccF0 = materialClearCoat * F_Schlick(uClearCoatF0, 1.0, ccNoV);\\n vec3 ccAbsorbtion = getClearCoatAbsorbtion(ccNoV, ccNoV, materialClearCoat);\\n specular = mix(specular * ccAbsorbtion, getPrefilteredEnvMapColor(materialClearCoatNormal, eyeVector, materialClearCoatRoughness, frontNormal), ccF0);\\n diffuse *= ccAbsorbtion * (1.0 - ccF0);\\n #endif\\n\\n float aoSpec = 1.0;\\n #ifdef HAS_LEGACY_CLASSIC\\n aoSpec = uReflection;\\n specular *= aoSpec;\\n #endif\\n\\n #ifdef HAS_AOPBR\\n diffuse *= uEnvironmentExposure * materialAO;\\n aoSpec = specularOcclusion(uAOPBROccludeSpecular, materialAO, materialNormal, eyeVector);\\n specular *= uEnvironmentExposure * aoSpec;\\n #else\\n diffuse *= uEnvironmentExposure;\\n specular *= uEnvironmentExposure;\\n #endif // HAS_AOPBR\\n\\n #ifdef HAS_SSR\\n #ifdef HAS_CLEARCOAT\\n vec3 normalSsr = normalize(mix(bentAnisotropicNormal, materialClearCoatNormal, materialClearCoat * 0.5));\\n float roughnessSsr = mix(materialRoughness, materialClearCoatRoughness, materialClearCoat);\\n vec3 specularSsr = aoSpec * materialSpecular * mix(vec3(1.0), ccAbsorbtion, materialClearCoat);\\n specular = ssr(specular, specularSsr, roughnessSsr, normalSsr, eyeVector);\\n #else\\n specular = ssr(specular, materialSpecular * aoSpec, materialRoughness, bentAnisotropicNormal, eyeVector);\\n #endif\\n #endif // HAS_SSR\\n#endif // HAS_ENVIRONMENT\\n\\n /////////////////////////\\n // LIGHTING AND SHADOWING\\n /////////////////////////\\n#ifdef HAS_LIGHT\\n float attenuation, dotNL;\\n vec3 eyeLightDir;\\n bool lighted;\\n vec3 lightSpecular;\\n vec3 lightDiffuse;\\n vec4 prepGGX = precomputeGGX(materialNormal, eyeVector, max(MIN_ROUGHNESS, materialRoughness));\\n\\n #ifdef HAS_CLEARCOAT\\n vec4 prepGGXClearCoat = precomputeGGX(materialClearCoatNormal, eyeVector, materialClearCoatRoughness);\\n vec3 ccSpecular;\\n vec3 ccAttenuation;\\n #endif\\n#endif\\n\\n#ifdef HAS_SHADOW\\n float shadow;\\n vec3 modelNormal = normalize(gl_FrontFacing ? vModelNormal : -vModelNormal);\\n\\n #ifdef HAS_SUBSURFACETRANSLUCENCY\\n float shadowDistance;\\n #endif\\n#endif // HAS_SHADOW\\n\\n\\n%UNROLL 4%\\n#ifdef LIGHT_TYPE_%ID%\\n\\n #if LIGHT_TYPE_%ID% == LIGHT_SPOT\\n precomputeSpot(materialNormal, vViewVertex.xyz, uEditorLight%ID%_viewDirection, uEditorLight%ID%_attenuation, uEditorLight%ID%_viewPosition.xyz, uEditorLight%ID%_spotCutOff, uEditorLight%ID%_spotBlend, attenuation, eyeLightDir, dotNL);\\n #elif LIGHT_TYPE_%ID% == LIGHT_POINT\\n precomputePoint(materialNormal, vViewVertex.xyz, uEditorLight%ID%_attenuation, uEditorLight%ID%_viewPosition.xyz, attenuation, eyeLightDir, dotNL);\\n #elif LIGHT_TYPE_%ID% == LIGHT_DIRECTION\\n precomputeSun(materialNormal, uEditorLight%ID%_viewDirection, attenuation, eyeLightDir, dotNL);\\n #elif LIGHT_TYPE_%ID% == LIGHT_HEMI\\n precomputeSun(materialNormal, uEditorLight%ID%_viewDirection, attenuation, eyeLightDir, dotNL);\\n #endif\\n\\n #ifdef HAS_LEGACY_CLASSIC\\n #if LIGHT_TYPE_%ID% == LIGHT_HEMI\\n hemiLight(materialNormal, eyeVector, dotNL, eyeLightDir, materialDiffuse, materialSpecular, materialShininess, uEditorLight%ID%_diffuse.rgb, uEditorLight%ID%_ground.rgb, lightDiffuse, lightSpecular, lighted);\\n #else\\n computeLightLambertCookTorrance(materialNormal, eyeVector, dotNL, attenuation, materialDiffuse, materialSpecular, materialShininess, uEditorLight%ID%_diffuse.rgb, uEditorLight%ID%_diffuse.rgb, eyeLightDir, lightDiffuse, lightSpecular, lighted);\\n #endif\\n #else\\n #ifdef HAS_ANISOTROPY\\n computeLightLambertGGXAnisotropy(materialNormal, eyeVector, dotNL, prepGGX, materialDiffuse, materialSpecular, attenuation, uEditorLight%ID%_diffuse.rgb, eyeLightDir, materialF90, anisotropicT, anisotropicB, anisotropy, lightDiffuse, lightSpecular, lighted);\\n #else\\n computeLightLambertGGX(materialNormal, eyeVector, dotNL, prepGGX, materialDiffuse, materialSpecular, attenuation, uEditorLight%ID%_diffuse.rgb, eyeLightDir, materialF90, lightDiffuse, lightSpecular, lighted);\\n #endif\\n #endif\\n\\n #ifdef HAS_CLEARCOAT\\n computeLightLambertGGXClearCoat(ccNoV, materialClearCoatNormal, eyeVector, dot(materialClearCoatNormal, eyeLightDir), prepGGXClearCoat, attenuation, uEditorLight%ID%_diffuse.rgb, eyeLightDir, materialClearCoat, ccSpecular, ccAttenuation);\\n lightDiffuse *= ccAttenuation;\\n lightSpecular = ccSpecular + lightSpecular * ccAttenuation;\\n #endif\\n\\n #ifdef HAS_SHEEN\\n lightDiffuse += computeSheen(materialNormal, eyeLightDir, eyeVector, sheenRoughness);\\n #endif\\n\\n\\n\\n #ifdef HAS_SHADOW_%ID%\\n #ifdef _ATLAS_SHADOW\\n shadow = shadowReceive(lighted, modelNormal, vModelVertex, Texture7, uShadow_Texture0_renderSize, uShadow_Texture%ID%_projection, uShadow_Texture%ID%_viewRight, uShadow_Texture%ID%_viewUp, uShadow_Texture%ID%_viewLook, uShadow_Texture%ID%_depthRange, uShadowReceive%ID%_bias, uShadow_Texture%ID%_mapSize, OPT_DISTANCE uStaticFrameNumShadow%ID%);\\n #else\\n shadow = shadowReceive(lighted, modelNormal, vModelVertex, TEX_SHADOW_%ID%, uShadow_Texture%ID%_renderSize, uShadow_Texture%ID%_projection, uShadow_Texture%ID%_viewRight, uShadow_Texture%ID%_viewUp, uShadow_Texture%ID%_viewLook, uShadow_Texture%ID%_depthRange, uShadowReceive%ID%_bias, OPT_DISTANCE uStaticFrameNumShadow%ID%);\\n #endif // _ATLAS_SHADOW\\n\\n lightDiffuse *= shadow;\\n lightSpecular *= shadow;\\n\\n #ifdef HAS_SUBSURFACETRANSLUCENCY\\n lightDiffuse += computeLightSSS(dotNL, attenuation, uSubsurfaceTranslucencyThicknessFactor, uSubsurfaceTranslucencyColor, materialTranslucency, shadowDistance, materialDiffuse, uEditorLight%ID%_diffuse.rgb);\\n #endif\\n #endif // HAS_SHADOW\\n\\n diffuse += lightDiffuse;\\n specular += lightSpecular;\\n#endif // LIGHT_TYPE\\n%%\\n\\n /////////////\\n // REFRACTION\\n /////////////\\n#ifdef HAS_OPACITY_REFRACTION\\n #ifdef HAS_REFRACTION_NORMAL_OFFSET\\n vec3 refractLight = refraction(gRefractionRoughness, materialNormal, frontNormal);\\n #else\\n vec3 refractLight = refraction(gRefractionRoughness, materialNormal, eyeVector);\\n #endif\\n\\n #ifdef HAS_REFRACTION_ALBEDO_TINT\\n refractLight *= materialDiffuse;\\n #endif\\n\\n diffuse = mix(refractLight, diffuse, alphaRefraction);\\n#endif // HAS_OPACITY_REFRACTION\\n\\n //////////////////////\\n // SCATTERING AND EMIT\\n //////////////////////\\n#ifdef HAS_SUBSURFACESCATTERING\\n #ifdef HAS_EMITCOLOR\\n diffuse = uEmitMultiplicative == 1 ? diffuse * materialEmit : diffuse + materialEmit;\\n if (uEmitMultiplicative == 1) specular *= materialEmit;\\n #endif\\n vec3 frag = mix(specular, diffuse, checkerboard(gl_FragCoord.xy, uHalton));\\n#else\\n vec3 frag = diffuse + specular;\\n #ifdef HAS_EMITCOLOR\\n frag = uEmitMultiplicative == 1 ? frag * materialEmit : frag + materialEmit;\\n #endif\\n#endif // HAS_SUBSURFACESCATTERING\\n\\n#ifdef HAS_CAVITYPBR\\n frag *= materialCavity;\\n#endif\\n\\n // premult\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n frag *= alpha;\\n#endif\\n\\n if (uOutputLinear != 1) frag = linearTosRGB(frag);\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n gl_FragColor = uDrawOpaque == 1 ? encodeRGBM(frag, uRGBMRange) : vec4(frag, alphaFinal);\\n#else\\n gl_FragColor = encodeRGBM(frag, uRGBMRange);\\n#endif\\n}\\n',\r\n 'outline.vert': '#define NO_JITTER 1\\n#pragma include \"baseVert.glsl\"\\n',\r\n 'outline.frag':\r\n 'uniform vec3 uOutlineColor;\\n\\nvoid main() {\\n#ifdef HAS_POINT_CIRCLE\\n if (length(2.0 * gl_PointCoord - 1.0) > 1.0) discard;\\n#endif\\n\\n gl_FragColor = vec4(uOutlineColor, 1.0);\\n}\\n',\r\n 'matcap.vert':\r\n '#define HAS_VIEW_NORMAL\\n#define HAS_VIEW_VERTEX\\n#pragma include \"base.vert\"\\n',\r\n 'matcap.frag':\r\n 'uniform float uRGBMRange;\\nuniform int uOutputLinear;\\n\\n// stuffs (ssr, opacity, scattering)\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uFrameMod;\\nuniform int uDrawOpaque;\\n\\nuniform vec3 uMatcapColor;\\n\\nuniform int uInspectorView; // see globalUniforms\\n\\n//////////\\n// VARYING\\n//////////\\nvarying vec4 vViewVertex;\\nvarying vec3 vViewNormal;\\n\\n#ifdef HAS_VIEW_TANGENT\\nvarying vec4 vViewTangent;\\n#endif\\n\\n#pragma include \"utils/common.glsl\"\\n\\n#pragma include \"utils/functions.glsl\"\\n\\n#pragma include \"utils/material.glsl\"\\n\\n#pragma include \"utils/curvature.glsl\"\\n\\n// TODO ifdef around pragma include can result in error (files being included multiple times can be ignored)\\n#pragma include \"utils/decodeDepth.glsl\"\\n\\n#pragma include \"utils/rand.glsl\"\\n\\n#ifdef HAS_VIEW_TANGENT\\n#pragma include \"utils/normalBump.glsl\"\\n#endif\\n\\n#ifdef HAS_OPACITY_REFRACTION\\n#pragma include \"utils/refraction.glsl\"\\n#endif\\n\\nvoid main() {\\n //////////////////\\n // OPACITY DISCARD\\n //////////////////\\n#ifdef HAS_POINT_CIRCLE\\n if (length(2.0 * gl_PointCoord - 1.0) > 1.0) discard;\\n#endif\\n\\n#ifdef HAS_ALPHAMASK\\n if (getMaterialAlphaMask() < uAlphaMaskFactor) discard;\\n#endif\\n#ifdef HAS_OPACITY_DITHER\\n ditheringMaskingDiscard(gl_FragCoord, uOpacityDithering, getMaterialOpacity(), uOpacityFactor, uOpacityThinLayer, uFrameMod, uNearFar, uHalton);\\n#endif\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n float alpha = getMaterialOpacity();\\n float alphaFinal = alpha * float(1 - uOpacityAdditive);\\n if (alpha == 0.0 || (uDrawOpaque == 1 && alphaFinal < EPSILON_ALPHA) || (uDrawOpaque == 0 && alphaFinal >= EPSILON_ALPHA)) discard;\\n#endif\\n\\n// /!\\\\ because of refraction roughness, this part should be done before the call to getMetalness/getSpecular\\n#ifdef HAS_OPACITY_REFRACTION\\n gRefractionRoughness = uOpacityRoughnessFactor;\\n float alphaRefraction = getMaterialOpacity();\\n if ((uDrawOpaque == 1 && alphaRefraction < EPSILON_ALPHA) || (uDrawOpaque == 0 && alphaRefraction >= EPSILON_ALPHA)) discard;\\n#endif\\n\\n ///////////\\n // GEOMETRY\\n ///////////\\n vec3 eyeVector = -normalize(vViewVertex.xyz);\\n vec3 frontNormal = normalize(gl_FrontFacing ? vViewNormal : -vViewNormal);\\n\\n#ifdef HAS_VIEW_TANGENT\\n vec4 tangent = gl_FrontFacing ? vViewTangent : -vViewTangent;\\n tangent.xyz = normalize(tangent.xyz);\\n vec3 binormal = normalize(cross(frontNormal, tangent.xyz)) * tangent.w;\\n#endif\\n\\n ///////////\\n // MATERIAL\\n ///////////\\n vec3 materialNormal = frontNormal;\\n#ifdef HAS_NORMALMAP\\n materialNormal = getMaterialNormalMap();\\n materialNormal = transformNormal(uNormalMapFactor, materialNormal, tangent.xyz, binormal, frontNormal);\\n#endif\\n\\n#ifdef HAS_BUMPMAP\\n materialNormal = transformBump(getMaterialBumpMap(), tangent.xyz, binormal, frontNormal);\\n#endif\\n\\n vec3 materialDiffuse = uMatcapColor;\\n#ifdef HAS_VERTEX_COLOR\\n materialDiffuse *= getVertexColor();\\n#endif\\n\\n vec3 nm_x = vec3(-eyeVector.z, 0.0, eyeVector.x);\\n vec3 nm_y = cross(nm_x, eyeVector);\\n vec2 uvMatcap = vec2(dot(materialNormal.xz, -nm_x.xz), dot(materialNormal, nm_y)) * 0.5 + 0.5;\\n vec3 diffuse = materialDiffuse * sRGBToLinear(texture2D(SAMPLER_MATCAP, uvMatcap).rgb) * getCurvature(materialNormal);\\n\\n /////////////\\n // REFRACTION\\n /////////////\\n#ifdef HAS_OPACITY_REFRACTION\\n\\n#ifdef HAS_REFRACTION_NORMAL_OFFSET\\n vec3 refractLight = refraction(uOpacityRoughnessFactor, materialNormal, frontNormal);\\n#else\\n vec3 refractLight = refraction(uOpacityRoughnessFactor, materialNormal, eyeVector);\\n#endif\\n\\n#ifdef HAS_REFRACTION_ALBEDO_TINT\\n refractLight *= materialDiffuse;\\n#endif\\n\\n diffuse = mix(refractLight, diffuse, alphaRefraction);\\n#endif // HAS_OPACITY_REFRACTION\\n\\n vec3 frag = diffuse;\\n\\n if (uInspectorView == 2) {\\n frag = vec3(0.9, 0.75, 0.5) * max(0.25, dot(materialNormal.xyz, vec3(0.15, 0.3, 0.9)));\\n }\\n\\n// premult\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n frag *= alpha;\\n#endif\\n\\n if (uOutputLinear != 1) frag = linearTosRGB(frag);\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n gl_FragColor = uDrawOpaque == 1 ? encodeRGBM(frag, uRGBMRange) : vec4(frag, alphaFinal);\\n#else\\n gl_FragColor = encodeRGBM(frag, uRGBMRange);\\n#endif\\n}\\n',\r\n 'shadeless.vert': '#pragma include \"pbr.vert\"\\n',\r\n 'shadeless.frag':\r\n 'uniform float uRGBMRange;\\nuniform int uOutputLinear;\\n\\n// stuffs (ssr, opacity, scattering)\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uFrameMod;\\nuniform int uDrawOpaque;\\n\\n//////////\\n// VARYING\\n//////////\\n\\n#ifdef HAS_OPACITY_REFRACTION\\n varying vec3 vViewNormal;\\n varying vec4 vViewVertex;\\n#endif\\n\\n#pragma include \"utils/common.glsl\"\\n#pragma include \"utils/functions.glsl\"\\n#pragma include \"utils/material.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n\\n#ifdef HAS_OPACITY_REFRACTION\\n #pragma include \"utils/refraction.glsl\"\\n#endif\\n\\nvoid main() {\\n //////////////////\\n // OPACITY DISCARD\\n //////////////////\\n#ifdef HAS_POINT_CIRCLE\\n if (length(2.0 * gl_PointCoord - 1.0) > 1.0) discard;\\n#endif\\n\\n#ifdef HAS_ALPHAMASK\\n if (getMaterialAlphaMask() < uAlphaMaskFactor) discard;\\n#endif\\n\\n#ifdef HAS_OPACITY_DITHER\\n ditheringMaskingDiscard(gl_FragCoord, uOpacityDithering, getMaterialOpacity(), uOpacityFactor, uOpacityThinLayer, uFrameMod, uNearFar, uHalton);\\n#endif\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n float alpha = getMaterialOpacity();\\n float alphaFinal = alpha * float(1 - uOpacityAdditive);\\n if (alpha == 0.0 || (uDrawOpaque == 1 && alphaFinal < EPSILON_ALPHA) || (uDrawOpaque == 0 && alphaFinal >= EPSILON_ALPHA)) discard;\\n#endif\\n\\n // /!\\\\ because of refraction roughness, this part should be done before the call to getMetalness/getSpecular\\n#ifdef HAS_OPACITY_REFRACTION\\n gRefractionRoughness = uOpacityRoughnessFactor;\\n float alphaRefraction = getMaterialOpacity();\\n if ((uDrawOpaque == 1 && alphaRefraction < EPSILON_ALPHA) || (uDrawOpaque == 0 && alphaRefraction >= EPSILON_ALPHA)) discard;\\n#endif\\n\\n ///////////\\n // GEOMETRY\\n ///////////\\n#ifdef HAS_OPACITY_REFRACTION\\n vec3 eyeVector = -normalize(vViewVertex.xyz);\\n vec3 frontNormal = normalize(gl_FrontFacing ? vViewNormal : -vViewNormal);\\n#endif\\n\\n ///////////\\n // MATERIAL\\n ///////////\\n#if defined(HAS_LEGACY_CLASSIC)\\n vec3 materialDiffuse = getMaterialLegacyDiffuse();\\n#elif defined(HAS_ALBEDOPBR)\\n vec3 materialDiffuse = getMaterialAlbedo();\\n#else\\n vec3 materialDiffuse = getMaterialDiffuse();\\n#endif\\n\\n#ifdef HAS_AOPBR\\n float materialAO = getMaterialAO();\\n#endif\\n\\n#ifdef HAS_EMITCOLOR\\n vec3 materialEmit = getMaterialEmitColor();\\n#endif\\n\\n#ifdef HAS_CAVITYPBR\\n float materialCavity = getMaterialCavity();\\n#endif\\n\\n vec3 diffuse = materialDiffuse;\\n\\n#ifdef HAS_AOPBR\\n diffuse *= materialAO;\\n#endif\\n\\n /////////////\\n // REFRACTION\\n /////////////\\n#ifdef HAS_OPACITY_REFRACTION\\n #ifdef HAS_REFRACTION_NORMAL_OFFSET\\n vec3 refractLight = refraction(uOpacityRoughnessFactor, frontNormal, frontNormal);\\n #else\\n vec3 refractLight = refraction(uOpacityRoughnessFactor, frontNormal, eyeVector);\\n #endif\\n\\n #ifdef HAS_REFRACTION_ALBEDO_TINT\\n refractLight *= materialDiffuse;\\n #endif\\n\\n diffuse = mix(refractLight, diffuse, alphaRefraction);\\n#endif // HAS_OPACITY_REFRACTION\\n\\n vec3 frag = diffuse;\\n\\n#ifdef HAS_EMITCOLOR\\n frag = uEmitMultiplicative == 1 ? frag * materialEmit : frag + materialEmit;\\n#endif\\n\\n#ifdef HAS_CAVITYPBR\\n frag *= materialCavity;\\n#endif\\n\\n // premult\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n frag *= alpha;\\n#endif\\n\\n if (uOutputLinear != 1) frag = linearTosRGB(frag);\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n gl_FragColor = uDrawOpaque == 1 ? encodeRGBM(frag, uRGBMRange) : vec4(frag, alphaFinal);\\n#else\\n gl_FragColor = encodeRGBM(frag, uRGBMRange);\\n#endif\\n}\\n',\r\n 'wireframe.vert': '#define WIREFRAME\\n#pragma include \"base.vert\"\\n',\r\n 'wireframe.frag':\r\n 'uniform vec4 uColor;\\n\\nvoid main() {\\n gl_FragColor = vec4(uColor.rgb * uColor.a, uColor.a);\\n}\\n',\r\n 'inspector/inspector.vert': '#pragma include \"base.vert\"\\n',\r\n 'inspector/inspector.frag':\r\n 'uniform float uRGBMRange;\\nuniform int uOutputLinear;\\n\\n// stuffs (ssr, opacity, scattering)\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uFrameMod;\\nuniform int uDrawOpaque;\\n\\nuniform float uDisplay2D;\\nuniform int uInspectorView; // see globalUniforms\\n\\nuniform float uInspectorFactor;\\nuniform int uInspectorInvert;\\nuniform float uInspectorMaskThreshold;\\nuniform vec3 uInspectorColor;\\n\\nuniform vec2 uHoverUV;\\nuniform int uInspectorSelected;\\nuniform int uInspectorWireframe;\\n\\n#ifdef FEEDBACK_UV\\n vec3 colorHoverUV(const in vec3 frag) {\\n if (uInspectorSelected == 0) return frag;\\n return mix(vec3(1.0, 0.0, 0.0), frag, smoothstep(0.01, 0.02, distance(FEEDBACK_UV, uHoverUV)));\\n }\\n#endif\\n\\n#pragma include \"utils/functions.glsl\"\\n#pragma include \"utils/material.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n\\nvoid main() {\\n //////////////////\\n // OPACITY DISCARD\\n //////////////////\\n#ifdef HAS_POINT_CIRCLE\\n if (length(2.0 * gl_PointCoord - 1.0) > 1.0) discard;\\n#endif\\n\\n#ifdef HAS_ALPHAMASK\\n if (getMaterialAlphaMask() < uAlphaMaskFactor) discard;\\n#endif\\n#ifdef HAS_OPACITY_DITHER\\n if (uDisplay2D == 0.0) ditheringMaskingDiscard(gl_FragCoord, uOpacityDithering, getMaterialOpacity(), uOpacityFactor, uOpacityThinLayer, uFrameMod, uNearFar, uHalton);\\n#endif\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n float alpha = 1.0;\\n float alphaFinal = 1.0;\\n\\n if (uDisplay2D == 0.0) {\\n alpha = getMaterialOpacity();\\n alphaFinal = alpha * float(1 - uOpacityAdditive);\\n }\\n\\n if (alpha == 0.0 || (uDrawOpaque == 1 && alphaFinal < EPSILON_ALPHA) || (uDrawOpaque == 0 && alphaFinal >= EPSILON_ALPHA)) discard;\\n#endif\\n\\n ///////////\\n // MATERIAL\\n ///////////\\n vec3 frag = vec3(0.0);\\n#ifdef HAS_INSPECTOR\\n frag = uInspectorFactor * COLOR_CONVERT_INSPECTOR(texture2D(SAMPLER_INSPECTOR, UV_INSPECTOR).PACK_INSPECTOR);\\n if (uInspectorInvert == 1) frag = 1.0 - frag;\\n\\n if (uInspectorMaskThreshold > 0.0 && uDisplay2D == 0.0) frag = frag.x < uInspectorMaskThreshold ? vec3(0.0) : vec3(1.0);\\n\\n #ifdef HAS_VERTEX_COLOR\\n #ifdef HAS_VERTEX_ALPHA\\n frag *= getVertexColor();\\n #else\\n frag *= uInspectorView == 1 ? sRGBToLinear(vColor.aaa) : getVertexColor();\\n #endif\\n #endif\\n\\n // we want to display the linear textures as srgb textures, see comment in channelFactoryViewModel\\n #ifdef CONVERT_INSPECTOR_TO_LINEAR\\n frag = sRGBToLinear(frag);\\n #endif\\n\\n #ifdef HAS_INSPECTOR_TEXTURE\\n frag *= uInspectorColor;\\n #endif\\n\\n frag = colorHoverUV(frag);\\n#endif\\n\\n // premult\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n frag *= alpha;\\n#endif\\n\\n if (uOutputLinear != 1) frag = linearTosRGB(frag);\\n\\n if (uDisplay2D == 1.0) {\\n gl_FragColor = vec4(frag, 1.0);\\n return;\\n }\\n\\n#ifdef HAS_OPACITY_BLEND_OR_ADDITIVE\\n gl_FragColor = uDrawOpaque == 1 ? encodeRGBM(frag, uRGBMRange) : vec4(frag, alphaFinal);\\n#else\\n gl_FragColor = encodeRGBM(frag, uRGBMRange);\\n#endif\\n}\\n',\r\n 'shadowing/shadowCast.vert':\r\n 'uniform vec2 uShadowMapSize;\\n#define SHADOW_CAST\\n#define HAS_VIEW_VERTEX\\n#pragma include \"baseVert.glsl\"\\n',\r\n 'shadowing/shadowCast.frag':\r\n '// opacity\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uFrameMod;\\nuniform int uDrawOpaque;\\n\\nuniform vec4 uShadowDepthRange;\\n\\nvarying vec4 vViewVertex;\\n\\n#pragma include \"utils/material.glsl\"\\n\\n#ifdef HAS_OPACITY\\n#pragma include \"utils/material.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n#endif\\n\\nvec4 encodeFloatRGBA( float v ) {\\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * v;\\n enc = fract(enc);\\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\\n return enc;\\n}\\n\\nvoid main() {\\n#ifdef HAS_ALPHAMASK\\n if (getMaterialAlphaMask() < uAlphaMaskFactor) discard;\\n#endif\\n#ifdef HAS_OPACITY_DITHER\\n ditheringMaskingDiscard(gl_FragCoord, uOpacityDithering, getMaterialOpacity(), uOpacityFactor, uOpacityThinLayer, uFrameMod, uNearFar, uHalton);\\n#endif\\n\\n#if defined(HAS_OPACITY_BLEND_OR_ADDITIVE) || defined(HAS_OPACITY_REFRACTION)\\n if (getMaterialOpacity() < EPSILON_ALPHA) discard;\\n#endif\\n\\n gl_FragColor = encodeFloatRGBA((-vViewVertex.z - uShadowDepthRange.x) / (uShadowDepthRange.y - uShadowDepthRange.x));\\n}\\n',\r\n 'ARKit/shadowAr.vert': '#pragma include \"base.vert\"\\n',\r\n 'ARKit/shadowAr.frag':\r\n '\\n#pragma include \"shadowing/shadowReceive.glsl\"\\n\\nvarying vec3 vModelNormal;\\nvarying vec3 vModelVertex;\\n\\nvoid main() {\\n vec3 modelNormal = normalize(gl_FrontFacing ? vModelNormal : -vModelNormal);\\n #ifdef _ATLAS_SHADOW\\n float shadow = shadowReceive(true, modelNormal, vModelVertex, Texture7, uShadow_Texture0_renderSize, uShadow_Texture0_projection, uShadow_Texture0_viewRight, uShadow_Texture0_viewUp, uShadow_Texture0_viewLook, uShadow_Texture0_depthRange, uShadowReceive0_bias, uShadow_Texture0_mapSize, uStaticFrameNumShadow0);\\n #else\\n float shadow = shadowReceive(true, modelNormal, vModelVertex, Texture12, uShadow_Texture0_renderSize, uShadow_Texture0_projection, uShadow_Texture0_viewRight, uShadow_Texture0_viewUp, uShadow_Texture0_viewLook, uShadow_Texture0_depthRange, uShadowReceive0_bias, uStaticFrameNumShadow0);\\n #endif\\n\\n // not much blending, so no need to convert to srgb\\n // gl_FragColor = vec4(0.0, 0.0, 0.0, linearTosRGB(0.5 - shadow));\\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.5 - shadow);\\n}\\n',\r\n 'webVR/controller.vert':\r\n '#define HAS_VERTEX_COLOR\\n#define HAS_VIEW_VERTEX\\n#define HAS_VIEW_NORMAL\\n#pragma include \"base.vert\"\\n',\r\n 'webVR/controller.frag':\r\n '#define MIN_ROUGHNESS 0.045\\n\\nuniform float uRGBMRange;\\nuniform int uOutputLinear;\\n\\nvarying vec4 vViewVertex;\\nvarying vec3 vViewNormal;\\nvarying vec4 vColor;\\n\\nuniform float uNormalSign;\\nuniform vec3 uAlbedo;\\nuniform float uRoughness;\\nuniform float uMetalness;\\n\\nvec3 lightDir = normalize(vec3(0.0, 0.3, 0.9));\\nvec3 lightColor = vec3(0.7, 0.7, 0.9);\\n\\n#pragma include \"utils/functions.glsl\"\\n\\n#pragma include \"utils/lightsPBR.glsl\"\\n\\nvoid main() {\\n vec3 eyeVector = -normalize(vViewVertex.xyz);\\n vec3 materialNormal = uNormalSign * normalize(gl_FrontFacing ? vViewNormal : -vViewNormal);\\n\\n // material\\n float f0 = 0.04;\\n vec3 materialDiffuse = uAlbedo * vColor.r;\\n vec3 materialSpecular = mix(vec3(f0), materialDiffuse, uMetalness);\\n materialDiffuse *= 1.0 - uMetalness;\\n float materialRoughness = max(MIN_ROUGHNESS, uRoughness);\\n float materialF90 = clamp(50.0 * materialSpecular.g, 0.0, 1.0);\\n\\n // precompute light\\n float attenuation, dotNL;\\n vec3 eyeLightDir;\\n bool lighted;\\n vec3 lightSpecular;\\n vec3 lightDiffuse;\\n vec4 prepGGX = precomputeGGX(materialNormal, eyeVector, materialRoughness);\\n\\n // shading\\n attenuation = 1.0;\\n dotNL = dot(lightDir, materialNormal);\\n computeLightLambertGGX(materialNormal, eyeVector, dotNL, prepGGX, materialDiffuse, materialSpecular, attenuation, lightColor, lightDir, materialF90, lightDiffuse, lightSpecular, lighted);\\n\\n vec3 frag = lightDiffuse + lightSpecular;\\n if (uOutputLinear != 1) frag = linearTosRGB(frag);\\n gl_FragColor = encodeRGBM(frag, uRGBMRange);\\n}\\n',\r\n 'debug/boneBox.vert':\r\n '#define HAS_VIEW_NORMAL\\n#pragma include \"base.vert\"\\n',\r\n 'debug/boneBox.frag':\r\n 'uniform float uRGBMRange;\\n\\nvarying vec3 vViewNormal;\\n\\n#pragma include \"utils/functions.glsl\"\\n\\nvoid main(void) {\\n gl_FragColor = encodeRGBM(0.5 * vec3(abs(dot(vViewNormal.xyz, vec3(0.3, 0.6, 0.9)))), uRGBMRange);\\n}\\n',\r\n 'debug/normal.vert':\r\n 'attribute float Offset;\\nuniform float uScale;\\n\\n#define HAS_MODEL_VERTEX\\n#define HAS_MODEL_NORMAL\\n\\n#define INJECT_VERT gl_Position = uProjectionMatrix * uViewMatrix * vec4(Offset == 1.0 ? vModelVertex + normalize(vModelNormal) * uScale : vModelVertex, 1.0);\\n\\n#pragma include \"base.vert\"\\n',\r\n 'debug/normal.frag':\r\n 'uniform vec3 uColorDebug;\\n\\nvoid main(void) {\\n gl_FragColor = vec4(uColorDebug, 1.0);\\n}\\n',\r\n 'debug/tangent.vert':\r\n 'attribute float Offset;\\nuniform float uScale;\\n\\n#define HAS_MODEL_VERTEX\\n#define HAS_MODEL_TANGENT\\n\\n#define INJECT_VERT gl_Position = uProjectionMatrix * uViewMatrix * vec4(Offset == 1.0 ? vModelVertex + normalize(vModelTangent) * uScale : vModelVertex, 1.0);\\n\\n#pragma include \"base.vert\"\\n',\r\n 'debug/tangent.frag':\r\n 'uniform vec3 uColorDebug;\\n\\nvoid main(void) {\\n gl_FragColor = vec4(uColorDebug, 1.0);\\n}\\n',\r\n 'debug/skinning.vert':\r\n 'attribute vec3 BonesColor;\\nvarying vec3 vBonesColor;\\n\\n#define NO_JITTER\\n#define INJECT_VERT vBonesColor = BonesColor;\\n\\n#pragma include \"base.vert\"\\n',\r\n 'debug/skinning.frag':\r\n 'varying vec3 vBonesColor;\\n\\nvoid main(void) {\\n gl_FragColor = vec4(vBonesColor, 1.0);\\n}\\n',\r\n 'debug/geometry.vert': '#define NO_JITTER\\n#pragma include \"base.vert\"\\n',\r\n 'debug/geometry.frag':\r\n 'uniform vec3 uColorDebug;\\n\\nvoid main(void) {\\n gl_FragColor = vec4(uColorDebug, 1.0);\\n}\\n',\r\n 'ground/ground.vert': '#pragma include \"base.vert\"\\n',\r\n 'ground/ground.frag':\r\n '#pragma include \"utils/encodeDepth.glsl\"\\nuniform vec2 uNearFar;\\nvarying vec4 vViewVertex;\\n\\nuniform float uGroundFade;\\nuniform float uGroundOpacity;\\nuniform float uChanging;\\n\\nvarying vec2 vTexCoord0;\\n\\n#ifdef PASS_THROUGH\\n float getShadow(){\\n return 1.0;\\n }\\n#endif\\n\\n#ifdef SHADOW_CATCHER\\n\\n varying vec3 vModelNormal;\\n varying vec3 vModelVertex;\\n\\n #define OPT_DISTANCE\\n #pragma include \"shadowing/shadowReceive.glsl\"\\n\\n #pragma include \"utils/getLuminance.glsl\"\\n\\n %UNROLL 4%\\n #ifdef LIGHT_TYPE_%ID%\\n uniform vec4 uEditorLight%ID%_diffuse;\\n #endif\\n %%\\n\\n\\n float getShadow(){\\n float shadow = 0.0;\\n vec3 modelNormal = normalize(gl_FrontFacing ? vModelNormal : -vModelNormal);\\n bool lighted = true;\\n\\n float weight;\\n float sumWeights = 0.0;\\n\\n %UNROLL 4%\\n #ifdef LIGHT_TYPE_%ID%\\n #ifdef HAS_SHADOW_%ID%\\n weight = getLuminance(uEditorLight%ID%_diffuse.rgb);\\n #ifdef _ATLAS_SHADOW\\n shadow += weight * shadowReceive(lighted, modelNormal, vModelVertex, Texture7, uShadow_Texture0_renderSize, uShadow_Texture%ID%_projection, uShadow_Texture%ID%_viewRight, uShadow_Texture%ID%_viewUp, uShadow_Texture%ID%_viewLook, uShadow_Texture%ID%_depthRange, uShadowReceive%ID%_bias, uShadow_Texture%ID%_mapSize, OPT_DISTANCE uStaticFrameNumShadow%ID%);\\n #else\\n shadow += weight * shadowReceive(lighted, modelNormal, vModelVertex, TEX_SHADOW_%ID%, uShadow_Texture%ID%_renderSize, uShadow_Texture%ID%_projection, uShadow_Texture%ID%_viewRight, uShadow_Texture%ID%_viewUp, uShadow_Texture%ID%_viewLook, uShadow_Texture%ID%_depthRange, uShadowReceive%ID%_bias, OPT_DISTANCE uStaticFrameNumShadow%ID%);\\n #endif // _ATLAS_SHADOW\\n sumWeights += weight;\\n #endif // HAS_SHADOW\\n #endif // LIGHT_TYPE\\n %%\\n\\n #ifdef HAS_SHADOW\\n shadow /= sumWeights;\\n #else\\n shadow = 1.0;\\n #endif\\n\\n return shadow;\\n }\\n#endif\\n\\n#ifdef BAKED_AO\\n #pragma include \"utils/encodeDecode.glsl\"\\n uniform sampler2D uTexture;\\n\\n float getShadow(){\\n return decode24(texture2D(uTexture, vTexCoord0).rgb);\\n }\\n#endif\\n\\n#ifdef DISPLAY_PLANE\\n const float gridSize = 10.0;\\n const vec4 overlayColor = vec4(0.109,0.664,0.848,1.0);\\n#endif\\n\\nuniform float uWidgetFade;\\n\\nvoid main() {\\n float shadow = getShadow();\\n #ifndef DISPLAY_PLANE\\n\\t if (shadow >= 0.99) discard;\\n #endif\\n vec2 centerUV = vTexCoord0 * 2.0 - 1.0;\\n float fade = clamp(1.0 - dot(centerUV, centerUV) * (pow(10.0, uGroundFade) - 1.0) , 0.0, 1.0);\\n\\n float alpha = (1.0 - shadow) * uGroundOpacity * fade;\\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * uGroundOpacity * fade * alpha;\\n\\n\\n #ifdef DISPLAY_PLANE\\n float gridValue = clamp(step(0.03,fract(vTexCoord0.x * gridSize))\\n * step(0.03,fract(vTexCoord0.y * gridSize)),0.0,1.0)\\n * step(vTexCoord0.x,0.997)\\n * step(vTexCoord0.y,0.997);\\n\\n gl_FragColor = mix(overlayColor * fade, gl_FragColor, uWidgetFade) * vec4(gridValue,gridValue,gridValue,1.0);\\n #endif\\n\\n}\\n',\r\n 'ground/bakeShadowMap.vert': '#pragma include \"base.vert\"\\n',\r\n 'ground/bakeShadowMap.frag':\r\n '#pragma include \"utils/encodeDecode.glsl\"\\n\\n// opacity\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uFrameMod;\\nuniform int uDrawOpaque;\\n\\n#ifdef HAS_OPACITY\\n#pragma include \"utils/material.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n#endif\\n\\nvoid main(void) {\\n\\n #ifdef HAS_ALPHAMASK\\n if (getMaterialAlphaMask() < uAlphaMaskFactor) discard;\\n #endif\\n #ifdef HAS_OPACITY_DITHER\\n ditheringMaskingDiscard(gl_FragCoord, uOpacityDithering, getMaterialOpacity(), uOpacityFactor, uOpacityThinLayer, uFrameMod, uNearFar, uHalton);\\n #endif\\n\\n #if defined(HAS_OPACITY_BLEND_OR_ADDITIVE) || defined(HAS_OPACITY_REFRACTION)\\n if (getMaterialOpacity() < EPSILON_ALPHA) discard;\\n #endif\\n\\n // Depth in clip space\\n float depth = gl_FragCoord.z / gl_FragCoord.w;\\n gl_FragColor.rgb = encode24(depth);\\n gl_FragColor.a = 1.0;\\n\\n}\\n',\r\n};\r\n","export default {\r\n 'passThrough.glsl':\r\n '#ifdef VR_DISTORTION\\nuniform vec2 uDistortion;\\nuniform vec4 uProjectionLeft;\\nuniform vec4 uUnprojectionLeft;\\n\\n#pragma include \"distortion.glsl\"\\n#endif\\n\\n#ifdef ASCII_FOOL\\n#pragma include \"ascii.glsl\"\\n#endif\\n\\nuniform sampler2D TextureInput;\\n\\nvec4 passThrough() {\\n#ifdef VR_DISTORTION\\n gTexCoord = distortion(gTexCoord);\\n#endif\\n\\n#ifdef ASCII_FOOL\\n return ascii(gTexCoord.xy);\\n#else\\n return TEXTURE_2D_TextureInput(gTexCoord);\\n#endif\\n}\\n',\r\n 'setDepthAlpha.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform sampler2D TextureInput;\\nuniform sampler2D TextureDepth;\\n\\nuniform sampler2D TextureRefraction;\\nuniform vec2 uTextureRefractionSize;\\nuniform vec2 uTextureRefractionRatio;\\n\\n// no background scenario\\nvec4 setDepthAlpha(const in vec4 color) {\\n#ifdef REFRACTION_FORCE_ALPHA_ONE\\n // detect if we are on a refraction pixel\\n vec2 uvRef = min(gTexCoord, 1.0 - 1.0 / uTextureRefractionSize.xy);\\n if (texture2D(TextureRefraction, uvRef * uTextureRefractionRatio).a > 0.0) return vec4(color.rgb, 1.0);\\n#endif\\n\\n float alpha = decodeAlpha(TEXTURE_2D_TextureDepth(gTexCoord));\\n return vec4(color.rgb, alpha);\\n}',\r\n 'combineOpacity.glsl':\r\n 'uniform sampler2D TextureTransparent; \\nfloat gTransparentAlpha;\\n\\nvec4 combineOpacity(const in vec4 color) {\\n\\t// should be replaced with TEXTURE_2D_TextureTransparent as is can make sense\\n vec4 transparent = TEXTURE_2D_TextureTransparent(gTexCoord); \\n gTransparentAlpha = transparent.a; \\n return vec4(color.rgb * (1.0 - transparent.a) + transparent.rgb, 1.0);\\n}',\r\n 'combineRefraction.glsl':\r\n 'uniform sampler2D TextureInput;\\nuniform sampler2D TextureRefraction;\\n\\nuniform vec2 uTextureRefractionSize;\\nuniform vec2 uTextureRefractionRatio;\\nuniform float uRGBMRange;\\n\\nvec4 combineRefraction() {\\n // manual fetch to check m value of rgba : we use m 0 (invalid of rgbm) as masking\\n vec2 uv = min(gTexCoord, 1.0 - 1.0 / uTextureRefractionSize.xy);\\n vec4 rgbmRefraction = texture2D(TextureRefraction, uv * uTextureRefractionRatio);\\n\\n vec4 background = TEXTURE_2D_TextureInput(gTexCoord);\\n if (rgbmRefraction.a == 0.0) return background;\\n return vec4(decodeRGBM(rgbmRefraction, uRGBMRange), 1.0);\\n}',\r\n 'packMipmapRefraction.glsl':\r\n 'uniform sampler2D TextureRefractionBlur0;\\nuniform sampler2D TextureRefractionBlur1;\\nuniform sampler2D TextureRefractionBlur2;\\nuniform sampler2D TextureRefractionBlur3;\\nuniform sampler2D TextureRefractionBlur4;\\nuniform sampler2D TextureRefractionBlur5;\\nuniform sampler2D TextureRefractionBlur6;\\nuniform sampler2D TextureRefractionBlur7;\\nuniform vec2 uTextureOutputRatio;\\n\\nvec4 packMipmapRefraction() {\\n vec4 result = vec4(0.0, 0.0, 0.0, 1.0);\\n\\n // see _hookComposerResize in NodePostProcess.js (mipmap)\\n gTexCoord.y /= uTextureOutputRatio.y;\\n\\n float levelLog = -log2(1.0 - gTexCoord.y) + 1.0;\\n float level = floor(levelLog) - 1.0;\\n\\n float pLevel = pow(2.0, level + 1.0); // 2, 4, 8, 16...\\n gTexCoord.x = pLevel * gTexCoord.x * 0.5;\\n gTexCoord.y = pLevel * (1.0 - gTexCoord.y) - 1.0;\\n\\n // unused part of the texture\\n if (gTexCoord.x > 1.0 || gTexCoord.y > 1.0) return result;\\n\\n if (level < 0.1) result.rgb = TEXTURE_2D_TextureRefractionBlur0(gTexCoord).rgb;\\n else if (level < 1.1) result.rgb = TEXTURE_2D_TextureRefractionBlur1(gTexCoord).rgb;\\n else if (level < 2.1) result.rgb = TEXTURE_2D_TextureRefractionBlur2(gTexCoord).rgb;\\n else if (level < 3.1) result.rgb = TEXTURE_2D_TextureRefractionBlur3(gTexCoord).rgb;\\n else if (level < 4.1) result.rgb = TEXTURE_2D_TextureRefractionBlur4(gTexCoord).rgb;\\n else if (level < 5.1) result.rgb = TEXTURE_2D_TextureRefractionBlur5(gTexCoord).rgb;\\n else if (level < 6.1) result.rgb = TEXTURE_2D_TextureRefractionBlur6(gTexCoord).rgb;\\n else if (level < 7.1) result.rgb = TEXTURE_2D_TextureRefractionBlur7(gTexCoord).rgb;\\n\\n return result;\\n}\\n',\r\n 'sssCommon.glsl':\r\n '#pragma include \"utils/checkerboard.glsl\"\\n\\n// blur jimenez\\n// https://github.com/iryoku/separable-sss/blob/master/SeparableSSS.h#L454\\n\\n// blur UE4 (based on jimenez)\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/SeparableSSS.usf\\n\\n// UE 4 pre/post passes (down/upsample/checkerboard)\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/PostProcessSubsurface.usf\\n\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/Common.usf#L501\\n// also solution 2 of http://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color\\nfloat luminanceLinear(const in vec3 color) {\\n return dot(color, vec3(0.3, 0.59, 0.11));\\n}\\n\\n// https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Shaders/PostProcessSubsurface.usf#L247\\nvoid uncheckerboard(out vec3 diffuse, out vec3 specular) {\\n\\n vec2 coordCenter = floor(gTexCoord * uTextureSSSColorSize) + 0.5;\\n vec2 uvCenter = coordCenter / uTextureSSSColorSize;\\n // not precomputing offset as 1.0/uTextureSSSColorSize.xy\\n // to make sure we don\\'t loose precision and end up with ABCD being same texel\\n // on low precision gpu\\n vec3 offset = vec3(1.0, 1.0, 0.0);\\n\\n vec3 A = TEXTURE_2D_TextureSSSColor((coordCenter + offset.xz)/ uTextureSSSColorSize.xy).rgb;\\n vec3 B = TEXTURE_2D_TextureSSSColor((coordCenter - offset.xz)/ uTextureSSSColorSize.xy).rgb;\\n vec3 C = TEXTURE_2D_TextureSSSColor((coordCenter + offset.zy)/ uTextureSSSColorSize.xy).rgb;\\n vec3 D = TEXTURE_2D_TextureSSSColor((coordCenter - offset.zy)/ uTextureSSSColorSize.xy).rgb;\\n\\n // Luminance could be green channel only\\n float a = luminanceLinear(A);\\n float b = luminanceLinear(B);\\n float c = luminanceLinear(C);\\n float d = luminanceLinear(D);\\n\\n float ab = abs(a - b);\\n float cd = abs(c - d);\\n\\n // take the average in the direction that avoids dither pattern\\n vec3 quant1 = 0.5 * mix(A + B, C + D, ab > cd ? 1.0 : 0.0);\\n vec3 quant0 = TEXTURE_2D_TextureSSSColor(uvCenter).rgb;\\n\\n float checker = checkerboard(coordCenter, uHalton);\\n diffuse = mix(quant1, quant0, checker);\\n specular = mix(quant0, quant1, checker);\\n}\\n\\n',\r\n 'sssExtract.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform sampler2D TextureSSSColor;\\nuniform sampler2D TextureDepth;\\nuniform vec2 uTextureSSSColorSize;\\n\\nuniform vec4 uHalton;\\n\\n#pragma include \"sssCommon.glsl\"\\n\\n// hacky line to force the composerPostprocess to\\n// hook texture funciton in sssCommon because pragma defines\\n// aren\\'t handled directly\\n\\n// TEXTURE_2D_TextureSSSColor(whatever)\\nvec4 sssExtract() {\\n vec4 pack = TEXTURE_2D_TextureDepth(gTexCoord);\\n vec3 specular;\\n vec3 diffuse;\\n uncheckerboard(diffuse, specular);\\n\\n // force depth \"0.0\" to tell sss blur to skip the pixel when blurring\\n // make sure to return float not bool cast to float implicitely\\n // not all glsl compiler support that\\n float bgOrNotSSS = (decodeProfile(pack) == 0 || pack.x == 1.0) ? 0.0 : 1.0;\\n return vec4(diffuse, bgOrNotSSS * decodeDepth(pack));\\n}\\n',\r\n 'sssBlur.glsl':\r\n '#pragma include \"utils/functions.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n\\nuniform sampler2D TextureSSSBlur;\\nuniform sampler2D TextureDepth;\\nuniform sampler2D TextureSSSKernel;\\n\\nuniform vec2 uNearFar;\\n\\nuniform vec2 uBlurDir;\\nuniform float uProjFactor;\\nuniform float uScatteringFactorPacker;\\nuniform float uFrameModTaaSS;\\n\\n#ifndef SSS_JITTER\\n#define SSS_JITTER 1.0\\n#endif\\n\\n#ifndef SSS_HALF_KERNEL_SIZE\\n#define SSS_HALF_KERNEL_SIZE 11\\n#endif\\n\\n#ifndef SSS_PROFILE_COUNT\\n#define SSS_PROFILE_COUNT 1\\n#endif\\n\\n#define SSS_FOLLOW_SURFACE\\n\\n// if we want to do it branchless\\nvec3 sssFetchColorBranchless(const in vec2 uv, const in vec4 colorM, const in float depthNormBias){\\n vec4 fetch = TEXTURE_2D_TextureSSSBlur(uv);\\n\\n#ifdef SSS_FOLLOW_SURFACE\\n float mixer = smoothstep(0.0, 0.05, abs(colorM.a - fetch.a) * depthNormBias);\\n mixer = mix(mixer, 1.0, step(fetch.a, 0.0)); // force to 1 if fetch.a is 0 (background)\\n fetch.rgb = mix(fetch.rgb, colorM.rgb, mixer);\\n#endif\\n\\n // uv inside box\\n // https://stackoverflow.com/questions/12751080/glsl-point-inside-box-test\\n vec2 s = step(vec2(0.0), uv) - step(vec2(1.0), uv);\\n return mix(colorM.rgb, fetch.rgb, s.x * s.y);\\n}\\n\\nvec3 sssFetchColor(const in vec2 uv, const in vec4 colorM, const in float depthNormBias){\\n if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {\\n return colorM.rgb;\\n }\\n\\n // ignore sss with big depth difference, original jimenez is clamp(dDiff, 0.0, 1.0)\\n // we use a much more aggressive function\\n vec4 fetch = TEXTURE_2D_TextureSSSBlur(uv);\\n\\n#ifdef SSS_FOLLOW_SURFACE\\n if (fetch.a == 0.0) return colorM.rgb;\\n return mix(fetch.rgb, colorM.rgb, smoothstep(0.0, 0.05, abs(colorM.a - fetch.a) * depthNormBias));\\n#else\\n return fetch.rgb;\\n#endif\\n}\\n\\nvec4 sssBlur() {\\n vec4 colorM = TEXTURE_2D_TextureSSSBlur(gTexCoord);\\n\\n vec4 pack = TEXTURE_2D_TextureDepth(gTexCoord);\\n\\n // background or not sss stuffs\\n if (pack.x == 1.0) {\\n return colorM;\\n }\\n\\n int profile = decodeProfile(pack);\\n float scatter = decodeScatter(pack);\\n if (scatter == 0.0) {\\n return colorM;\\n }\\n\\n float scatterWorld = scatter / uScatteringFactorPacker;\\n float depthRange = (uNearFar.y - uNearFar.x);\\n\\n // for follow surface\\n // factor to get a normalized depth difference depending of scatter but not of camera position\\n float depthNormBias = depthRange * 0.05 / scatterWorld;\\n\\n float worldPos = uNearFar.x + depthRange * colorM.a;\\n // uScatteringFactorPacker is just a unpacking factor because subsurface factor \\n // is a world space value but written in 8 bit texture\\n vec2 finalStep = uBlurDir * uProjFactor * scatterWorld / worldPos;\\n finalStep *= 1.0 / 3.0;\\n\\n float yProfile = 1.0 - (float(profile) - 0.5) / float(SSS_PROFILE_COUNT);\\n float xKernelSize = 1.0 / float(SSS_HALF_KERNEL_SIZE);\\n\\n vec3 kernel0 = texture2D(TextureSSSKernel, vec2(xKernelSize * 0.5, yProfile)).rgb;\\n vec3 colorBlurred = colorM.rgb * kernel0;\\n\\n // force nearest sample for sss texture kernel color\\n vec2 offKernelNearest = vec2(0.5 * xKernelSize, 0.0);\\n\\n // randomize the sss texture alpha weight a bit\\n float rnd = interleavedGradientNoise(gl_FragCoord.xy, uFrameModTaaSS);\\n rnd = mix(0.5, rnd, SSS_JITTER);\\n vec2 offKernelJitter = vec2(rnd * xKernelSize, 0.0);\\n\\n for (int i = 1; i < SSS_HALF_KERNEL_SIZE; i++) {\\n vec2 uvKernel = vec2(float(i) * xKernelSize, yProfile);\\n\\n vec3 kernel = texture2D(TextureSSSKernel, uvKernel + offKernelNearest).rgb;\\n float kernelDither = texture2D(TextureSSSKernel, uvKernel + offKernelJitter).a;\\n\\n vec2 offset = kernelDither * finalStep;\\n\\n vec3 fetch = sssFetchColor(gTexCoord + offset, colorM, depthNormBias);\\n fetch += sssFetchColor(gTexCoord - offset, colorM, depthNormBias);\\n\\n colorBlurred += kernel.rgb * fetch;\\n }\\n\\n return vec4(colorBlurred, colorM.a);\\n}\\n',\r\n 'sssCombine.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform sampler2D TextureSSSColor;\\nuniform vec2 uTextureSSSColorSize;\\n\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\nuniform float uProjFactor;\\nuniform float uScatteringFactorPacker;\\n\\n#pragma include \"sssCommon.glsl\"\\n\\nuniform sampler2D TextureSSSBlur;\\nuniform sampler2D TextureDepth;\\n\\nvec4 sssCombine() {\\n\\n // full res - not SSS\\n vec4 pack = TEXTURE_2D_TextureDepth(gTexCoord);\\n int profile = decodeProfile(pack);\\n // black pixels for background or non sss surfaces\\n if (pack.x == 1.0 || profile == 0) {\\n return TEXTURE_2D_TextureSSSColor(gTexCoord);\\n }\\n\\n vec3 specular;\\n vec3 diffuse;\\n uncheckerboard(diffuse, specular);\\n\\n // try to retain high res detail as much as possible (same ad dof)\\n // make sure to use a factor that is independent from bounding box\\n float scatterWorld = decodeScatter(pack) / uScatteringFactorPacker;\\n float worldPos = uNearFar.x + (uNearFar.y - uNearFar.x) * decodeDepth(pack);\\n float factor = uProjFactor * scatterWorld / worldPos;\\n\\n // magic factor 10 (can be tweaked, e.g: if sss effects disappears too fast when we are far away)\\n factor = smoothstep(0.05, 0.3, factor * 10.0);\\n // return vec4(vec3(factor), 1.0);\\n\\n diffuse = mix(diffuse, TEXTURE_2D_TextureSSSBlur(gTexCoord).rgb, factor);\\n\\n return vec4(diffuse + specular, 1.0);\\n}\\n',\r\n 'packMipmapDepth.glsl':\r\n '#pragma include \"utils/encodeDecode.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform sampler2D TextureDepth0;\\nuniform sampler2D TextureDepth1;\\nuniform sampler2D TextureDepth2;\\nuniform sampler2D TextureDepth3;\\nuniform sampler2D TextureDepth4;\\nuniform sampler2D TextureDepth5;\\nuniform vec2 uTextureOutputRatio;\\n\\nvec4 packMipmapDepth() {\\n vec4 result = vec4(0.0, 0.0, 0.0, 0.0);\\n\\n // see _hookComposerResize in NodePostProcess.js (mipmap)\\n gTexCoord.y /= uTextureOutputRatio.y;\\n\\n float levelLog = -log2(1.0 - gTexCoord.y) + 1.0;\\n float level = floor(levelLog) - 1.0;\\n\\n float pLevel = pow(2.0, level + 1.0); // 2, 4, 8, 16...\\n gTexCoord.x = pLevel * gTexCoord.x * 0.5;\\n gTexCoord.y = pLevel * (1.0 - gTexCoord.y) - 1.0;\\n\\n // unused part of the texture\\n if (gTexCoord.x > 1.0 || gTexCoord.y > 1.0) return result;\\n\\n if (level < 0.1) result.rgba = vec4(encode24(decodeDepth(TEXTURE_2D_TextureDepth0(gTexCoord))), 1.0);\\n else if (level < 1.1) result.rgba = TEXTURE_2D_TextureDepth1(gTexCoord);\\n else if (level < 2.1) result.rgba = TEXTURE_2D_TextureDepth2(gTexCoord);\\n else if (level < 3.1) result.rgba = TEXTURE_2D_TextureDepth3(gTexCoord);\\n else if (level < 4.1) result.rgba = TEXTURE_2D_TextureDepth4(gTexCoord);\\n else if (level < 5.1) result.rgba = TEXTURE_2D_TextureDepth5(gTexCoord);\\n\\n return result;\\n}\\n',\r\n 'depthMipmap.glsl':\r\n '#pragma include \"utils/encodeDecode.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform sampler2D TextureDepth;\\nuniform int uFirstDepth;\\n\\nuniform vec2 uTextureDepthSize;\\nuniform vec2 uTextureOutputSize;\\n\\n// For some reasons it requires unpacking *and* repacking to avoid transition between mipmap\\nvec4 depthMipmap() {\\n vec2 invSize = 1.0 / uTextureDepthSize;\\n vec4 depths;\\n vec2 offDepth = vec2(0.25, -0.25);\\n if (uFirstDepth == 1) {\\n depths.x = decodeDepth(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.yy * invSize));\\n depths.y = decodeDepth(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.xy * invSize));\\n depths.z = decodeDepth(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.yx * invSize));\\n depths.w = decodeDepth(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.xx * invSize));\\n } else {\\n depths.x = decode24(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.yy * invSize).xyz);\\n depths.y = decode24(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.xy * invSize).xyz);\\n depths.z = decode24(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.yx * invSize).xyz);\\n depths.w = decode24(TEXTURE_2D_TextureDepth(gTexCoord + offDepth.xx * invSize).xyz);\\n }\\n\\n return vec4(encode24(min(min(depths.x, depths.y), min(depths.z, depths.w))), 1.0);\\n}\\n',\r\n 'ssaoExtract.glsl':\r\n '#pragma include \"utils/encodeDecode.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n\\nuniform sampler2D TextureMipmapDepth;\\nuniform vec2 uTextureMipmapDepthSize;\\nuniform vec2 uTextureMipmapDepthRatio;\\n\\nuniform float uQuality; // mipmap usage\\n\\nuniform vec2 uTextureOutputSize;\\n\\nuniform float uSsaoRadius;\\nuniform float uSsaoIntensity;\\nuniform float uSsaoBias;\\nuniform vec4 uSsaoProjectionInfo;\\nuniform float uSsaoProjectionScale;\\n\\nuniform vec2 uNearFar;\\n\\nuniform float uFrameModTaaSS;\\n\\n// Constant used to scale the depth view value that is given to the blur pass\\n#define MIN_RADIUS 1.0\\n#define NB_SPIRAL_TURNS 3.0\\n\\nvec4 fetchDepthPackLevel(const in vec2 uv, const in float level){\\n float maxLod = 5.0;\\n float powLevel = pow(2.0, min(maxLod, floor(level)) + 1.0);\\n vec2 pixelSize = 2.0 * powLevel / uTextureMipmapDepthSize;\\n\\n vec2 uvFetch = max(pixelSize, min(1.0 - pixelSize, uv));\\n uvFetch = vec2(2.0 * uvFetch.x, powLevel - 1.0 - uvFetch.y) * uTextureMipmapDepthRatio.xy / powLevel;\\n\\n return texture2D(TextureMipmapDepth, uvFetch);\\n}\\n\\nfloat fetchDepthLevel(const in vec2 uv, const in float level){\\n return decode24(fetchDepthPackLevel(uv, level).xyz);\\n}\\n\\nfloat zValueFromScreenSpacePosition(const in float depth) {\\n return uNearFar.x + (uNearFar.y - uNearFar.x) * depth;\\n}\\n\\nvec3 reconstructCSPosition(const in vec2 ssP, const in float z) {\\n return vec3((ssP.xy * uSsaoProjectionInfo.xy + uSsaoProjectionInfo.zw) * z, z);\\n}\\n\\nvec3 getPosition(const in vec2 uv) {\\n return reconstructCSPosition(uv * uTextureOutputSize, zValueFromScreenSpacePosition(fetchDepthLevel(uv, 0.0)));\\n}\\n\\n#define MAX_MIP_LEVEL 5\\n// Determines at which point we should switch mip level\\n// if number is too small (~3) will lead to flashing (bad variance as many taps give same pixel)\\n// if number is too high, mip level are not used well and the cache is not used efficiently\\n#define LOG_MAX_OFFSET 3\\n\\nvec3 getOffsetedPixelPos(\\n const in vec2 uv,\\n const in vec2 unitOffset,\\n const in float screenSpaceRadius) {\\n\\n float mipLevel = clamp(floor(log2(screenSpaceRadius)) - float(LOG_MAX_OFFSET), 0.0, float(MAX_MIP_LEVEL));\\n vec2 uvOff = uv + floor(screenSpaceRadius * unitOffset) / uTextureOutputSize;\\n\\n float d = zValueFromScreenSpacePosition(fetchDepthLevel(uvOff, mipLevel));\\n return reconstructCSPosition(uvOff * uTextureOutputSize, d);\\n}\\n\\n#define PIOVER8 0.39269908169\\nvec3 unpackNormal1(const in float pack1) {\\n float pack8 = floor(pack1 * 255.0);\\n float th = PIOVER8 * float(pack8 / 16.0);\\n float len = sqrt(mod(float(pack8), 16.0) / 15.001);\\n vec2 nv = vec2(cos(th), sin(th)) * len;\\n return -vec3(nv.x, nv.y, sqrt(max(0.0, 1.0 - nv.x * nv.x - nv.y * nv.y)));\\n}\\n\\nvec3 unpackNormal2(const in vec2 pack2) {\\n vec3 nv = pack2.rgg * 2.0 - 1.0;\\n return -vec3(nv.x, nv.y, sqrt(max(0.0, 1.0 - nv.x * nv.x - nv.y * nv.y)));\\n}\\n\\n#define SSAO_TAP_EXTRACT(id) screenSpaceRadius = (float(id) + 0.5) * (1.0 / nbSamples); \\\\\\n angle = screenSpaceRadius * (NB_SPIRAL_TURNS * 6.28) + randomAngle; \\\\\\n screenSpaceRadius = max(0.75, screenSpaceRadius * ssRadius); \\\\\\n offsetUnitVec = vec2(cos(angle), sin(angle)); \\\\\\n occludingPoint = getOffsetedPixelPos(uv, offsetUnitVec, screenSpaceRadius); \\\\\\n occludingPoint -= cameraSpacePosition; \\\\\\n vv = dot(occludingPoint, occludingPoint); \\\\\\n vn = dot(occludingPoint, normal); \\\\\\n contrib += max(1.0 - vv * invRadius2, 0.0) * max((vn - uSsaoBias) * inversesqrt(vv), 0.0); \\\\\\n\\n#define SSAO_DO_TAPS(void) SSAO_TAP_EXTRACT(offset + 0); \\\\\\n SSAO_TAP_EXTRACT(offset + 1); \\\\\\n SSAO_TAP_EXTRACT(offset + 2); \\\\\\n SSAO_TAP_EXTRACT(offset + 3); \\\\\\n SSAO_TAP_EXTRACT(offset + 4); \\\\\\n SSAO_TAP_EXTRACT(offset + 5); \\\\\\n SSAO_TAP_EXTRACT(offset + 6); \\\\\\n SSAO_TAP_EXTRACT(offset + 7); \\\\\\n SSAO_TAP_EXTRACT(offset + 8); \\\\\\n SSAO_TAP_EXTRACT(offset + 9); \\\\\\n SSAO_TAP_EXTRACT(offset + 10); \\\\\\n offset += 11; \\\\\\n\\n\\nvec4 ssaoExtract() {\\n vec2 uv = gTexCoord;\\n\\n vec3 depthPacked = fetchDepthPackLevel(uv, 0.0).xyz;\\n\\n vec3 cameraSpacePosition = getPosition(uv);\\n float ssRadius = -uSsaoProjectionScale * uSsaoRadius / cameraSpacePosition.z;\\n\\n#ifdef SSAO_NORMAL\\n vec3 normal = unpackNormal2(TEXTURE_2D_TextureDepth(uv).ba); // g buffer normal 2 component on ba\\n#elif defined(GL_OES_standard_derivatives) && !defined(MOBILE)\\n vec3 normal = cross(dFdy(cameraSpacePosition), dFdx(cameraSpacePosition));\\n#else\\n vec2 offDepth = vec2(1.0, 0.0);\\n vec3 depthLeft = getPosition(uv - offDepth.xy / uTextureMipmapDepthSize);\\n vec3 depthRight = getPosition(uv + offDepth.xy / uTextureMipmapDepthSize);\\n vec3 depthBottom = getPosition(uv - offDepth.yx / uTextureMipmapDepthSize);\\n vec3 depthTop = getPosition(uv + offDepth.yx / uTextureMipmapDepthSize);\\n vec3 normal = cross(depthLeft - depthRight, depthTop - depthBottom);\\n#endif\\n\\n // early returns should be done derivatives usage to avoid bad edges\\n\\n // early return background\\n if (depthPacked.x == 1.0) {\\n return vec4(depthPacked, 1.0);\\n }\\n\\n // early return radius too small (note: needs to be in separate conditional because of nvidia/osx bug)\\n if (ssRadius < MIN_RADIUS) {\\n return vec4(depthPacked, 1.0);\\n }\\n\\n normal = normalize(normal);\\n float nFalloff = mix(1.0, max(0.0, 1.5 * normal.z), 0.35);\\n\\n // needs to be > 2PI\\n float randomAngle = 6.28 * interleavedGradientNoise(gl_FragCoord.xy, uFrameModTaaSS);\\n float invRadius2 = 1.0 / (uSsaoRadius * uSsaoRadius);\\n float contrib = 0.0;\\n\\n float vv;\\n float vn;\\n float screenSpaceRadius;\\n float angle;\\n vec3 occludingPoint;\\n vec2 offsetUnitVec;\\n int offset = 0;\\n\\n float nbSamples = 11.0;\\n\\n if (uQuality > 0.33) nbSamples += 11.0;\\n#ifndef MOBILE\\n if (uQuality > 0.66) nbSamples += 11.0;\\n#endif\\n\\n SSAO_DO_TAPS();\\n if (uQuality > 0.33) { SSAO_DO_TAPS(); }\\n#ifndef MOBILE\\n if (uQuality > 0.66) { SSAO_DO_TAPS(); }\\n#endif\\n\\n float aoValue = max(0.0, 1.0 - sqrt(contrib * nFalloff / nbSamples));\\n aoValue = pow(aoValue, 10.0 * uSsaoIntensity);\\n\\n vec4 aoDepth;\\n aoDepth.rgb = depthPacked;\\n aoDepth.a = mix(1.0, aoValue, clamp(ssRadius - MIN_RADIUS, 0.0, 1.0));\\n\\n return aoDepth;\\n}\\n',\r\n 'ssaoBlur.glsl':\r\n '#pragma include \"utils/encodeDecode.glsl\"\\n\\nuniform sampler2D TextureBlurInput;\\nuniform vec2 uTextureBlurInputSize;\\n\\n#define SSAO_FILTER_RADIUS 3\\n\\n#define SSAO_TAP_BLUR(id, absid) sampleTex = TEXTURE_2D_TextureBlurInput(uv + axis * float(id) * 2.0); \\\\\\n z = decode24(sampleTex.xyz); \\\\\\n weight = max(0.0, 1.0 - sharpnessFactor * abs(z - initialZ)) * (0.3 + gaussian[absid]); \\\\\\n sum += weight * sampleTex.a; \\\\\\n totalWeight += weight;\\n\\nvec4 ssaoBlur(const in vec2 axis) {\\n vec2 uv = gTexCoord;\\n\\n vec4 aoDepth = TEXTURE_2D_TextureBlurInput(uv);\\n\\n // background\\n if(aoDepth.x == 1.0){\\n return aoDepth;\\n }\\n\\n float initialZ = decode24(aoDepth.xyz);\\n\\n float gaussian[SSAO_FILTER_RADIUS + 2]; // dummy because of intel off-by-one bug\\n gaussian[0] = 0.153170;\\n gaussian[1] = 0.144893;\\n gaussian[2] = 0.122649;\\n gaussian[3] = 0.092902;\\n gaussian[4] = 0.0;\\n\\n float totalWeight = gaussian[0];\\n float sum = aoDepth.a * totalWeight;\\n float sharpnessFactor = 400.0;\\n\\n // ---- UNROLL ----\\n vec2 ofs;\\n float z;\\n float weight;\\n vec4 sampleTex;\\n\\n SSAO_TAP_BLUR(-3, 3);\\n SSAO_TAP_BLUR(-2, 2);\\n SSAO_TAP_BLUR(-1, 1);\\n SSAO_TAP_BLUR(1, 1);\\n SSAO_TAP_BLUR(2, 2);\\n SSAO_TAP_BLUR(3, 3);\\n // ---- UNROLL ----\\n\\n aoDepth.a = sum / totalWeight;\\n return aoDepth;\\n}\\n\\n#ifdef SSAO_BLUR_H\\nvec4 ssaoBlurH() {\\n return ssaoBlur(vec2(1.0, 0.0) / uTextureBlurInputSize);\\n}\\n#else\\nvec4 ssaoBlurV() {\\n vec3 color = TEXTURE_2D_TextureInput(gTexCoord).rgb;\\n return vec4(color * ssaoBlur(vec2(0.0, 1.0) / uTextureBlurInputSize).aaa, 1.0);\\n}\\n#endif',\r\n 'dofCommon.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\n\\nconst float MAX_BLUR = 16.0;\\nconst float EPS_EARLY_OUT = 0.01; // early out (typically when we move the camera fast and the dof might be not effective)\\n\\nfloat texDepthToCoC(const in vec4 fetch) {\\n // background should be always max blurred so that the near blur can expand onto the background (because of special dilate background codepath below)\\n if(fetch.x == 1.0) return max(uDofBlurNearFarFocal.x, uDofBlurNearFarFocal.y);\\n\\n float coc = decodeDepth(fetch);\\n coc = clamp((coc - uDofBlurNearFarFocal.z) / coc, -1.0, 1.0);\\n return (coc < 0.0 ? coc * uDofBlurNearFarFocal.x : coc * uDofBlurNearFarFocal.y);\\n}',\r\n 'dofCoC.glsl':\r\n 'uniform vec3 uDofBlurNearFarFocal;\\n\\n#pragma include \"dofCommon.glsl\"\\n\\nuniform sampler2D TextureDepth;\\n\\nvec4 dofCoC() {\\n if(uDofBlurNearFarFocal.x < EPS_EARLY_OUT && uDofBlurNearFarFocal.y < EPS_EARLY_OUT){\\n return vec4(0.0);\\n }\\n\\n return vec4(vec3(0.0), texDepthToCoC(TEXTURE_2D_TextureDepth(gTexCoord)) * 0.5 + 0.5);\\n}',\r\n 'dofNearDilate.glsl':\r\n 'uniform vec3 uDofBlurNearFarFocal;\\n\\n#pragma include \"dofCommon.glsl\"\\n\\nuniform sampler2D TextureDofCoC;\\nuniform vec2 uTextureDofCoCSize;\\nuniform sampler2D TextureDepth;\\n\\nuniform float uDofScale;\\n\\nvec4 dilateNear(const in vec2 offset) {\\n if(uDofBlurNearFarFocal.x < EPS_EARLY_OUT && uDofBlurNearFarFocal.y < EPS_EARLY_OUT){\\n return vec4(0.0);\\n }\\n\\n // TODO DOF both the weights and the formula can be tweaked, also we could add a bit of jitter or something\\n vec2 uv = gTexCoord;\\n bool isBG = TEXTURE_2D_TextureDepth(uv).x == 1.0;\\n\\n float coc = 0.0;\\n vec2 ofs = MAX_BLUR * offset / 5.0;\\n\\n float coc0 = TEXTURE_2D_TextureDofCoC(uv).a * 2.0 - 1.0;\\n float coc1 = TEXTURE_2D_TextureDofCoC(uv - 5.0 * ofs).a * 2.0 - 1.0;\\n float coc2 = TEXTURE_2D_TextureDofCoC(uv - 4.0 * ofs).a * 2.0 - 1.0;\\n float coc3 = TEXTURE_2D_TextureDofCoC(uv - 3.0 * ofs).a * 2.0 - 1.0;\\n float coc4 = TEXTURE_2D_TextureDofCoC(uv - 2.0 * ofs).a * 2.0 - 1.0;\\n float coc5 = TEXTURE_2D_TextureDofCoC(uv - 1.0 * ofs).a * 2.0 - 1.0;\\n float coc6 = TEXTURE_2D_TextureDofCoC(uv + 1.0 * ofs).a * 2.0 - 1.0;\\n float coc7 = TEXTURE_2D_TextureDofCoC(uv + 2.0 * ofs).a * 2.0 - 1.0;\\n float coc8 = TEXTURE_2D_TextureDofCoC(uv + 3.0 * ofs).a * 2.0 - 1.0;\\n float coc9 = TEXTURE_2D_TextureDofCoC(uv + 4.0 * ofs).a * 2.0 - 1.0;\\n float coc10 = TEXTURE_2D_TextureDofCoC(uv + 5.0 * ofs).a * 2.0 - 1.0;\\n\\n if(isBG == true){\\n // avoid \"shrink\" effect on the out of focus far part on the model edges\\n // gaussian weights (sigma 10), (doesn\\'t have to be gaussian though), but the sum must be 1.0\\n // http://dev.theomader.com/gaussian-kernel-calculator/\\n coc = abs(coc0) * 0.095474 +\\n (abs(coc1) + abs(coc10)) * 0.084264 +\\n (abs(coc2) + abs(coc9)) * 0.088139 +\\n (abs(coc3) + abs(coc8)) * 0.091276 +\\n (abs(coc4) + abs(coc7)) * 0.093585 +\\n (abs(coc5) + abs(coc6)) * 0.094998;\\n } else {\\n // blur only near field (expand)\\n coc = min(coc0, 0.0);\\n coc = min(coc1 * 0.3, coc);\\n coc = min(coc2 * 0.5, coc);\\n coc = min(coc3 * 0.75, coc);\\n coc = min(coc4 * 0.8, coc);\\n coc = min(coc5 * 0.95, coc);\\n coc = min(coc6 * 0.95, coc);\\n coc = min(coc7 * 0.8, coc);\\n coc = min(coc8 * 0.75, coc);\\n coc = min(coc9 * 0.5, coc);\\n coc = min(coc10 * 0.3, coc);\\n if(abs(coc0) > abs(coc)) coc = coc0;\\n }\\n\\n return vec4(0.0, 0.0, 0.0, coc * 0.5 + 0.5);\\n}\\n\\nvec4 dofNearDilateH() {\\n vec2 offset = vec2(uDofScale / uTextureDofCoCSize.x, 0.0);\\n return dilateNear(offset);\\n}\\n\\nvec4 dofNearDilateV() {\\n vec2 offset = vec2(0.0, uDofScale / uTextureDofCoCSize.y);\\n return dilateNear(offset);\\n}',\r\n 'dofDownsampleColor.glsl':\r\n 'uniform sampler2D TextureInput;\\n\\n#ifdef COLOR_WITH_COC\\nuniform sampler2D TextureDofCoC;\\n#endif\\n\\nvec4 dofDownsampleColor() {\\n vec2 uv = gTexCoord;\\n\\n vec4 color = TEXTURE_2D_NEAREST_TextureInput(uv);\\n\\n// premult with coc buffer\\n#ifdef COLOR_WITH_COC\\n color.a = abs(TEXTURE_2D_TextureDofCoC(uv).a * 2.0 - 1.0);\\n color.a *= color.a * color.a;\\n color.rgb *= color.a;\\n#endif\\n\\n return color;\\n}',\r\n 'dofBlurCircular.glsl':\r\n '#pragma include \"utils/rand.glsl\"\\n\\nuniform vec3 uDofBlurNearFarFocal;\\n#pragma include \"dofCommon.glsl\"\\n\\nuniform sampler2D TextureDofColor;\\nuniform vec2 uTextureDofColorSize;\\n\\n#ifndef COLOR_WITH_COC\\nuniform sampler2D TextureDofCoC;\\nuniform vec2 uTextureDofCoCSize;\\n#endif\\n\\nuniform float uDofScale;\\nuniform float uQuality;\\n\\nuniform float uFrameModTaaSS;\\n\\n#ifdef COLOR_WITH_COC\\n#define DOF_TAP(id) ofs = fTaps_Poisson[id]; \\\\\\n ofs = gTexCoord + blurDist * vec2(dot(ofs, basis.xy), dot(ofs, basis.zw) ); \\\\\\n sumcol += TEXTURE_2D_TextureDofColor(ofs);\\n#else\\n#define DOF_TAP(id) ofs = fTaps_Poisson[id]; \\\\\\n ofs = gTexCoord + blurDist * vec2(dot(ofs, basis.xy), dot(ofs, basis.zw) ); \\\\\\n cocWeight = abs(TEXTURE_2D_TextureDofCoC(ofs).a * 2.0 - 1.0); \\\\\\n cocWeight *= cocWeight * cocWeight; \\\\\\n sumcol.rgb += TEXTURE_2D_TextureDofColor(ofs).rgb * cocWeight; \\\\\\n sumcol.a += cocWeight;\\n#endif\\n\\nvec4 dofBlur16(const in vec2 blurDist, const in float ntime) {\\n float rnd = 6.28 * ditheringNoise(gl_FragCoord.xy, uFrameModTaaSS + ntime);\\n\\n float cosa = cos(rnd);\\n float sina = sin(rnd);\\n vec4 basis = vec4(cosa, -sina, sina, cosa);\\n\\n vec4 sumcol = vec4(0.0);\\n\\n float total = 0.0;\\n\\n vec2 fTaps_Poisson[17];\\n // https://github.com/bartwronski/PoissonSamplingGenerator\\n fTaps_Poisson[0] = vec2(0.343280198355, 0.921191856785);\\n fTaps_Poisson[1] = vec2(-0.116859107262, 0.873056831344);\\n fTaps_Poisson[2] = vec2(-0.646421287853, 0.760425284853);\\n fTaps_Poisson[3] = vec2(-0.0437332058416, 0.47196719804);\\n fTaps_Poisson[4] = vec2(0.48240473891, 0.464894594736);\\n fTaps_Poisson[5] = vec2(-0.718897237297, 0.352191304304);\\n fTaps_Poisson[6] = vec2(-0.939061387886, -0.0387376698953);\\n fTaps_Poisson[7] = vec2(0.546569494557, -0.0169516524446);\\n fTaps_Poisson[8] = vec2(-0.182644095652, -0.0702667761349);\\n fTaps_Poisson[9] = vec2(-0.576191305396, -0.252368997099);\\n fTaps_Poisson[10] = vec2(0.921914032366, -0.366530187909);\\n fTaps_Poisson[11] = vec2(-0.0582053944545, -0.510617206206);\\n fTaps_Poisson[12] = vec2(-0.783101528934, -0.601411360136);\\n fTaps_Poisson[13] = vec2(0.430604354377, -0.729559481383);\\n fTaps_Poisson[14] = vec2(-0.350716524868, -0.809522919973);\\n fTaps_Poisson[15] = vec2(0.0600898835968, -0.952568587297);\\n fTaps_Poisson[16] = vec2(0.0, 0.0); // dummy because of intel off-by-one bug\\n\\n vec2 ofs;\\n vec4 sampleTex;\\n float cocWeight;\\n\\n DOF_TAP(0);\\n DOF_TAP(1);\\n DOF_TAP(2);\\n DOF_TAP(3);\\n DOF_TAP(4);\\n DOF_TAP(5);\\n DOF_TAP(6);\\n DOF_TAP(7);\\n DOF_TAP(8);\\n DOF_TAP(9);\\n DOF_TAP(10);\\n DOF_TAP(11);\\n DOF_TAP(12);\\n DOF_TAP(13);\\n DOF_TAP(14);\\n DOF_TAP(15);\\n\\n return sumcol;\\n}\\n\\nvec4 dofBlurCircular() {\\n if(uDofBlurNearFarFocal.x < EPS_EARLY_OUT && uDofBlurNearFarFocal.y < EPS_EARLY_OUT) {\\n return vec4(0.0);\\n }\\n\\n float factor = MAX_BLUR * uDofScale;\\n\\n#ifdef COLOR_WITH_COC\\n vec2 blurDist = factor * pow(TEXTURE_2D_TextureDofColor(gTexCoord).a, 0.333) / uTextureDofColorSize;\\n#else\\n vec2 blurDist = factor * abs(TEXTURE_2D_TextureDofCoC(gTexCoord).a * 2.0 - 1.0) / uTextureDofCoCSize;\\n#endif\\n\\n // TODO optimize dofBlur16 (unroll...)\\n vec4 sumcol = dofBlur16(blurDist, 0.0); // 16\\n if (uQuality > 0.33) sumcol += dofBlur16(blurDist, 3.0); // 32\\n if (uQuality > 0.66) sumcol += dofBlur16(blurDist, 5.0); // 48\\n\\n return vec4(sumcol.rgb / sumcol.a, 1.0);\\n}\\n',\r\n 'dofCombine.glsl':\r\n 'uniform vec3 uDofBlurNearFarFocal;\\n\\n#pragma include \"dofCommon.glsl\"\\n\\nuniform sampler2D TextureInput;\\nuniform sampler2D TextureDofBlurCircular;\\nuniform sampler2D TextureDofNearDilateV;\\nuniform sampler2D TextureDepth;\\n\\nuniform vec2 uTextureDofNearDilateVSize;\\nuniform vec2 uTextureDofBlurCircularSize;\\n\\nuniform float uDofScale;\\n\\nvec4 dofCombine() {\\n vec2 uv = gTexCoord;\\n vec3 color = TEXTURE_2D_TextureInput(uv).rgb;\\n\\n if(uDofBlurNearFarFocal.x < EPS_EARLY_OUT && uDofBlurNearFarFocal.y < EPS_EARLY_OUT){\\n return vec4(color, 1.0);\\n }\\n\\n vec4 depthPacked = TEXTURE_2D_TextureDepth(uv);\\n\\n // half res color\\n vec3 blur;\\n // no bilinear for background pixels because it can displays artefacts on low frequency due to rgbm bilinear fetching\\n if (depthPacked.x == 1.0) {\\n blur = TEXTURE_2D_NEAREST_TextureDofBlurCircular(uv).rgb;\\n vec2 off = vec2(1.0, -1.0) * uDofScale;\\n blur += TEXTURE_2D_NEAREST_TextureDofBlurCircular(uv + off.xx / uTextureDofBlurCircularSize).rgb;\\n blur += TEXTURE_2D_NEAREST_TextureDofBlurCircular(uv + off.yy / uTextureDofBlurCircularSize).rgb;\\n blur += TEXTURE_2D_NEAREST_TextureDofBlurCircular(uv + off.xy / uTextureDofBlurCircularSize).rgb;\\n blur += TEXTURE_2D_NEAREST_TextureDofBlurCircular(uv + off.yx / uTextureDofBlurCircularSize).rgb;\\n blur /= 5.0;\\n } else {\\n blur = TEXTURE_2D_TextureDofBlurCircular(uv).rgb;\\n vec2 off = vec2(1.0, -1.0) * uDofScale;\\n blur += TEXTURE_2D_TextureDofBlurCircular(uv + off.xx / uTextureDofBlurCircularSize).rgb;\\n blur += TEXTURE_2D_TextureDofBlurCircular(uv + off.yy / uTextureDofBlurCircularSize).rgb;\\n blur += TEXTURE_2D_TextureDofBlurCircular(uv + off.xy / uTextureDofBlurCircularSize).rgb;\\n blur += TEXTURE_2D_TextureDofBlurCircular(uv + off.yx / uTextureDofBlurCircularSize).rgb;\\n blur /= 5.0;\\n }\\n\\n // merge full res and half res coc\\n vec2 uvNearest = (floor(uv * uTextureDofNearDilateVSize) + 0.5) / uTextureDofNearDilateVSize;\\n float coc = abs(min(TEXTURE_2D_TextureDofNearDilateV(uvNearest).a * 2.0 - 1.0, texDepthToCoC(depthPacked)));\\n\\n // merge half res blurred color and full res pixels\\n float cocLower = 0.05;\\n float cocHigher = 0.3;\\n\\n return vec4(mix(color, blur, smoothstep(cocLower, cocHigher, coc)), 1.0);\\n}\\n\\n',\r\n 'bloomExtract.glsl':\r\n '#pragma include \"utils/getLuminance.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform sampler2D TextureInput;\\n\\n#ifdef HAS_BACKGROUND\\nuniform sampler2D TextureDepth;\\n#endif\\n\\nuniform float uBloomThreshold;\\n\\nvec3 extractBright(const in vec3 color) {\\n // TODO manage hdr pixel with high frequency? (use derivative??), for now we clamp the extracted pixel :(\\n return clamp(color * clamp(getLuminance(color) - uBloomThreshold, 0.0, 1.0), 0.0, 1.0);\\n}\\n\\nvec4 bloomExtract() {\\n vec3 color = TEXTURE_2D_TextureInput(gTexCoord).rgb;\\n\\n#ifdef HAS_BACKGROUND\\n\\tfloat alpha = decodeAlpha(TEXTURE_2D_TextureDepth(gTexCoord));\\n\\tif(alpha == 0.0) {\\n\\t\\treturn vec4(vec3(0.0), 1.0);\\n }\\n#else\\n\\tfloat alpha = 1.0;\\n#endif\\n\\n\\treturn vec4(extractBright(color * alpha), 1.0);\\n}',\r\n 'bloomCombine.glsl':\r\n 'uniform sampler2D TextureInput;\\nuniform sampler2D TextureBloomBlur1;\\nuniform sampler2D TextureBloomBlur2;\\nuniform sampler2D TextureBloomBlur3;\\nuniform sampler2D TextureBloomBlur4;\\nuniform sampler2D TextureBloomBlur5;\\n\\nuniform float uBloomRadius;\\nuniform float uBloomFactor;\\n\\nfloat getRadiusFactored(const float value, const float middle) {\\n return mix(value, middle * 2.0 - value, uBloomRadius);\\n}\\n\\nvec4 bloomCombine() {\\n vec3 bloom = vec3(0.0);\\n\\n const float midVal = 0.6;\\n\\n const float factor1 = 1.1;\\n const float factor2 = 0.9;\\n const float factor3 = 0.6;\\n const float factor4 = 0.3;\\n const float factor5 = 0.1;\\n\\n bloom += TEXTURE_2D_TextureBloomBlur1(gTexCoord).rgb * getRadiusFactored(factor1, midVal);\\n bloom += TEXTURE_2D_TextureBloomBlur2(gTexCoord).rgb * getRadiusFactored(factor2, midVal);\\n bloom += TEXTURE_2D_TextureBloomBlur3(gTexCoord).rgb * getRadiusFactored(factor3, midVal);\\n bloom += TEXTURE_2D_TextureBloomBlur4(gTexCoord).rgb * getRadiusFactored(factor4, midVal);\\n bloom += TEXTURE_2D_TextureBloomBlur5(gTexCoord).rgb * getRadiusFactored(factor5, midVal);\\n\\n vec3 color = TEXTURE_2D_TextureInput(gTexCoord).rgb;\\n return vec4(color + (bloom * uBloomFactor), 1.0);\\n}',\r\n 'chromaticAberration.glsl':\r\n 'uniform sampler2D TextureInput;\\n\\nuniform float uChromaFactor;\\n\\nvec4 chromaticAberration() {\\n vec2 uv = gTexCoord;\\n\\n vec2 dist = uv - 0.5;\\n vec2 offset = uChromaFactor * dist * length(dist);\\n vec3 col;\\n col.r = TEXTURE_2D_TextureInput(uv - offset).r;\\n col.g = TEXTURE_2D_TextureInput(uv).g;\\n col.b = TEXTURE_2D_TextureInput(uv + offset).b;\\n\\n return vec4(col, 1.0);\\n}',\r\n 'vignette.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\n#pragma include \"utils/rand.glsl\"\\n\\nuniform vec2 uLensRadius;\\nuniform float uFrameMod;\\n\\nfloat vignetteDithered() {\\n vec2 lens = uLensRadius;\\n // smoothesp is not realiable with edge0 == edge1\\n lens.y = min(lens.y, lens.x - 1e-4);\\n\\n float jitter = interleavedGradientNoise(gl_FragCoord.xy, uFrameMod);\\n\\n // jitter a bit the uv to remove the banding in some cases\\n // (lens.x - lens.y) reduce flickering when the vignette is harder (hardness)\\n // (lens.x + lens.y) reduce the flickering when the vignette has a strong radius\\n jitter = (lens.x - lens.y) * (lens.x + lens.y) * 0.07 * (jitter - 0.5);\\n return smoothstep(lens.x, lens.y, jitter + distance(gTexCoord, vec2(0.5)));\\n}\\n\\nvec4 vignette(const in vec4 color) {\\n float factor = vignetteDithered();\\n return vec4(linearTosRGB(sRGBToLinear(color.rgb) * factor), clamp(color.a + (1.0 - factor), 0.0, 1.0));\\n}',\r\n 'toneMapping.glsl':\r\n '#pragma include \"utils/getLuminance.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform float uToneExposure;\\nuniform float uToneBrightness;\\nuniform float uToneContrast;\\nuniform float uToneSaturation;\\nuniform int uToneMethod;\\n\\n#ifdef HAS_FIXED_BACKGROUND\\nuniform sampler2D TextureDepth;\\n#endif\\n\\nvec3 toneMapping(const in vec3 color) {\\n if (gTransparentAlpha > 0.999) return color; \\n vec3 col = color * uToneExposure;\\n float luminance = dot(col * (1.0 + uToneBrightness), vec3(0.2126, 0.7152, 0.0722));\\n col = mix(vec3(luminance), col * (1.0 + uToneBrightness), vec3(uToneSaturation));\\n\\n // contrast is annoying and require special treatment in case of fixed background\\n // because it doesn\\'t output black when the input is black\\n float toneContrast = uToneContrast;\\n#ifdef HAS_FIXED_BACKGROUND\\n float alpha = decodeAlpha(TEXTURE_2D_TextureDepth(gTexCoord));\\n if(alpha == 0.0) toneContrast *= luminance;\\n#endif\\n col = max(vec3(0.0), col * (1.0 + toneContrast) - 0.5 * toneContrast);\\n\\n // simple reinhard and filmic\\n // http://filmicgames.com/archives/190\\n if(uToneMethod == 1) { // reinhard (on luminance)\\n col /= 1.0 + getLuminance(col);\\n } else if( uToneMethod == 2) { // filmic\\n vec3 x = max(vec3(0.0), col - 0.004);\\n col = (x * (6.2 * x + 0.5) ) / ( x * (6.2 * x + 1.7) + 0.06);\\n col = pow(col, vec3(2.2)); // filmic curve already encode srgb to linear\\n }\\n\\n return col;\\n}\\n\\nvec4 toneMapping(const in vec4 color) {\\n return vec4(toneMapping(color.rgb), 1.0);\\n}\\n',\r\n 'colorBalance.glsl':\r\n \"uniform vec3 uColorBalanceLow;\\nuniform vec3 uColorBalanceMid;\\nuniform vec3 uColorBalanceHigh;\\n\\nfloat RGBToL(const in vec3 color) {\\n float fmin = min(min(color.r, color.g), color.b);\\n float fmax = max(max(color.r, color.g), color.b);\\n return (fmax + fmin) / 2.0;\\n}\\n\\nvec3 colorBalance(const in vec3 color) {\\n vec3 lrgb = uColorBalanceLow;\\n vec3 mrgb = uColorBalanceMid;\\n vec3 hrgb = uColorBalanceHigh;\\n\\n float cLen = length(color);\\n if(cLen < 1e-5)\\n return color;\\n\\n // TODO : I have no idea what I am doing, we should use a curve widge\\n float lightness = RGBToL(color);\\n // ' lightness=(lightness*0.9-1.0)/(lightness*2.0+1.0) +1.0;\\n lightness = (1.5 * lightness) / (lightness + 0.5);\\n // https://github.com/liovch/GPUImage/blob/master/framework/Source/GPUImageColorBalanceFilter\\n float a = 0.25;\\n float b = 0.333;\\n float scale = 0.7;\\n vec3 low = lrgb * clamp((lightness - b) / -a + 0.5, 0.0, 1.0);\\n vec3 mid = mrgb * clamp((lightness - b) / a + 0.5, 0.0, 1.0) * clamp((lightness + b - 1.0) / -a + 0.5, 0.0, 1.0);\\n vec3 high = hrgb * clamp((lightness + b - 1.0) / a + 0.5, 0.0, 1.0);\\n vec3 newColor = max(color + (low + mid + high) * scale, vec3(0.0));\\n // newColor can be negative\\n float len = length(newColor);\\n return len < 1e-5 ? newColor * cLen : newColor * cLen / len;\\n}\\n\\nvec4 colorBalance(const in vec4 color) {\\n return vec4(colorBalance(color.rgb), 1.0);\\n}\",\r\n 'supersample.glsl':\r\n 'uniform vec4 uHalton;\\n\\nuniform float uSSAARestart;\\nuniform sampler2D TexturePrevious;\\nuniform vec2 uTexturePreviousSize;\\n\\n// static in place amortized supersampling\\nvec4 supersample() {\\n vec4 currFragColor = TEXTURE_2D_TextureInput(gTexCoord).rgba;\\n\\n float haltz = abs(uHalton.z);\\n if (haltz == 1.0) {\\n // just return the color.\\n return currFragColor;\\n }\\n\\n // same pixel for same projected interpolated vertex on prev frame\\n vec4 accumColorN = TEXTURE_2D_NEAREST_TexturePrevious(gTexCoord).rgba;\\n\\n // mix frames\\n float lerpFac = 1.0 / uHalton.w;\\n\\n // if uTaaSSSRestart is 0.0, then we used the previous TAAed image to start supersampling\\n // we do that to avoid a sudden re-aliasing of the image (which is perceptible)\\n if (uHalton.w == 1.0) lerpFac = uSSAARestart;\\n\\n if (haltz == 3.0) {\\n // No supersample, crude motion blur by accumulation\\n return mix(currFragColor, accumColorN, lerpFac);\\n }\\n\\n // Supsersample, accumulation + jittering\\n // http://en.wikipedia.org/wiki/Moving_average#Cumulative_moving_average\\n // cumulative moving average over frameNum (which starts at 2)\\n // n is previous frame\\n // accumColorN = Accum(n)\\n // return value is accumColor( n +1 )\\n // Accum(n+1) = Accum(n) + ((x(n+1) - Accum(n)) / (n + 1)))\\n // formula above is equal to glsl mix\\n return mix(accumColorN, currFragColor, lerpFac);\\n}\\n',\r\n 'supersampleTaa.glsl':\r\n '#pragma include \"utils/getLuminance.glsl\"\\n#pragma include \"utils/decodeDepth.glsl\"\\n#pragma include \"supersample.glsl\"\\n\\nuniform sampler2D TextureInput;\\nuniform vec2 uTextureInputSize;\\nuniform sampler2D TexturePrevious;\\nuniform vec2 uTexturePreviousSize;\\nuniform sampler2D TextureDepth;\\n\\nuniform vec4 uHalton;\\nuniform vec2 uNearFar;\\n\\nuniform float uTaaEnabled;\\nuniform mat4 uTaaInvViewMatrixLeft;\\nuniform mat4 uTaaCurrentFramePVLeft;\\nuniform mat4 uTaaLastFramePVLeft;\\nuniform vec4 uTaaCornersCSLeft[2];\\n\\n#ifdef VR_ENABLED\\nuniform mat4 uTaaInvViewMatrixRight;\\nuniform mat4 uTaaCurrentFramePVRight;\\nuniform mat4 uTaaLastFramePVRight;\\nuniform vec4 uTaaCornersCSRight[2];\\n#endif\\n\\nvec3 reconstructWSPosition(const in vec2 uv, const in vec4 corners0, const in vec4 corners1, const in mat4 invView, const in float depth) {\\n vec2 finalUv = uv;\\n#ifdef VR_ENABLED\\n float xViewportOffset = uv.x >= 0.5 ? -0.5 : 0.0;\\n finalUv.x = ( uv.x + xViewportOffset ) * 2.0;\\n#endif\\n\\n // the corners are in view space, it means if we interpolate between them we can retrieve the view space direction of the fragment\\n vec4 AB = mix(corners0, corners1, vec4(finalUv.x));\\n\\n // multiply this view space direction by the depth gives us the view space position\\n vec3 vsPos = vec3(mix(AB.xy, AB.zw, vec2(finalUv.y)), 1.0) * depth;\\n\\n // multiply by the inverse of the view matrix gives us the world space position\\n return (invView * vec4(vsPos, 1.0)).xyz;\\n}\\n\\n#define NEIGHBOUR_SET_IF_DMIN_Z_GREATER(d, x, y) if(d < dmin.z) dmin = vec3(x, y, d);\\n#define NEIGHBOUR_CREATE_FROM_OFFSET(d, x, y) d = decodeDepth(TEXTURE_2D_TextureDepth(uv + vec2(x,y)));\\n#define FIND_NEIGHBOUR_MIN(d, x, y) NEIGHBOUR_CREATE_FROM_OFFSET(d, x, y); NEIGHBOUR_SET_IF_DMIN_Z_GREATER(d, x, y)\\n\\n\\n// Neighborhood clamping from Tiago Sousa\\n// 4tap(decent) comment t, ml, mr, b\\n// https://github.com/playdeadgames/temporal/blob/9e6a7704e69bb73f29fe393390e545b21ddfd42d/Assets/Shaders/IncDepth.cginc#L111\\n// 9Tap(good) slower but nicer\\n// https://github.com/playdeadgames/temporal/blob/9e6a7704e69bb73f29fe393390e545b21ddfd42d/Assets/Shaders/IncDepth.cginc#L37\\n//#define CLOSEST_9TAP\\nvec3 closestFragment(const in vec2 uv, const in vec2 texelSize) {\\n\\n float d;\\n vec2 size = 2.0 * texelSize;\\n vec3 dmin = vec3(0.0, 0.0, 0.0);\\n\\n // 5Tap\\n NEIGHBOUR_CREATE_FROM_OFFSET(dmin.z, 0.0, 0.0);\\n FIND_NEIGHBOUR_MIN(d, -size.x, size.y);\\n FIND_NEIGHBOUR_MIN(d, size.x, size.y);\\n FIND_NEIGHBOUR_MIN(d, -size.x, -size.y);\\n FIND_NEIGHBOUR_MIN(d, size.x, -size.y);\\n\\n#ifdef CLOSEST_9TAP\\n FIND_NEIGHBOUR_MIN(d, 0.0, size.y);\\n FIND_NEIGHBOUR_MIN(d, -size.x, 0.0);\\n FIND_NEIGHBOUR_MIN(d, size.x, 0.0);\\n FIND_NEIGHBOUR_MIN(d, 0.0, -size.y);\\n#endif\\n\\n return vec3(uv + dmin.xy, dmin.z);\\n}\\n\\n// note: only clips towards aabb center (but fast!)\\n// same as https://github.com/gokselgoktas/temporal-anti-aliasing/blob/master/Assets/Resources/Shaders/TemporalAntiAliasing.cginc#L199\\n// which is adapted from https://github.com/playdeadgames/temporal\\n// using the mathematical similar version of https://twitter.com/Stubbesaurus/status/890154773726580736\\n// exhibits numerical issue (in a consistent way on intel/nvidia at least)\\nvec4 clip_aabb_opti(const in vec4 minimum, const in vec4 maximum, const in vec4 color) {\\n const float eps = 0.00000001;\\n\\n vec4 center = 0.5 * (maximum + minimum);\\n vec4 extents = 0.5 * (maximum - minimum) + eps;\\n vec4 offset = color - center;\\n\\n vec4 ts = abs(offset / extents);\\n float t = max(max(ts.r, ts.g), max(ts.b, ts.a));\\n return center + offset / max(1.0, t);\\n // return t > 1.0 : center + offset / t : color;\\n}\\n\\nvec4 taa(const in vec2 ssVel, const in vec2 texelSize) {\\n vec2 uv = gTexCoord;\\n\\n vec4 tl = TEXTURE_2D_TextureInput(uv + vec2(-texelSize.x, texelSize.y));\\n vec4 t = TEXTURE_2D_TextureInput(uv + vec2(0.0, texelSize.y));\\n vec4 tr = TEXTURE_2D_TextureInput(uv + vec2(texelSize.x, texelSize.y));\\n\\n vec4 ml = TEXTURE_2D_TextureInput(uv + vec2(-texelSize.x, 0.0));\\n vec4 m = TEXTURE_2D_TextureInput(uv);\\n vec4 mr = TEXTURE_2D_TextureInput(uv + vec2(texelSize.x, 0.0));\\n\\n vec4 bl = TEXTURE_2D_TextureInput(uv + vec2(-texelSize.x, -texelSize.y));\\n vec4 b = TEXTURE_2D_TextureInput(uv + vec2(0.0, -texelSize.y));\\n vec4 br = TEXTURE_2D_TextureInput(uv + vec2(texelSize.x, -texelSize.y));\\n\\n // sharpen\\n // https://github.com/Unity-Technologies/PostProcessing/blob/v1/PostProcessing/Resources/Shaders/TAA.cginc#L143\\n // reduces blurring, but increases flickering with dense geometry\\n vec4 corners = 2.0 * (tr + bl + br + tl) - 2.0 * m;\\n m += (m - (corners * 0.166667)) * 2.718282 * 0.3;\\n m = max(vec4(0.0), m);\\n\\n // Brian Karis neighbourhood rounding: http://advances.realtimerendering.com/s2014/epic/TemporalAA.pptx\\n // average of rounded pattern with cross pattern\\n vec4 cmin5 = min(mr, min(m, min(ml, min(t, b))));\\n vec4 cmin = min(cmin5, min(tl, min(tr, min(bl, br))));\\n\\n vec4 cmax5 = max(mr, max(m, max(ml, max(t, b))));\\n vec4 cmax = max(cmax5, max(tl, max(tr, max(bl, br))));\\n\\n cmin = 0.5 * (cmin + cmin5);\\n cmax = 0.5 * (cmax + cmax5);\\n\\n vec4 previousColor = TEXTURE_2D_TexturePrevious(uv - ssVel);\\n previousColor = clip_aabb_opti(cmin, cmax, previousColor);\\n\\n float lum0 = getLuminance(m.rgb);\\n float lum1 = getLuminance(previousColor.rgb);\\n float diff = abs(lum0 - lum1) / max(lum0, max(lum1, 0.2));\\n float unbiased_weight = 1.0 - diff;\\n float feedback = mix(FEEDBACK_MIN, FEEDBACK_MAX, unbiased_weight * unbiased_weight);\\n\\n return mix(m, previousColor, feedback);\\n}\\n\\nvec2 computeSSVelocity(const in vec3 wsPos, const in mat4 currentFrameProjView, const in mat4 lastFrameProjView, const in bool rightEye)\\n{\\n vec4 ssCurrentPos = currentFrameProjView * vec4(wsPos, 1.0);\\n vec4 ssPrevPos = lastFrameProjView * vec4(wsPos, 1.0);\\n\\n vec2 ndcCurrent = ssCurrentPos.xy / ssCurrentPos.w;\\n vec2 ndcPrev = ssPrevPos.xy / ssPrevPos.w;\\n\\n //ndcPrev = clamp(ndcPrev, vec2(-1.0), vec2(1.0));\\n if(ndcPrev.x >= 1.0 || ndcPrev.x <= -1.0 || ndcPrev.x >= 1.0 || ndcPrev.y <= -1.0)\\n return vec2(0.0);\\n\\n#ifdef VR_ENABLED\\n ndcCurrent.x /= 2.0;\\n ndcPrev.x /= 2.0;\\n\\n if (rightEye) {\\n ndcCurrent.x += 0.5;\\n ndcPrev.x += 0.5;\\n }\\n#endif\\n\\n return 0.5 * (ndcCurrent - ndcPrev);\\n}\\n\\n\\nvec4 computeTaa(const in mat4 invView, const in mat4 currentFrameProjView, const in mat4 lastFrameProjView, const in vec4 corners0, const in vec4 corners1) {\\n vec2 uv = gTexCoord;\\n float haltz = abs(uHalton.z);\\n if (haltz == 1.0) {\\n vec2 texelSize = vec2(1.0) / uTextureInputSize;\\n vec3 closest = closestFragment(uv, texelSize);\\n\\n // discard background fragments to save fillrate\\n // make sure the mesh isn\\'t transparent\\n if (closest.z >= 1.0\\n#ifdef TAA_TRANSPARENT\\n && decodeAlpha(TEXTURE_2D_TextureDepth(closest.xy)) == 0.0\\n#endif\\n ) {\\n // unjitter for fixed background with highres pattern or text\\n return TEXTURE_2D_TextureInput(uv - 0.5 * uHalton.xy * texelSize);\\n }\\n\\n float depth = -(uNearFar.x + (uNearFar.y - uNearFar.x) * closest.z);\\n vec3 ws = reconstructWSPosition(closest.xy, corners0, corners1, invView, depth);\\n\\n vec2 ssVel = computeSSVelocity(ws, currentFrameProjView, lastFrameProjView, uv.x >= 0.5);\\n return taa(ssVel, texelSize);\\n }\\n\\n return supersample();\\n}\\n\\n// temporal anti-aliasing from Playdead\\'s Inside\\n// slides: http://www.gdcvault.com/play/1022970/Temporal-Reprojection-Anti-Aliasing-in\\n// sources: https://github.com/playdeadgames/temporal\\nvec4 supersampleTaa() {\\n if (uTaaEnabled == 0.0) {\\n return supersample();\\n }\\n\\n#ifdef VR_ENABLED\\n // left and right eyes have different matrices\\n if (gTexCoord.x >= 0.5) {\\n return computeTaa(uTaaInvViewMatrixRight, uTaaCurrentFramePVRight, uTaaLastFramePVRight, uTaaCornersCSRight[0], uTaaCornersCSRight[1]);\\n }\\n#endif\\n\\n return computeTaa(uTaaInvViewMatrixLeft, uTaaCurrentFramePVLeft, uTaaLastFramePVLeft, uTaaCornersCSLeft[0], uTaaCornersCSLeft[1]);\\n}',\r\n 'composeExtra.glsl':\r\n 'uniform sampler2D TextureExtra;\\r\\n\\r\\n// LINEAR should be deduce from TEXTURE_2D_TextureExtra with user data\\r\\nvec4 composeExtra(const in vec4 color) {\\r\\n#ifdef LINEAR_EXTRA\\r\\n\\tvec4 extra = sRGBToLinear(TEXTURE_2D_TextureExtra(gTexCoord));\\r\\n#else\\r\\n\\tvec4 extra = TEXTURE_2D_TextureExtra(gTexCoord);\\r\\n#endif\\r\\n\\treturn extra + vec4(color) * (1.0 - extra.a);\\r\\n}',\r\n 'composeFixedBackground.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\r\\n\\r\\nuniform sampler2D TextureFixed;\\r\\nuniform vec2 uFixedScale;\\r\\n\\r\\nuniform sampler2D TextureDepth;\\r\\nuniform vec2 uTextureOutputSize;\\r\\n\\r\\nuniform vec4 uHalton;\\r\\nuniform float uSplitView;\\r\\n\\r\\nvec4 composeBackground(const in vec3 color, const in float alpha) {\\r\\n vec2 jitter = uHalton.xy * 0.5 / uTextureOutputSize;\\r\\n vec2 uv = (gTexCoord - 0.5 + jitter) * uFixedScale + 0.5;\\r\\n\\r\\n // we recenter and unstretch the background\\r\\n if (uSplitView == 1.0) uv.x = uv.x * 0.5 + 0.25;\\r\\n\\r\\n // composer can\\'t guess based on user data, so SRGBToLinear should be defined (or not) by TEXTURE_2D_XXXXXXX\\r\\n vec3 backgroundColor = sRGBToLinear(texture2D(TextureFixed, uv).rgb);\\r\\n return vec4(color.rgb + backgroundColor * (1.0 - alpha), 1.0);\\r\\n}\\r\\n\\r\\nuniform sampler2D TextureInput;\\r\\nuniform vec2 uTextureInputSize;\\r\\nuniform vec2 uTextureInputRatio;\\r\\n\\r\\nuniform sampler2D TextureRefraction;\\r\\nuniform vec2 uTextureRefractionSize;\\r\\nuniform vec2 uTextureRefractionRatio;\\r\\nuniform float uRGBMRange;\\r\\n\\r\\nvec4 composeFixedBackground(const in vec4 color) {\\r\\n#ifdef REFRACTION_COMPOSITING_EXCLUSION\\r\\n // detect if we are on a refraction pixel\\r\\n vec2 uvRef = min(gTexCoord, 1.0 - 1.0 / uTextureRefractionSize.xy);\\r\\n if (texture2D(TextureRefraction, uvRef * uTextureRefractionRatio).a > 0.0) return color;\\r\\n#endif\\r\\n\\r\\n float alpha = decodeAlpha(TEXTURE_2D_TextureDepth(gTexCoord));\\r\\n return composeBackground(color.rgb, alpha);\\r\\n}\\r\\n\\r\\nvec4 composeFixedBackgroundRefraction() {\\r\\n vec3 color = TEXTURE_2D_TextureInput(gTexCoord).rgb;\\r\\n float alpha = decodeAlpha(TEXTURE_2D_TextureDepth(gTexCoord));\\r\\n return composeBackground(color.rgb, alpha);\\r\\n}',\r\n 'fxaa.glsl':\r\n '#ifdef VR_DISTORTION\\nuniform vec2 uDistortion;\\nuniform vec4 uProjectionLeft;\\nuniform vec4 uUnprojectionLeft;\\n\\n#pragma include \"distortion.glsl\"\\n#endif\\n\\n#ifdef ASCII_FOOL\\n#pragma include \"ascii.glsl\"\\n#endif\\n\\nuniform sampler2D TextureInput;\\nuniform vec2 uTextureInputSize;\\n\\n// G3D version of FXAA\\n// green (y) as luma\\n// Quality 12\\nvec4 fxaa() {\\n#ifdef VR_DISTORTION\\n gTexCoord = distortion(gTexCoord);\\n#endif\\n\\n vec2 fxaaQualityRcpFrame = 1.0 / uTextureInputSize;\\n float fxaaQualitySubpix = 0.75;\\n float fxaaQualityEdgeThreshold = 0.125;\\n float fxaaQualityEdgeThresholdMin = 0.0625;\\n\\n vec2 posM = gTexCoord;\\n vec4 rgbyM = TEXTURE_2D_TextureInput(posM);\\n float lumaM = rgbyM.y;\\n\\n // Swizzler Offseter Util\\n vec4 sw = vec4(-1.0, 1.0, 1.0, -1.0) * fxaaQualityRcpFrame.xxyy;\\n\\n float lumaS = TEXTURE_2D_TextureInput(posM + vec2(0.0, sw.z)).y;\\n float lumaE = TEXTURE_2D_TextureInput(posM + vec2(sw.y, 0.0)).y;\\n float lumaN = TEXTURE_2D_TextureInput(posM + vec2(0.0, sw.w)).y;\\n float lumaW = TEXTURE_2D_TextureInput(posM + vec2(sw.x, 0.0)).y;\\n\\n float maxSM = max(lumaS, lumaM);\\n float minSM = min(lumaS, lumaM);\\n\\n float maxESM = max(lumaE, maxSM);\\n float minESM = min(lumaE, minSM);\\n\\n float maxWN = max(lumaN, lumaW);\\n float minWN = min(lumaN, lumaW);\\n\\n float rangeMax = max(maxWN, maxESM);\\n float rangeMin = min(minWN, minESM);\\n\\n float rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;\\n float range = rangeMax - rangeMin;\\n float rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);\\n\\n bool earlyExit = range < rangeMaxClamped;\\n\\n if (earlyExit) {\\n#ifdef ASCII_FOOL\\n return ascii(posM);\\n#else\\n return rgbyM;\\n#endif\\n }\\n\\n float lumaNW = TEXTURE_2D_TextureInput(posM + sw.xw).y;\\n float lumaSE = TEXTURE_2D_TextureInput(posM + sw.yz).y;\\n float lumaNE = TEXTURE_2D_TextureInput(posM + sw.yw).y;\\n float lumaSW = TEXTURE_2D_TextureInput(posM + sw.xy).y;\\n\\n float lumaNS = lumaN + lumaS;\\n float lumaWE = lumaW + lumaE;\\n float subpixRcpRange = 1.0/range;\\n float subpixNSWE = lumaNS + lumaWE;\\n float edgeHorz1 = (-2.0 * lumaM) + lumaNS;\\n float edgeVert1 = (-2.0 * lumaM) + lumaWE;\\n\\n float lumaNESE = lumaNE + lumaSE;\\n float lumaNWNE = lumaNW + lumaNE;\\n float edgeHorz2 = (-2.0 * lumaE) + lumaNESE;\\n float edgeVert2 = (-2.0 * lumaN) + lumaNWNE;\\n\\n float lumaNWSW = lumaNW + lumaSW;\\n float lumaSWSE = lumaSW + lumaSE;\\n float edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);\\n float edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);\\n float edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;\\n float edgeVert3 = (-2.0 * lumaS) + lumaSWSE;\\n float edgeHorz = abs(edgeHorz3) + edgeHorz4;\\n float edgeVert = abs(edgeVert3) + edgeVert4;\\n\\n float subpixNWSWNESE = lumaNWSW + lumaNESE;\\n float lengthSign = fxaaQualityRcpFrame.x;\\n bool horzSpan = edgeHorz >= edgeVert;\\n float subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;\\n\\n if(!horzSpan) lumaN = lumaW;\\n if(!horzSpan) lumaS = lumaE;\\n if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;\\n float subpixB = (subpixA * (1.0/12.0)) - lumaM;\\n\\n float gradientN = lumaN - lumaM;\\n float gradientS = lumaS - lumaM;\\n float lumaNN = lumaN + lumaM;\\n float lumaSS = lumaS + lumaM;\\n bool pairN = abs(gradientN) >= abs(gradientS);\\n float gradient = max(abs(gradientN), abs(gradientS));\\n if(pairN) lengthSign = -lengthSign;\\n float subpixC = clamp(abs(subpixB) * subpixRcpRange, 0.0, 1.0);\\n\\n vec2 posB = posM.xy;\\n vec2 offNP;\\n offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\\n offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\\n if(!horzSpan) posB.x += lengthSign * 0.5;\\n if( horzSpan) posB.y += lengthSign * 0.5;\\n\\n vec2 posN;\\n posN.x = posB.x - offNP.x;\\n posN.y = posB.y - offNP.y;\\n vec2 posP;\\n posP.x = posB.x + offNP.x;\\n posP.y = posB.y + offNP.y;\\n float subpixD = ((-2.0)*subpixC) + 3.0;\\n float lumaEndN = TEXTURE_2D_TextureInput(posN).y;\\n float subpixE = subpixC * subpixC;\\n float lumaEndP = TEXTURE_2D_TextureInput(posP).y;\\n\\n if(!pairN) lumaNN = lumaSS;\\n float gradientScaled = gradient * 1.0/4.0;\\n float lumaMM = lumaM - lumaNN * 0.5;\\n float subpixF = subpixD * subpixE;\\n bool lumaMLTZero = lumaMM < 0.0;\\n\\n lumaEndN -= lumaNN * 0.5;\\n lumaEndP -= lumaNN * 0.5;\\n bool doneN = abs(lumaEndN) >= gradientScaled;\\n bool doneP = abs(lumaEndP) >= gradientScaled;\\n if(!doneN) posN.x -= offNP.x * 1.5;\\n if(!doneN) posN.y -= offNP.y * 1.5;\\n bool doneNP = (!doneN) || (!doneP);\\n if(!doneP) posP.x += offNP.x * 1.5;\\n if(!doneP) posP.y += offNP.y * 1.5;\\n\\n if(doneNP) {\\n if(!doneN) lumaEndN = TEXTURE_2D_TextureInput(posN.xy).y;\\n if(!doneP) lumaEndP = TEXTURE_2D_TextureInput(posP.xy).y;\\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\n doneN = abs(lumaEndN) >= gradientScaled;\\n doneP = abs(lumaEndP) >= gradientScaled;\\n if(!doneN) posN.x -= offNP.x * 2.0;\\n if(!doneN) posN.y -= offNP.y * 2.0;\\n doneNP = (!doneN) || (!doneP);\\n if(!doneP) posP.x += offNP.x * 2.0;\\n if(!doneP) posP.y += offNP.y * 2.0;\\n\\n if(doneNP) {\\n if(!doneN) lumaEndN = TEXTURE_2D_TextureInput(posN.xy).y;\\n if(!doneP) lumaEndP = TEXTURE_2D_TextureInput(posP.xy).y;\\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\n doneN = abs(lumaEndN) >= gradientScaled;\\n doneP = abs(lumaEndP) >= gradientScaled;\\n if(!doneN) posN.x -= offNP.x * 4.0;\\n if(!doneN) posN.y -= offNP.y * 4.0;\\n doneNP = (!doneN) || (!doneP);\\n if(!doneP) posP.x += offNP.x * 4.0;\\n if(!doneP) posP.y += offNP.y * 4.0;\\n\\n if(doneNP) {\\n if(!doneN) lumaEndN = TEXTURE_2D_TextureInput(posN.xy).y;\\n if(!doneP) lumaEndP = TEXTURE_2D_TextureInput(posP.xy).y;\\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\n doneN = abs(lumaEndN) >= gradientScaled;\\n doneP = abs(lumaEndP) >= gradientScaled;\\n if(!doneN) posN.x -= offNP.x * 12.0;\\n if(!doneN) posN.y -= offNP.y * 12.0;\\n doneNP = (!doneN) || (!doneP);\\n if(!doneP) posP.x += offNP.x * 12.0;\\n if(!doneP) posP.y += offNP.y * 12.0;\\n\\n }\\n\\n }\\n\\n }\\n\\n float dstN = posM.x - posN.x;\\n float dstP = posP.x - posM.x;\\n if(!horzSpan) dstN = posM.y - posN.y;\\n if(!horzSpan) dstP = posP.y - posM.y;\\n\\n bool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;\\n float spanLength = (dstP + dstN);\\n bool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;\\n float spanLengthRcp = 1.0/spanLength;\\n\\n bool directionN = dstN < dstP;\\n float dst = min(dstN, dstP);\\n bool goodSpan = directionN ? goodSpanN : goodSpanP;\\n float subpixG = subpixF * subpixF;\\n float pixelOffset = (dst * (-spanLengthRcp)) + 0.5;\\n float subpixH = subpixG * fxaaQualitySubpix;\\n\\n float pixelOffsetGood = goodSpan ? pixelOffset : 0.0;\\n float pixelOffsetSubpix = max(pixelOffsetGood, subpixH);\\n if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;\\n if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;\\n\\n \\n#ifdef ASCII_FOOL\\n return ascii(posM);\\n#else\\n return TEXTURE_2D_TextureInput(posM);\\n#endif\\n}\\n',\r\n 'grain.glsl':\r\n '#pragma include \"utils/rand.glsl\"\\n\\nuniform float uTimeGrain;\\nuniform float uGrainFactor;\\n\\nfloat nrandTriangle() {\\n float nrnd0 = pseudoRandom(gl_FragCoord.xy + 1000.0 * fract(uTimeGrain));\\n\\n // Convert uniform distribution into triangle-shaped distribution.\\n float orig = nrnd0 * 2.0 - 1.0;\\n nrnd0 = orig * inversesqrt(abs(orig));\\n nrnd0 = max(-1.0, nrnd0); // Nerf the NaN generated by 0 * rsqrt(0). Thanks @FioraAeterna!\\n nrnd0 = nrnd0 - sign(orig) + 0.5;\\n\\n // Result is range [-0.5,1.5] which is useful for actual dithering. convert to [0,1] for histogram.\\n return (nrnd0 + 0.5) * 0.5;\\n // return nrnd0;\\n}\\n\\nvec4 grain(const in vec4 color) {\\n float grainFactor = nrandTriangle();\\n return vec4(mix(color.rgb, color.rgb * (color.rgb + (1.0 - color.rgb) * 2.0 * grainFactor), uGrainFactor), color.a);\\n}',\r\n 'sharpen.glsl':\r\n '#pragma include \"utils/decodeDepth.glsl\"\\n\\nuniform sampler2D TextureInput;\\nuniform vec2 uTextureInputSize;\\n\\n#ifdef HAS_BACKGROUND\\nuniform sampler2D TextureDepth;\\n#endif\\n\\nuniform float uSharpFactor;\\n\\nuniform vec2 uPixelRatio;\\n\\nvec3 sharpColorFactor(const in vec3 color, const float sharp) {\\n vec2 off = uPixelRatio.xy / uTextureInputSize.xy;\\n\\n // use useAA, 4 texFetch already in cache. perhaps we could cache ourself.\\n vec3 rgbNW = TEXTURE_2D_TextureInput(gTexCoord + off * vec2(-1.0, -1.0)).rgb; \\n vec3 rgbSE = TEXTURE_2D_TextureInput(gTexCoord + off * vec2(1.0, 1.0)).rgb;\\n vec3 rgbNE = TEXTURE_2D_TextureInput(gTexCoord + off * vec2(1.0, -1.0)).rgb;\\n vec3 rgbSW = TEXTURE_2D_TextureInput(gTexCoord + off * vec2(-1.0, 1.0)).rgb;\\n\\n return color + sharp * (4.0 * color - rgbNW - rgbNE - rgbSW - rgbSE);\\n}\\n\\nvec4 sharpen(const in vec4 color) {\\n#ifdef HAS_BACKGROUND\\n\\tfloat alpha = decodeAlpha(TEXTURE_2D_TextureDepth(gTexCoord));\\n\\tif( alpha == 0.0 ) {\\n\\t\\treturn vec4(color.rgb,1.0);\\n }\\n#else\\n\\tfloat alpha = 1.0;\\n#endif\\n\\n return vec4(sharpColorFactor(color.rgb, uSharpFactor * alpha), color.a);\\n}\\n\\nvec4 sharpen() {\\n return sharpen(TEXTURE_2D_TextureInput(gTexCoord));\\n}',\r\n 'dofCross.glsl':\r\n 'uniform vec2 uTextureInputSize;\\nuniform vec3 uDofCross;\\n\\nuniform vec2 uPixelRatio;\\n\\nvec4 dofCross(const in vec4 color) {\\n float ratio = uTextureInputSize.y / uTextureInputSize.x;\\n float dist = distance(vec2(uDofCross.x, uDofCross.y * ratio), gTexCoord * vec2(1.0, ratio));\\n float widthCircle = uPixelRatio.x / uTextureInputSize.x;\\n return vec4(mix(color.rgb, vec3(1.0), abs(dist - 60.0 * widthCircle) > widthCircle ? 0.0 : uDofCross.z), color.a);\\n}',\r\n 'distortion.glsl':\r\n '// https://github.com/borismus/webvr-boilerplate/blob/master/src/distortion/barrel-distortion-fragment-v2.js\\n\\nvec2 barrel(const in vec2 v, const in vec4 projection, const in vec4 unprojection) {\\n vec2 w = (v + unprojection.zw) / unprojection.xy;\\n float val = dot(w, w);\\n // float poly = (showCenter == 1 && val < 0.00010) ? 10000.0 : 1.0 + (uDistortion.x + uDistortion.y * val) * val;\\n float poly = 1.0 + (uDistortion.x + uDistortion.y * val) * val;\\n return projection.xy * (poly * w) - projection.zw;\\n}\\n\\nvec2 distortion(const in vec2 texCoord) {\\n\\n if (abs(texCoord.x - 0.5) < .001) {\\n discard;\\n }\\n\\n vec2 a;\\n\\n if (texCoord.x < 0.5){\\n a = barrel(vec2(texCoord.x / 0.5, texCoord.y), uProjectionLeft, uUnprojectionLeft);\\n } else {\\n // right projections are shifted and vertically mirrored relative to left\\n const vec3 swi = vec3(1.0, -1.0, 0.0);\\n vec4 projectionRight = (uProjectionLeft + swi.zzxz) * swi.xxyx;\\n vec4 unprojectionRight = (uUnprojectionLeft + swi.zzxz) * swi.xxyx;\\n a = barrel(vec2((texCoord.x - 0.5) / 0.5, texCoord.y), projectionRight, unprojectionRight);\\n }\\n\\n if (a.x < 0.0 || a.x > 1.0 || a.y < 0.0 || a.y > 1.0) {\\n discard;\\n }\\n\\n return vec2(a.x * 0.5 + (texCoord.x < 0.5 ? 0.0 : 0.5), a.y);\\n}',\r\n 'ascii.glsl':\r\n '//original shader : https://www.shadertoy.com/view/lssGDj by @movAX13h\\n// Here\\'s a little tool for new characters: thrill-project.com/archiv/coding/bitmap/\\n\\nfloat character(const in float n, vec2 p)\\n{\\n p = floor(p*vec2(4.0, -4.0) + 2.5);\\n if (clamp(p.x, 0.0, 4.0) == p.x && clamp(p.y, 0.0, 4.0) == p.y)\\n {\\n if (int(mod(n/exp2(p.x + 5.0 * p.y), 2.0)) == 1) return 1.5;\\n }\\n return 0.2;\\n}\\n\\nuniform vec2 uTextureInputSize;\\n\\nvec4 ascii( const in vec2 coord )\\n{\\n vec2 pix = coord*uTextureInputSize.xy;\\n vec3 col = TEXTURE_2D_TextureInput(floor(pix/16.0)*16.0/uTextureInputSize.xy).rgb;\\n\\n float gray = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b;\\n\\n // 458144 fish\\n // 473536 square\\n // 33408895 empty round\\n // a 469450 33095217\\n // p 469448 33095184\\n // r 32078482\\n // i 14815374\\n // l 8659215\\n\\n/*\\n float n = 4096.0; // .\\n if (gray > 0.2) n = 65600.0; // :\\n if (gray > 0.3) n = 332772.0; // *\\n if (gray > 0.4) n = 15255086.0; // o\\n if (gray > 0.5) n = 23385164.0; // &\\n if (gray > 0.6) n = 15252014.0; // 8\\n if (gray > 0.7) n = 13199452.0; // @\\n if (gray > 0.8) n = 11512810.0; // #\\n*/\\n\\n // letters are APRIL\\n // \"emojii\" are fish, square, hollow round\\n float n = 14815374.0; // I\\n if (gray > 0.2) n = 473536.0; // square\\n if (gray > 0.3) n = 15255086.0; // round o\\n if (gray > 0.4) n = 458144.0; // fish\\n if (gray > 0.5) n = 10955200.0; // A\\n if (gray > 0.6) n = 1113663.0; // P\\n if (gray > 0.7) n = 5356847.0; // R\\n if (gray > 0.8) n = 15762465.0; // L\\n\\n vec2 p = mod(pix / 8.0, 2.0) - vec2(1.0);\\n col = col * vec3(character(n, p));\\n return vec4(col, 1.0);\\n}\\n',\r\n 'fadeVr.glsl':\r\n 'uniform float uVrFadeFactor;\\r\\n\\r\\nvec4 fadeVr(const in vec4 color) {\\r\\n\\treturn vec4(mix(color.rgb, vec3(0.0), clamp(uVrFadeFactor, 0.0, 1.0)), color.a);\\r\\n}',\r\n 'veilVr.glsl':\r\n 'uniform float uVrVeilFactor;\\r\\n\\r\\nvec4 veilVr(const in vec4 color) {\\r\\n\\treturn vec4(color.rgb * uVrVeilFactor, 1.0);\\r\\n}',\r\n 'outline.glsl':\r\n 'uniform float uOutlineFactor;\\nuniform vec2 uPixelRatio;\\nuniform float uHighlightFactor;\\nuniform float uLineWidth;\\n\\nuniform sampler2D TextureOutline;\\nuniform vec2 uTextureOutlineSize;\\n\\nvec4 outline() {\\n float fac0 = 2.0;\\n float fac1 = 1.0;\\n float offsetx = uPixelRatio.x / uTextureOutlineSize[0] * uLineWidth;\\n float offsety = uPixelRatio.y / uTextureOutlineSize[1] * uLineWidth;\\n\\n vec4 texel0 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(offsetx, offsety));\\n vec4 texel1 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(offsetx, 0.0));\\n vec4 texel2 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(offsetx, -offsety));\\n vec4 texel3 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(0.0, -offsety));\\n vec4 texel4 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(-offsetx, -offsety));\\n vec4 texel5 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(-offsetx, 0.0));\\n vec4 texel6 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(-offsetx, offsety));\\n vec4 texel7 = TEXTURE_2D_TextureOutline(gTexCoord + vec2(0.0, offsety));\\n\\n vec4 rowx = -fac0 * texel5 + fac0 * texel1 + -fac1 * texel6 + fac1 * texel0 + -fac1 * texel4 + fac1 * texel2;\\n vec4 rowy = -fac0 * texel3 + fac0 * texel7 + -fac1 * texel4 + fac1 * texel6 + -fac1 * texel2 + fac1 * texel0;\\n\\n float magSqr = sqrt(dot(rowy, rowy) + dot(rowx, rowx));\\n bool infMag = magSqr < 1.0 / 65025.0;\\n\\n vec3 texelCenter = TEXTURE_2D_TextureOutline(gTexCoord).rgb;\\n if (texelCenter == vec3(0.0) || (uHighlightFactor == 0.0 && infMag)) {\\n discard;\\n }\\n\\n float finalFactor = infMag ? uHighlightFactor : min(1.0, sqrt(magSqr) * uOutlineFactor);\\n\\n return finalFactor * vec4(texelCenter, 1.0);\\n}\\n',\r\n 'finalPremultAlpha.glsl':\r\n 'vec4 finalPremultAlpha(const in vec4 color) {\\n return vec4(linearTosRGB(sRGBToLinear(color.rgb) * color.a), color.a);\\n}',\r\n};\r\n","import notify from '../osg/notify';\r\nimport BoundingSphere from '../osg/BoundingSphere';\r\nimport { mat4 } from '../osg/glMatrix';\r\n\r\n// Base class for Camera / User manipulator\r\nvar Manipulator = function(options) {\r\n if (options) {\r\n this._boundStrategy = options.boundStrategy;\r\n this.setInputManager(options.inputManager);\r\n }\r\n\r\n if (this._boundStrategy === undefined) {\r\n this._boundStrategy = Manipulator.COMPUTE_HOME_USING_SPHERE;\r\n }\r\n\r\n this._controllerList = {};\r\n this._inverseMatrix = mat4.create();\r\n this._camera = undefined;\r\n this._node = undefined;\r\n this._frustum = {};\r\n this._computeBoundNodeMaskOverride = ~0x0;\r\n\r\n // for getHomeBoundingSphere\r\n this._tmpSphere = new BoundingSphere();\r\n};\r\n\r\nManipulator.prototype = {\r\n setCamera: function(c) {\r\n this._camera = c;\r\n },\r\n getCamera: function() {\r\n return this._camera;\r\n },\r\n setNode: function(node) {\r\n this._node = node;\r\n },\r\n setComputeBoundNodeMaskOverride: function(mask) {\r\n this._computeBoundNodeMaskOverride = mask;\r\n },\r\n getComputeBoundNodeMaskOverride: function() {\r\n return this._computeBoundNodeMaskOverride;\r\n },\r\n\r\n setInputManager: function(inputManager) {\r\n this._inputManager = inputManager;\r\n },\r\n\r\n getInputManager: function() {\r\n return this._inputManager;\r\n },\r\n\r\n // overrideStrat should be a bounding volume calculation strategy\r\n getHomeBoundingSphere: function(overrideStrat) {\r\n var node = this._node;\r\n if (!node) return;\r\n\r\n var type = overrideStrat !== undefined ? overrideStrat : this._boundStrategy;\r\n\r\n if (type & Manipulator.COMPUTE_HOME_USING_BBOX) {\r\n var box;\r\n if (this._computeBoundNodeMaskOverride === ~0x0) {\r\n box = node.getBoundingBox();\r\n } else {\r\n var ComputeBoundsVisitor = require('../osg/ComputeBoundsVisitor').default;\r\n var cbv = new ComputeBoundsVisitor();\r\n cbv.setNodeMaskOverride(this._computeBoundNodeMaskOverride);\r\n cbv.reset();\r\n\r\n cbv.apply(node);\r\n box = cbv.getBoundingBox();\r\n }\r\n\r\n if (!box.valid()) return node.getBoundingSphere();\r\n\r\n // minimum between sphere and box\r\n if (type & Manipulator.COMPUTE_HOME_USING_SPHERE) {\r\n var bsphere = node.getBoundingSphere();\r\n if (bsphere.valid() && bsphere.volume() < box.volume()) {\r\n return bsphere;\r\n }\r\n }\r\n\r\n this._tmpSphere.copyBoundingBox(box);\r\n return this._tmpSphere;\r\n }\r\n\r\n return node.getBoundingSphere();\r\n },\r\n\r\n getHomeBound: function(overrideStrat) {\r\n notify.warn('Please use getHomeBoundingSphere instead');\r\n return this.getHomeBoundingSphere(overrideStrat);\r\n },\r\n\r\n getHomeDistance: function(bound) {\r\n var frustum = this._frustum;\r\n var dist = bound.radius();\r\n if (this._camera && mat4.getFrustum(frustum, this._camera.getProjectionMatrix())) {\r\n var vertical2 = Math.abs(frustum.right - frustum.left) / frustum.zNear / 2;\r\n var horizontal2 = Math.abs(frustum.top - frustum.bottom) / frustum.zNear / 2;\r\n dist /= Math.sin(Math.atan2(horizontal2 < vertical2 ? horizontal2 : vertical2, 1));\r\n } else {\r\n dist *= 1.5;\r\n }\r\n return dist;\r\n },\r\n // eg: var currentTime = nv.getFrameStamp().getSimulationTime();\r\n update: function(/*nv*/) {},\r\n\r\n getInverseMatrix: function() {\r\n return this._inverseMatrix;\r\n },\r\n\r\n getControllerList: function() {\r\n return this._controllerList;\r\n }\r\n};\r\n\r\n// flags\r\nManipulator.COMPUTE_HOME_USING_SPHERE = 1 << 0;\r\nManipulator.COMPUTE_HOME_USING_BBOX = 1 << 1;\r\n\r\nexport default Manipulator;\r\n","var Controller = function(manipulator) {\r\n this._manipulator = manipulator;\r\n this._enable = true;\r\n};\r\n\r\nController.prototype = {\r\n // All eventProxy must check isEnabled before injecting\r\n // event into Controllers\r\n isEnabled: function() {\r\n return this._enable;\r\n },\r\n\r\n // called to enable/disable a Controller\r\n // it should be customized for controller that keeps states\r\n // on events\r\n setEnable: function(bool) {\r\n this._enable = bool;\r\n }\r\n};\r\n\r\nexport default Controller;\r\n","var InputGroups = {};\r\n\r\nInputGroups.SCENE = 'scene';\r\n\r\nInputGroups.MANIPULATORS = 'scene.manipulators';\r\n\r\nInputGroups.ORBIT_MANIPULATOR = 'scene.manipulators.orbit';\r\nInputGroups.ORBIT_MANIPULATOR_MOUSEKEYBOARD = 'scene.manipulators.orbit.mousekeyboard';\r\nInputGroups.ORBIT_MANIPULATOR_RESETTOHOME = 'scene.manipulators.orbit.mousekeyboard.home';\r\nInputGroups.ORBIT_MANIPULATOR_TOUCH = 'scene.manipulators.orbit.touch';\r\nInputGroups.ORBIT_MANIPULATOR_WEBVR = 'scene.manipulators.orbit.webvr';\r\nInputGroups.ORBIT_MANIPULATOR_DEVICEORIENTATION = 'scene.manipulators.orbit.deviceorientation';\r\nInputGroups.ORBIT_MANIPULATOR_GAMEPAD = 'scene.manipulators.orbit.gamepad';\r\n\r\nInputGroups.FPS_MANIPULATOR = 'scene.manipulators.fps';\r\nInputGroups.FPS_MANIPULATOR_MOUSEKEYBOARD = 'scene.manipulators.fps.mousekeyboard';\r\nInputGroups.FPS_MANIPULATOR_RESETTOHOME = 'scene.manipulators.fps.mousekeyboard.home';\r\nInputGroups.FPS_MANIPULATOR_TOUCH = 'scene.manipulators.fps.touch';\r\nInputGroups.FPS_MANIPULATOR_WEBVR = 'scene.manipulators.fps.webvr';\r\nInputGroups.FPS_MANIPULATOR_DEVICEORIENTATION = 'scene.manipulators.fps.deviceorientation';\r\nInputGroups.FPS_MANIPULATOR_GAMEPAD = 'scene.manipulators.fps.gamepad';\r\n\r\nInputGroups.CAD_MANIPULATOR = 'scene.manipulators.cad';\r\nInputGroups.CAD_MANIPULATOR_MOUSEKEYBOARD = 'scene.manipulators.cad.mousekeyboard';\r\nInputGroups.CAD_MANIPULATOR_RESETTOHOME = 'scene.manipulators.cad.mousekeyboard.home';\r\nInputGroups.CAD_MANIPULATOR_TOUCH = 'scene.manipulators.cad.touch';\r\n\r\nInputGroups.NODE_GIZMO = 'scene.nodegizmo';\r\n\r\nInputGroups.UI = 'ui';\r\nInputGroups.STATS = 'ui.stats';\r\n\r\nexport default InputGroups;\r\n","import Controller from './Controller';\r\nimport utils from '../osg/utils';\r\nimport { quat } from '../osg/glMatrix';\r\nimport { vec3 } from '../osg/glMatrix';\r\nimport InputGroups from '../osgViewer/input/InputConstants';\r\n\r\nvar degtorad = Math.PI / 180.0; // Degree-to-Radian conversion\r\n\r\nvar makeRotateFromEuler = function(q, x, y, z, order) {\r\n // http://www.mathworks.com/matlabcentral/fileexchange/\r\n // 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\r\n // content/SpinCalc.m\r\n\r\n var c1 = Math.cos(x / 2);\r\n var c2 = Math.cos(y / 2);\r\n var c3 = Math.cos(z / 2);\r\n var s1 = Math.sin(x / 2);\r\n var s2 = Math.sin(y / 2);\r\n var s3 = Math.sin(z / 2);\r\n\r\n if (order === 'XYZ') {\r\n q[0] = s1 * c2 * c3 + c1 * s2 * s3;\r\n q[1] = c1 * s2 * c3 - s1 * c2 * s3;\r\n q[2] = c1 * c2 * s3 + s1 * s2 * c3;\r\n q[3] = c1 * c2 * c3 - s1 * s2 * s3;\r\n } else if (order === 'YXZ') {\r\n q[0] = s1 * c2 * c3 + c1 * s2 * s3;\r\n q[1] = c1 * s2 * c3 - s1 * c2 * s3;\r\n q[2] = c1 * c2 * s3 - s1 * s2 * c3;\r\n q[3] = c1 * c2 * c3 + s1 * s2 * s3;\r\n } else if (order === 'ZXY') {\r\n q[0] = s1 * c2 * c3 - c1 * s2 * s3;\r\n q[1] = c1 * s2 * c3 + s1 * c2 * s3;\r\n q[2] = c1 * c2 * s3 + s1 * s2 * c3;\r\n q[3] = c1 * c2 * c3 - s1 * s2 * s3;\r\n } else if (order === 'ZYX') {\r\n q[0] = s1 * c2 * c3 - c1 * s2 * s3;\r\n q[1] = c1 * s2 * c3 + s1 * c2 * s3;\r\n q[2] = c1 * c2 * s3 - s1 * s2 * c3;\r\n q[3] = c1 * c2 * c3 + s1 * s2 * s3;\r\n } else if (order === 'YZX') {\r\n q[0] = s1 * c2 * c3 + c1 * s2 * s3;\r\n q[1] = c1 * s2 * c3 + s1 * c2 * s3;\r\n q[2] = c1 * c2 * s3 - s1 * s2 * c3;\r\n q[3] = c1 * c2 * c3 - s1 * s2 * s3;\r\n } else if (order === 'XZY') {\r\n q[0] = s1 * c2 * c3 - c1 * s2 * s3;\r\n q[1] = c1 * s2 * c3 - s1 * c2 * s3;\r\n q[2] = c1 * c2 * s3 + s1 * s2 * c3;\r\n q[3] = c1 * c2 * c3 + s1 * s2 * s3;\r\n }\r\n return q;\r\n};\r\n\r\nvar FirstPersonManipulatorDeviceOrientationController = function(manipulator) {\r\n Controller.call(this, manipulator);\r\n this.init();\r\n};\r\n\r\nFirstPersonManipulatorDeviceOrientationController.computeQuaternion = (function() {\r\n var screenTransform = quat.create();\r\n var worldTransform = quat.fromValues(-Math.sqrt(0.5), 0.0, 0.0, Math.sqrt(0.5)); // - PI/2 around the x-axis\r\n\r\n // but on ios alpha is relative to the first question:\r\n //\r\n // http://www.html5rocks.com/en/tutorials/device/orientation/\r\n // For most browsers, alpha returns the compass heading, so when the device is pointed\r\n // north, alpha is zero. With Mobile Safari, alpha is based on the direction the\r\n // device was pointing when device orientation was first requested. The compass\r\n // heading is available in the webkitCompassHeading parameter.\r\n\r\n return function(q, deviceOrientation, screenOrientation) {\r\n var alpha = deviceOrientation.alpha * degtorad;\r\n var beta = deviceOrientation.beta * degtorad;\r\n var gamma = deviceOrientation.gamma * degtorad;\r\n\r\n // If the user goes in landscape mode, he rotates his device with a certain angle\r\n // around the Z axis counterclockwise and the DeviceOrientation contains this\r\n // rotation To compensate this, we apply a rotation of the same angle in the\r\n // opposite way\r\n\r\n var screenAngle = screenOrientation * degtorad;\r\n\r\n // alpha is heading -> X\r\n // beta -> Z Up\r\n // Gamma -> Y view direction\r\n makeRotateFromEuler(q, beta, alpha, -gamma, 'YXZ');\r\n // equivalent to\r\n // var rotateX = mat4.fromRotation( mat4.create(), beta,[ 1,0,0 ] );\r\n // var rotateY = mat4.fromRotation( mat4.create(), alpha,[ 0,1,0 ] );\r\n // var rotateZ = mat4.fromRotation( mat4.create(), -gamma,[ 0,0,1 ] );\r\n // var result = mat4.create();\r\n // mat4.mul( result, rotateY, rotateX );\r\n // mat4.mul( result, result, rotateZ );\r\n // mat4.getRotation( q, result );\r\n\r\n var minusHalfAngle = -screenAngle / 2.0;\r\n screenTransform[1] = Math.sin(minusHalfAngle);\r\n screenTransform[3] = Math.cos(minusHalfAngle);\r\n\r\n quat.mul(q, q, screenTransform);\r\n quat.mul(q, q, worldTransform);\r\n\r\n var yTemp = q[1];\r\n q[1] = -q[2];\r\n q[2] = yTemp;\r\n\r\n return q;\r\n };\r\n})();\r\n\r\nutils.createPrototypeObject(\r\n FirstPersonManipulatorDeviceOrientationController,\r\n utils.objectInherit(Controller.prototype, {\r\n init: function() {\r\n this._quat = quat.create();\r\n this._pos = vec3.create();\r\n this._deviceOrientation = undefined;\r\n this._screenOrientation = undefined;\r\n\r\n var manager = this._manipulator.getInputManager();\r\n manager.group(InputGroups.FPS_MANIPULATOR_DEVICEORIENTATION).addMappings(\r\n {\r\n setDeviceOrientation: 'deviceorientation',\r\n setScreenOrientation: 'orientationchange'\r\n },\r\n this\r\n );\r\n\r\n // default to disabled\r\n manager.setEnable(InputGroups.FPS_MANIPULATOR_DEVICEORIENTATION, false);\r\n },\r\n\r\n setDeviceOrientation: function(ev) {\r\n if (!this._deviceOrientation) {\r\n this._deviceOrientation = {};\r\n }\r\n this._deviceOrientation.alpha = ev.alpha;\r\n this._deviceOrientation.beta = ev.beta;\r\n this._deviceOrientation.gamma = ev.gamma;\r\n\r\n if (ev.screenOrientation) {\r\n this.setScreenOrientation(ev);\r\n return;\r\n }\r\n\r\n this._update();\r\n },\r\n\r\n setScreenOrientation: function(ev) {\r\n this._screenOrientation = ev.screenOrientation;\r\n this._update();\r\n },\r\n\r\n _update: function() {\r\n if (!this._deviceOrientation || !this._screenOrientation) {\r\n return;\r\n }\r\n\r\n FirstPersonManipulatorDeviceOrientationController.computeQuaternion(\r\n this._quat,\r\n this._deviceOrientation,\r\n this._screenOrientation\r\n );\r\n\r\n this._manipulator.setPoseVR(this._quat, this._pos);\r\n }\r\n })\r\n);\r\n\r\nexport default FirstPersonManipulatorDeviceOrientationController;\r\n","import Controller from './Controller';\r\nimport utils from '../osg/utils';\r\nimport { quat } from '../osg/glMatrix';\r\nimport { vec3 } from '../osg/glMatrix';\r\n\r\nimport FirstPersonDeviceOrientation from './FirstPersonManipulatorDeviceOrientationController';\r\nimport InputGroups from '../osgViewer/input/InputConstants';\r\n\r\nvar OrbitManipulatorDeviceOrientationController = function(manipulator) {\r\n Controller.call(this, manipulator);\r\n this.init();\r\n};\r\n\r\nutils.createPrototypeObject(\r\n OrbitManipulatorDeviceOrientationController,\r\n utils.objectInherit(Controller.prototype, {\r\n init: function() {\r\n this._quat = quat.create();\r\n this._pos = vec3.create();\r\n\r\n this._deviceOrientation = undefined;\r\n this._screenOrientation = undefined;\r\n\r\n var manager = this._manipulator.getInputManager();\r\n manager.group(InputGroups.ORBIT_MANIPULATOR_DEVICEORIENTATION).addMappings(\r\n {\r\n setDeviceOrientation: 'deviceorientation',\r\n setScreenOrientation: 'orientationchange'\r\n },\r\n this\r\n );\r\n\r\n // default to disabled\r\n manager.setEnable(InputGroups.ORBIT_MANIPULATOR_DEVICEORIENTATION, false);\r\n },\r\n\r\n setDeviceOrientation: function(ev) {\r\n if (!this._deviceOrientation) {\r\n this._deviceOrientation = {};\r\n }\r\n this._deviceOrientation.alpha = ev.alpha;\r\n this._deviceOrientation.beta = ev.beta;\r\n this._deviceOrientation.gamma = ev.gamma;\r\n\r\n if (ev.screenOrientation) {\r\n this.setScreenOrientation(ev);\r\n return;\r\n }\r\n\r\n this._update();\r\n },\r\n\r\n setScreenOrientation: function(ev) {\r\n this._screenOrientation = ev.screenOrientation;\r\n this._update();\r\n },\r\n\r\n _update: function() {\r\n if (!this._deviceOrientation || !this._screenOrientation) {\r\n return;\r\n }\r\n\r\n FirstPersonDeviceOrientation.computeQuaternion(\r\n this._quat,\r\n this._deviceOrientation,\r\n this._screenOrientation\r\n );\r\n this._manipulator.setPoseVR(this._quat, this._pos);\r\n }\r\n })\r\n);\r\n\r\nexport default OrbitManipulatorDeviceOrientationController;\r\n","import Controller from './Controller';\r\nimport utils from '../osg/utils';\r\nimport { vec2 } from '../osg/glMatrix';\r\nimport InputGroups from '../osgViewer/input/InputConstants';\r\n\r\nvar OrbitManipulatorGamePadController = function(manipulator) {\r\n Controller.call(this, manipulator);\r\n this.init();\r\n};\r\n\r\nutils.createPrototypeObject(\r\n OrbitManipulatorGamePadController,\r\n utils.objectInherit(Controller.prototype, {\r\n init: function() {\r\n this._delay = 0.15;\r\n this._zoomFactor = 0.5;\r\n this._rotateFactor = 5.0;\r\n this._panFactor = 10.0;\r\n\r\n //var rotateTarget, panTarget;\r\n this._rotate = this._manipulator.getRotateInterpolator();\r\n this._zoom = this._manipulator.getZoomInterpolator();\r\n this._pan = this._manipulator.getPanInterpolator();\r\n\r\n this._rotate.setDelay(this._delay);\r\n this._zoom.setDelay(this._delay);\r\n this._pan.setDelay(this._delay);\r\n\r\n var manager = this._manipulator.getInputManager();\r\n manager.group(InputGroups.ORBIT_MANIPULATOR_GAMEPAD).addMappings(\r\n {\r\n addZoom: 'axis 3',\r\n addRotateX: 'axis 0',\r\n addRotateY: 'axis 1'\r\n },\r\n this\r\n );\r\n\r\n manager.group(InputGroups.ORBIT_MANIPULATOR_GAMEPAD).addMappings(\r\n {\r\n panUp: 'buttonvalue 12'\r\n },\r\n this.pan.bind(this, vec2.fromValues(0, 1))\r\n );\r\n\r\n manager.group(InputGroups.ORBIT_MANIPULATOR_GAMEPAD).addMappings(\r\n {\r\n panDown: 'buttonvalue 13'\r\n },\r\n this.pan.bind(this, vec2.fromValues(0, -1))\r\n );\r\n\r\n manager.group(InputGroups.ORBIT_MANIPULATOR_GAMEPAD).addMappings(\r\n {\r\n panLeft: 'buttonvalue 14'\r\n },\r\n this.pan.bind(this, vec2.fromValues(1, 0))\r\n );\r\n\r\n manager.group(InputGroups.ORBIT_MANIPULATOR_GAMEPAD).addMappings(\r\n {\r\n panRight: 'buttonvalue 15'\r\n },\r\n this.pan.bind(this, vec2.fromValues(-1, 0))\r\n );\r\n\r\n // Keeping this for whenever we add the support for custom gamepad layout\r\n // this._padFactor = 10.0;\r\n // //SpaceNavigator & 6-axis controllers\r\n // } else if (axes.length >= 5) {\r\n // if (Math.abs(axes[0]) > AXIS_THRESHOLD || Math.abs(axes[1]) > AXIS_THRESHOLD) {\r\n // this.addPan(pan, -axes[0], axes[1]);\r\n // }\r\n //\r\n // if (Math.abs(axes[2]) > AXIS_THRESHOLD) {\r\n // this.addZoom(zoom, -axes[2]);\r\n // }\r\n //\r\n // if (Math.abs(axes[3]) > AXIS_THRESHOLD || Math.abs(axes[4]) > AXIS_THRESHOLD) {\r\n // this.addRotate(rotate, axes[4], axes[3]);\r\n // }\r\n // }\r\n },\r\n\r\n pan: function(delta) {\r\n var panTarget = this._pan.getTarget();\r\n this._pan.setTarget(\r\n panTarget[0] - delta[0] * this._panFactor,\r\n panTarget[1] + delta[1] * this._panFactor\r\n );\r\n },\r\n\r\n addZoom: function(ev) {\r\n this._zoom.addTarget(-ev.value * this._zoomFactor);\r\n },\r\n\r\n addRotateX: function(ev) {\r\n this._rotate.addTarget(-ev.value * this._rotateFactor);\r\n },\r\n\r\n addRotateY: function(ev) {\r\n this._rotate.addTarget(0, ev.value * this._rotateFactor);\r\n }\r\n })\r\n);\r\nexport default OrbitManipulatorGamePadController;\r\n","import Controller from './Controller';\r\nimport utils from '../osg/utils';\r\nimport osgMath from '../osg/math';\r\nimport InputGroups from '../osgViewer/input/InputConstants';\r\n\r\nvar OrbitManipulatorHammerController = function(manipulator) {\r\n Controller.call(this, manipulator);\r\n this.init();\r\n};\r\n\r\nutils.createPrototypeObject(\r\n OrbitManipulatorHammerController,\r\n utils.objectInherit(Controller.prototype, {\r\n init: function() {\r\n this._panFactor = [];\r\n this._panFactor[0] = 1.0;\r\n this._panFactor[1] = -this._panFactor[0];\r\n\r\n this._rotateFactor = [];\r\n this._rotateFactor[0] = 1.2;\r\n this._rotateFactor[1] = -this._rotateFactor[0];\r\n this._zoomFactor = 5.0;\r\n\r\n this._lastScale = 0;\r\n\r\n this._zooming = false;\r\n this._dragStarted = false;\r\n\r\n this._initInputs(InputGroups.ORBIT_MANIPULATOR_TOUCH);\r\n },\r\n\r\n _initInputs: function(group) {\r\n var manager = this._manipulator.getInputManager();\r\n\r\n manager.group(group).addMappings(\r\n {\r\n pinchEnd: 'pinchend',\r\n pinchStart: 'pinchstart',\r\n pinchInOut: ['pinchin', 'pinchout'],\r\n startPan: ['panstart 2'],\r\n startRotate: ['panstart 1'],\r\n pan: ['panmove 2'],\r\n rotate: ['panmove 1'],\r\n endMotion: ['touchend 2', 'touchcancel 2', 'touchend 1', 'touchcancel 1']\r\n },\r\n this\r\n );\r\n },\r\n\r\n startPan: function(event) {\r\n this._panning = true;\r\n this.startMotion(this._manipulator.getPanInterpolator(), this._panFactor, event);\r\n },\r\n\r\n startRotate: function(event) {\r\n this._rotating = true;\r\n this.startMotion(this._manipulator.getRotateInterpolator(), this._rotateFactor, event);\r\n },\r\n\r\n pan: function(event) {\r\n if (!this._panning) {\r\n this.endMotion();\r\n this.startPan(event);\r\n }\r\n this.move(this._manipulator.getPanInterpolator(), this._panFactor, event);\r\n },\r\n\r\n rotate: function(event) {\r\n if (!this._rotating) {\r\n this.endMotion();\r\n this.startPan(event);\r\n }\r\n this.move(this._manipulator.getRotateInterpolator(), this._rotateFactor, event);\r\n },\r\n\r\n startMotion: function(interpolator, factor, event) {\r\n if (this._zooming) {\r\n return;\r\n }\r\n interpolator.reset();\r\n var x = event.canvasX * factor[0];\r\n var y = event.canvasY * factor[1];\r\n interpolator.set(x, y);\r\n },\r\n\r\n move: function(interpolator, factor, event) {\r\n var x = event.canvasX * factor[0];\r\n var y = event.canvasY * factor[1];\r\n interpolator.setTarget(x, y);\r\n },\r\n\r\n endMotion: function() {\r\n if (!this._panning && !this._rotating) return;\r\n this._panning = false;\r\n this._rotating = false;\r\n },\r\n\r\n pinchStart: function(event) {\r\n this._zooming = true;\r\n this._lastScale = event.scale;\r\n var zoomInterpolator = this._manipulator.getZoomInterpolator();\r\n zoomInterpolator.reset();\r\n zoomInterpolator.set(this._lastScale);\r\n },\r\n\r\n pinchEnd: function() {\r\n this._zooming = false;\r\n },\r\n\r\n pinchInOut: function(event) {\r\n if (!this._zooming) return;\r\n\r\n // make the dezoom faster (because the manipulator dezoom/dezoom distance speed is adaptive)\r\n var zoomFactor =\r\n event.scale > this._lastScale ? this._zoomFactor : this._zoomFactor * 3.0;\r\n // also detect pan (velocity) to reduce zoom force\r\n var minDezoom = 0.0;\r\n var maxDezoom = 0.5;\r\n var aSmooth = -Math.abs(event.velocity) + (minDezoom + maxDezoom);\r\n zoomFactor *= osgMath.smoothStep(minDezoom, maxDezoom, aSmooth);\r\n\r\n var scale = (event.scale - this._lastScale) * zoomFactor;\r\n this._lastScale = event.scale;\r\n\r\n var zoomInterpolator = this._manipulator.getZoomInterpolator();\r\n zoomInterpolator.setTarget(zoomInterpolator.getTarget()[0] - scale);\r\n },\r\n\r\n setManipulator: function(manipulator) {\r\n this._manipulator = manipulator;\r\n }\r\n })\r\n);\r\n\r\nexport default OrbitManipulatorHammerController;\r\n","export default {\r\n ROTATE: 0,\r\n PAN: 1,\r\n ZOOM: 2\r\n};\r\n","import Controller from './Controller';\r\nimport utils from '../osg/utils';\r\nimport osgMath from '../osg/math';\r\nimport OrbitManipulatorEnums from './orbitManipulatorEnums';\r\nimport InputGroups from '../osgViewer/input/InputConstants';\r\n\r\nvar OrbitManipulatorStandardMouseKeyboardController = function(manipulator) {\r\n Controller.call(this, manipulator);\r\n this._zoomFactor = 1;\r\n this.init();\r\n};\r\n\r\nutils.createPrototypeObject(\r\n OrbitManipulatorStandardMouseKeyboardController,\r\n utils.objectInherit(Controller.prototype, {\r\n init: function() {\r\n this._mode = undefined;\r\n this._inMotion = false;\r\n\r\n this._initInputs(\r\n InputGroups.ORBIT_MANIPULATOR_MOUSEKEYBOARD,\r\n InputGroups.ORBIT_MANIPULATOR_RESETTOHOME\r\n );\r\n },\r\n\r\n _initInputs: function(globalGroup, resetToHomeGroup) {\r\n var manager = this._manipulator.getInputManager();\r\n var setRotationMode = this.setMode.bind(\r\n this,\r\n OrbitManipulatorEnums.ROTATE,\r\n this._manipulator.getRotateInterpolator()\r\n );\r\n var setPanMode = this.setMode.bind(\r\n this,\r\n OrbitManipulatorEnums.PAN,\r\n this._manipulator.getPanInterpolator()\r\n );\r\n var setZoomMode = this.setMode.bind(\r\n this,\r\n OrbitManipulatorEnums.ZOOM,\r\n this._manipulator.getZoomInterpolator()\r\n );\r\n\r\n manager.group(globalGroup).addMappings(\r\n {\r\n move: 'mousemove',\r\n startPan: ['mousedown shift 0', 'mousedown 1', 'mousedown 2'],\r\n startZoom: ['mousedown ctrl 0', 'mousedown ctrl 2'],\r\n startRotate: 'mousedown 0 !shift !ctrl',\r\n stopMotion: ['mouseup', 'mouseout', 'keyup a', 'keyup s', 'keyup d'],\r\n zoom: 'wheel'\r\n },\r\n this\r\n );\r\n\r\n manager.group(resetToHomeGroup).addMappings(\r\n {\r\n reset: 'keydown space'\r\n },\r\n this\r\n );\r\n\r\n manager\r\n .group(globalGroup)\r\n .addMappings({ setRotationMode: 'keydown a' }, setRotationMode);\r\n manager.group(globalGroup).addMappings({ setPanMode: 'keydown d' }, setPanMode);\r\n manager.group(globalGroup).addMappings({ setZoomMode: 'keydown s' }, setZoomMode);\r\n },\r\n\r\n getMode: function() {\r\n return this._mode;\r\n },\r\n\r\n setMode: function(mode, interpolator) {\r\n if (this.getMode() === mode) {\r\n return;\r\n }\r\n this._mode = mode;\r\n interpolator.reset();\r\n this._inMotion = true;\r\n },\r\n\r\n setManipulator: function(manipulator) {\r\n this._manipulator = manipulator;\r\n },\r\n\r\n getZoomFactor: function() {\r\n return this._zoomFactor;\r\n },\r\n\r\n setZoomFactor: function(factor) {\r\n this._zoomFactor = factor;\r\n },\r\n\r\n move: function(ev) {\r\n if (this._inMotion === false) {\r\n return;\r\n }\r\n\r\n var posX = ev.canvasX;\r\n var posY = -ev.canvasY;\r\n\r\n var manipulator = this._manipulator;\r\n if (osgMath.isNaN(posX) === false && osgMath.isNaN(posY) === false) {\r\n var mode = this.getMode();\r\n if (mode === OrbitManipulatorEnums.ROTATE) {\r\n manipulator.getRotateInterpolator().setTarget(posX, posY);\r\n } else if (mode === OrbitManipulatorEnums.PAN) {\r\n manipulator.getPanInterpolator().setTarget(posX, posY);\r\n } else if (mode === OrbitManipulatorEnums.ZOOM) {\r\n var zoom = manipulator.getZoomInterpolator();\r\n if (zoom.isReset()) {\r\n zoom.setStart(posY);\r\n zoom.set(0.0);\r\n }\r\n var dy = posY - zoom.getStart();\r\n zoom.setStart(posY);\r\n var v = zoom.getTarget()[0];\r\n zoom.setTarget(v - dy / 20.0);\r\n }\r\n }\r\n },\r\n\r\n startPan: function(ev) {\r\n var pan = this._manipulator.getPanInterpolator();\r\n this.setMode(OrbitManipulatorEnums.PAN, pan);\r\n pan.reset();\r\n pan.set(ev.canvasX, -ev.canvasY);\r\n },\r\n\r\n startRotate: function(ev) {\r\n var rotate = this._manipulator.getRotateInterpolator();\r\n this.setMode(OrbitManipulatorEnums.ROTATE, rotate);\r\n rotate.reset();\r\n rotate.set(ev.canvasX, -ev.canvasY);\r\n },\r\n\r\n startZoom: function(ev) {\r\n var zoom = this._manipulator.getZoomInterpolator();\r\n this.setMode(OrbitManipulatorEnums.ZOOM, zoom);\r\n zoom.setStart(-ev.canvasY);\r\n zoom.set(0.0);\r\n },\r\n\r\n stopMotion: function() {\r\n this._inMotion = false;\r\n this._mode = undefined;\r\n },\r\n\r\n zoom: function(ev) {\r\n var intDelta = ev.deltaY / this._zoomFactor;\r\n var manipulator = this._manipulator;\r\n var zoomTarget = manipulator.getZoomInterpolator().getTarget()[0] - intDelta;\r\n manipulator.getZoomInterpolator().setTarget(zoomTarget);\r\n },\r\n\r\n reset: function() {\r\n this._manipulator.computeHomePosition();\r\n }\r\n })\r\n);\r\nexport default OrbitManipulatorStandardMouseKeyboardController;\r\n","import Controller from './Controller';\r\nimport utils from '../osg/utils';\r\nimport { quat } from '../osg/glMatrix';\r\nimport { vec3 } from '../osg/glMatrix';\r\nimport { mat4 } from '../osg/glMatrix';\r\nimport InputGroups from '../osgViewer/input/InputConstants';\r\n\r\nvar tempQuat = quat.create();\r\nvar tempPos = vec3.create();\r\n\r\nvar OrbitManipulatorWebVRController = function(manipulator) {\r\n Controller.call(this, manipulator);\r\n this.init();\r\n};\r\n\r\nutils.createPrototypeObject(\r\n OrbitManipulatorWebVRController,\r\n utils.objectInherit(Controller.prototype, {\r\n init: function() {\r\n this._pos = vec3.create();\r\n this._quat = quat.create();\r\n\r\n var manager = this._manipulator.getInputManager();\r\n manager.group(InputGroups.ORBIT_MANIPULATOR_WEBVR).addMappings(\r\n {\r\n update: 'vrdisplayposechanged'\r\n },\r\n this\r\n );\r\n // default to disabled\r\n manager.setEnable(InputGroups.ORBIT_MANIPULATOR_WEBVR, false);\r\n },\r\n update: function(ev) {\r\n var q = ev.pose.orientation;\r\n if (q) {\r\n if (ev.sitToStandMatrix) {\r\n q = mat4.getRotation(tempQuat, ev.sitToStandMatrix);\r\n quat.mul(q, q, ev.pose.orientation);\r\n }\r\n\r\n this._quat[0] = q[0];\r\n this._quat[1] = -q[2];\r\n this._quat[2] = q[1];\r\n this._quat[3] = q[3];\r\n }\r\n\r\n var pos = ev.pose.position;\r\n if (pos) {\r\n if (ev.sitToStandMatrix) {\r\n pos = vec3.transformMat4(tempPos, pos, ev.sitToStandMatrix);\r\n }\r\n\r\n this._pos[0] = pos[0] * ev.worldFactor;\r\n this._pos[1] = -pos[2] * ev.worldFactor;\r\n this._pos[2] = pos[1] * ev.worldFactor;\r\n }\r\n this._manipulator.setPoseVR(this._quat, this._pos);\r\n }\r\n })\r\n);\r\n\r\nexport default OrbitManipulatorWebVRController;\r\n","var DelayInterpolator = function(size, delay, redrawCB) {\r\n this._current = new Float32Array(size);\r\n this._target = new Float32Array(size);\r\n this._delta = new Float32Array(size);\r\n this._delay = delay !== undefined ? delay : 0.15;\r\n this._reset = false;\r\n this._start = 0.0;\r\n this._redrawCB = redrawCB\r\n this.reset();\r\n};\r\n\r\nDelayInterpolator.prototype = {\r\n setDelay: function(delay) {\r\n this._delay = delay;\r\n },\r\n reset: function() {\r\n for (var i = 0, l = this._current.length; i < l; i++) {\r\n this._current[i] = this._target[i] = 0.0;\r\n }\r\n this._reset = true;\r\n },\r\n update: function(dt) {\r\n // assume 60 fps to be consistent with the old _delay values for backward compatibility\r\n // (otherwise we'd have to adjust the _delay values by multiplying to 60 )\r\n var dtDelay = Math.min(1.0, this._delay * dt * 60.0);\r\n for (var i = 0, l = this._current.length; i < l; i++) {\r\n var d = (this._target[i] - this._current[i]) * dtDelay;\r\n this._delta[i] = d;\r\n this._current[i] += d;\r\n }\r\n return this._delta;\r\n },\r\n set: function() {\r\n for (var i = 0, l = this._current.length; i < l; i++) {\r\n this._current[i] = this._target[i] = arguments[i];\r\n }\r\n this._reset = false;\r\n },\r\n isReset: function() {\r\n return this._reset;\r\n },\r\n getCurrent: function() {\r\n return this._current;\r\n },\r\n setTarget: function() {\r\n for (var i = 0, l = this._target.length; i < l; i++) {\r\n if (this._reset) {\r\n this._target[i] = this._current[i] = arguments[i];\r\n } else {\r\n this._target[i] = arguments[i];\r\n }\r\n }\r\n this._reset = false;\r\n },\r\n addTarget: function() {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this._target[i] += arguments[i];\r\n }\r\n },\r\n getTarget: function() {\r\n return this._target;\r\n },\r\n getDelta: function() {\r\n return this._delta;\r\n },\r\n getStart: function() {\r\n return this._start;\r\n },\r\n setStart: function(start) {\r\n this._start = start;\r\n }\r\n};\r\n\r\nexport default DelayInterpolator;\r\n","import utils from '../osg/utils';\r\nimport { vec3 } from '../osg/glMatrix';\r\nimport { mat4 } from '../osg/glMatrix';\r\nimport Manipulator from './Manipulator';\r\nimport OrbitManipulatorDeviceOrientationController from './OrbitManipulatorDeviceOrientationController';\r\nimport OrbitManipulatorGamePadController from './OrbitManipulatorGamePadController';\r\nimport OrbitManipulatorHammerController from './OrbitManipulatorHammerController';\r\nimport OrbitManipulatorStandardMouseKeyboardController from './OrbitManipulatorStandardMouseKeyboardController';\r\nimport OrbitManipulatorWebVRController from './OrbitManipulatorWebVRController';\r\nimport DelayInterpolator from '../osgUtil/DelayInterpolator';\r\nimport Groups from '../osgViewer/input/InputConstants';\r\n\r\n/**\r\n * OrbitManipulator\r\n * @class\r\n */\r\nvar OrbitManipulator = function(options) {\r\n Manipulator.call(this, options);\r\n this._homePosition = vec3.create();\r\n this._frustum = {};\r\n this._redrawCB = options.redrawCB\r\n this.init();\r\n};\r\n\r\nOrbitManipulator.AvailableControllerList = [\r\n 'StandardMouseKeyboard',\r\n 'GamePad',\r\n 'Hammer',\r\n 'DeviceOrientation',\r\n 'WebVR'\r\n];\r\n\r\nOrbitManipulator.ControllerList = [\r\n 'StandardMouseKeyboard',\r\n 'GamePad',\r\n 'Hammer',\r\n 'DeviceOrientation',\r\n 'WebVR'\r\n];\r\n\r\nvar TWO_PI = 2 * Math.PI;\r\nvar lowerOrEqual = function(val, limit) {\r\n return val < limit + 0.00001;\r\n};\r\n\r\nvar MIN_ZOOM = 1e-4;\r\nvar MAX_ZOOM = Infinity;\r\n\r\n/** @lends OrbitManipulator.prototype */\r\nutils.createPrototypeObject(\r\n OrbitManipulator,\r\n utils.objectInherit(Manipulator.prototype, {\r\n init: function() {\r\n this._distance = 25.0;\r\n this._target = vec3.create();\r\n this._upz = vec3.fromValues(0.0, 0.0, 1.0);\r\n vec3.init(this._target);\r\n\r\n var rot1 = mat4.fromRotation(mat4.create(), -Math.PI, this._upz);\r\n var rot2 = mat4.fromRotation(\r\n mat4.create(),\r\n Math.PI / 10.0,\r\n vec3.fromValues(1.0, 0.0, 0.0)\r\n );\r\n this._rotation = mat4.create();\r\n mat4.mul(this._rotation, rot1, rot2);\r\n this._time = 0.0;\r\n\r\n this._vrMatrix = mat4.create();\r\n\r\n this._rotate = new DelayInterpolator(2, undefined, this._redrawCB);\r\n this._pan = new DelayInterpolator(2, undefined, this._redrawCB);\r\n this._zoom = new DelayInterpolator(1, undefined, this._redrawCB);\r\n\r\n this._minSpeed = 1e-4; // set a limit to pan/zoom speed\r\n this._scaleMouseMotion = 1.0;\r\n\r\n this._inverseMatrix = mat4.create();\r\n\r\n // distance at which we start pushing the target (so that we can still zoom)\r\n // with a very low _limitZoomIn, it's like a fps manipulator as long as you don't unzoom\r\n this._autoPushTarget = true;\r\n\r\n // pitch range [-PI/2, PI/2]\r\n this._limitPitchUp = Math.PI * 0.5 * 0.9;\r\n this._limitPitchDown = -this._limitPitchUp;\r\n\r\n // yaw range [-PI, PI]\r\n this._limitYawLeft = -Math.PI;\r\n this._limitYawRight = -this._limitYawLeft;\r\n\r\n this._limitZoomIn = MIN_ZOOM;\r\n this._limitZoomOut = MAX_ZOOM;\r\n\r\n this._constrainYaw = false;\r\n this._constrainPitch = false;\r\n this._constrainYaw = false;\r\n this._constrainZoom = false;\r\n\r\n this._panFactor = .002,\r\n this._rotationFactor = .1,\r\n this._zoomFactor = .1;\r\n\r\n // instance of controller\r\n var self = this;\r\n\r\n OrbitManipulator.ControllerList.forEach(function(value) {\r\n if (OrbitManipulator[value] !== undefined) {\r\n if (self._controllerList[value]) {\r\n self._controllerList[value].init();\r\n } else {\r\n self._controllerList[value] = new OrbitManipulator[value](self);\r\n }\r\n }\r\n });\r\n },\r\n\r\n setZoomFactor(e) {\r\n this._zoomFactor = .1 * e\r\n },\r\n \r\n setRotationFactor(e) {\r\n this._rotationFactor = .1 * e\r\n },\r\n\r\n setPanFactor(e) {\r\n this._panFactor = .002 * e\r\n }, \r\n \r\n setLimitPitchUp(up) {\r\n this._limitPitchUp = up;\r\n },\r\n \r\n setLimitPitchDown: function(down) {\r\n this._limitPitchDown = down;\r\n },\r\n setLimitYawLeft: function(left) {\r\n this._limitYawLeft = left;\r\n this._constrainYaw = true;\r\n },\r\n setLimitYawRight: function(right) {\r\n this._limitYawRight = right;\r\n this._constrainYaw = true;\r\n },\r\n setLimitZoomOut: function(zoomOut) {\r\n this._limitZoomOut = zoomOut;\r\n this._constrainZoom = true;\r\n },\r\n setLimitZoomIn: function(zoomIn) {\r\n this._limitZoomIn = zoomIn;\r\n this._constrainZoom = true;\r\n },\r\n\r\n setConstrainPitch: function(limit) {\r\n this._constrainPitch = limit;\r\n this._previousPitch = undefined;\r\n },\r\n\r\n isConstrainPitch: function() {\r\n return this._constrainPitch;\r\n },\r\n\r\n setConstrainYaw: function(constrain) {\r\n this._constrainYaw = constrain;\r\n this._previousYaw = undefined;\r\n },\r\n\r\n isConstrainYaw: function() {\r\n return this._constrainYaw;\r\n },\r\n\r\n setConstrainZoom: function(limit) {\r\n this._constrainZoom = limit;\r\n },\r\n\r\n isConstrainZoom: function() {\r\n return this._constrainZoom;\r\n },\r\n\r\n setDelay: function(dt) {\r\n this._rotate.setDelay(dt);\r\n this._pan.setDelay(dt);\r\n this._zoom.setDelay(dt);\r\n },\r\n reset: function() {\r\n this.init();\r\n },\r\n setTarget: function(target) {\r\n vec3.copy(this._target, target);\r\n var eyePos = vec3.create();\r\n this.getEyePosition(eyePos);\r\n this._distance = vec3.distance(target, eyePos);\r\n },\r\n setEyePosition: (function() {\r\n var f = vec3.create();\r\n var s = vec3.create();\r\n var u = vec3.create();\r\n return function(eye) {\r\n var result = this._rotation;\r\n var center = this._target;\r\n\r\n vec3.sub(f, eye, center);\r\n vec3.normalize(f, f);\r\n\r\n vec3.cross(s, f, this._upz);\r\n vec3.normalize(s, s);\r\n\r\n vec3.cross(u, s, f);\r\n vec3.normalize(u, u);\r\n\r\n // s[0], f[0], u[0], 0.0,\r\n // s[1], f[1], u[1], 0.0,\r\n // s[2], f[2], u[2], 0.0,\r\n // 0, 0, 0, 1.0\r\n result[0] = s[0];\r\n result[1] = f[0];\r\n result[2] = u[0];\r\n result[3] = 0.0;\r\n result[4] = s[1];\r\n result[5] = f[1];\r\n result[6] = u[1];\r\n result[7] = 0.0;\r\n result[8] = s[2];\r\n result[9] = f[2];\r\n result[10] = u[2];\r\n result[11] = 0.0;\r\n result[12] = 0;\r\n result[13] = 0;\r\n result[14] = 0;\r\n result[15] = 1.0;\r\n\r\n this._distance = vec3.distance(center, eye);\r\n };\r\n })(),\r\n\r\n setEnable: function(enabled) {\r\n this.getInputManager().setEnable(Groups.ORBIT_MANIPULATOR, enabled);\r\n },\r\n\r\n computeHomePosition: function(boundStrategy) {\r\n var bs = this.getHomeBoundingSphere(boundStrategy);\r\n if (!bs || !bs.valid()) return;\r\n\r\n this.setDistance(this.getHomeDistance(bs));\r\n this.setTarget(bs.center());\r\n },\r\n\r\n getHomePosition: function() {\r\n if (this._node !== undefined) {\r\n var target = this._target;\r\n var distance = this.getDistance();\r\n\r\n this.computeEyePosition(target, distance, this._homePosition);\r\n }\r\n return this._homePosition;\r\n },\r\n\r\n setMinSpeed: function(s) {\r\n this._minSpeed = s;\r\n },\r\n getMinSpeed: function() {\r\n return this._minSpeed;\r\n },\r\n\r\n setDistance: function(d) {\r\n this._distance = d;\r\n },\r\n getDistance: function() {\r\n return this._distance;\r\n },\r\n\r\n getSpeedFactor: function() {\r\n return Math.max(this._distance, this._minSpeed);\r\n },\r\n computePan: (function() {\r\n var inv = mat4.create();\r\n var x = vec3.create();\r\n var y = vec3.create();\r\n return function(dx, dy) {\r\n var proj = this._camera.getProjectionMatrix();\r\n // modulate panning speed with verticalFov value\r\n // if it's an orthographic we don't change the panning speed\r\n // TODO : manipulators in osgjs don't support well true orthographic camera anyway because they\r\n // manage the view matrix (and you need to edit the projection matrix to 'zoom' for true ortho camera)\r\n var vFov = proj[15] === 1 ? 1.0 : 2.0 / proj[5];\r\n var speed = this.getSpeedFactor() * vFov;\r\n dy *= speed;\r\n dx *= speed;\r\n\r\n mat4.invert(inv, this._rotation);\r\n x[0] = inv[0];\r\n x[1] = inv[1];\r\n x[2] = inv[2];\r\n vec3.normalize(x, x);\r\n\r\n y[0] = inv[8];\r\n y[1] = inv[9];\r\n y[2] = inv[10];\r\n vec3.normalize(y, y);\r\n\r\n vec3.scale(x, x, -dx);\r\n vec3.scale(y, y, dy);\r\n vec3.add(this._target, this._target, x);\r\n vec3.add(this._target, this._target, y);\r\n };\r\n })(),\r\n computeRotation: (function() {\r\n var rightDir = vec3.fromValues(1.0, 0.0, 0.0);\r\n\r\n return function(dx, dy) {\r\n var prevPitch = Math.atan(-this._rotation[6] / this._rotation[5]);\r\n if (isNaN(prevPitch)) {\r\n prevPitch = 0.0;\r\n }\r\n var pitch = this._computePitch(prevPitch, dy);\r\n\r\n var deltaYaw = dx / 10.0;\r\n var previousYaw = Math.atan2(this._rotation[4], this._rotation[0]);\r\n var yaw = this._computeYaw(previousYaw, deltaYaw);\r\n mat4.fromRotation(this._rotation, -pitch, rightDir);\r\n mat4.rotate(this._rotation, this._rotation, -yaw, this._upz);\r\n };\r\n })(),\r\n\r\n _computePitch: function(prevPitch, dy) {\r\n var pitch = prevPitch + dy / 10.0;\r\n return Math.min(Math.max(pitch, this._limitPitchDown), this._limitPitchUp);\r\n },\r\n\r\n _computeYaw: function(previousYaw, deltaYaw) {\r\n var yaw = previousYaw + deltaYaw;\r\n var left = this._limitYawLeft;\r\n var right = this._limitYawRight;\r\n\r\n if (this._constrainYaw) {\r\n if (right < left) {\r\n if (yaw > Math.PI) {\r\n previousYaw -= TWO_PI;\r\n yaw -= TWO_PI;\r\n }\r\n if (yaw < -Math.PI) {\r\n previousYaw += TWO_PI;\r\n yaw += TWO_PI;\r\n }\r\n }\r\n\r\n if (deltaYaw === 0) {\r\n var isOutsideLimit = false;\r\n if (left > right) isOutsideLimit = yaw < left && yaw > right;\r\n else isOutsideLimit = yaw < left || yaw > right;\r\n if (isOutsideLimit)\r\n yaw = Math.abs(yaw - left) > Math.abs(yaw - right) ? right : left;\r\n }\r\n\r\n if (deltaYaw > 0.0 && lowerOrEqual(previousYaw, right) && yaw > right) {\r\n yaw = right;\r\n } else if (deltaYaw < 0.0 && lowerOrEqual(left, previousYaw) && yaw < left) {\r\n yaw = left;\r\n }\r\n }\r\n return yaw;\r\n },\r\n\r\n computeZoom: function(dz) {\r\n this.zoom(dz);\r\n },\r\n\r\n setAutoPushTarget: function(bool) {\r\n this._autoPushTarget = bool;\r\n },\r\n\r\n zoom: (function() {\r\n var dir = vec3.create();\r\n return function(ratio) {\r\n var newValue = this._distance + this.getSpeedFactor() * (ratio - 1.0);\r\n\r\n if (this._autoPushTarget && newValue < this._limitZoomIn) {\r\n // push the target instead of zooming on it\r\n vec3.sub(dir, this._target, this.getEyePosition(dir));\r\n vec3.normalize(dir, dir);\r\n vec3.scale(dir, dir, this._limitZoomIn - newValue);\r\n vec3.add(this._target, this._target, dir);\r\n }\r\n\r\n var min = this._constrainZoom ? this._limitZoomIn : MIN_ZOOM;\r\n var max = this._constrainZoom ? this._limitZoomOut : MAX_ZOOM;\r\n this._distance = Math.max(min, Math.min(max, newValue));\r\n };\r\n })(),\r\n\r\n getRotateInterpolator: function() {\r\n return this._rotate;\r\n },\r\n getPanInterpolator: function() {\r\n return this._pan;\r\n },\r\n getZoomInterpolator: function() {\r\n return this._zoom;\r\n },\r\n getTarget: function(target) {\r\n return vec3.copy(target, this._target);\r\n },\r\n getEyePosition: function(eye) {\r\n this.computeEyePosition(this._target, this._distance, eye);\r\n return eye;\r\n },\r\n\r\n computeEyePosition: (function() {\r\n var tmpDist = vec3.create();\r\n var tmpInverse = mat4.create();\r\n return function(target, distance, eye) {\r\n mat4.invert(tmpInverse, this._rotation);\r\n tmpDist[1] = distance;\r\n vec3.transformMat4(eye, tmpDist, tmpInverse);\r\n vec3.add(eye, target, eye);\r\n };\r\n })(),\r\n\r\n update: (function() {\r\n var eye = vec3.create();\r\n return function(nv) {\r\n var dt = nv.getFrameStamp().getDeltaTime();\r\n\r\n var delta;\r\n\r\n delta = this._rotate.update(dt);\r\n this.computeRotation(\r\n -delta[0] * this._rotationFactor * this._scaleMouseMotion,\r\n -delta[1] * this._rotationFactor * this._scaleMouseMotion\r\n );\r\n\r\n var panFactor = 0.002;\r\n delta = this._pan.update(dt);\r\n this.computePan(-delta[0] * panFactor, -delta[1] * panFactor);\r\n\r\n delta = this._zoom.update(dt);\r\n this.computeZoom(1.0 + delta[0] / 10.0);\r\n\r\n var target = this._target;\r\n var distance = this._distance;\r\n\r\n /* 1. Works but bypass other manipulators */\r\n // mat4.copy( this._inverseMatrix , this._vrMatrix );\r\n\r\n /* 2. Works but gets broken by other manipulators */\r\n mat4.invert(this._inverseMatrix, this._rotation);\r\n mat4.mul(this._inverseMatrix, this._vrMatrix, this._inverseMatrix);\r\n\r\n /* 3. Doesnt' work */\r\n // mat4.mul( this._vrMatrix, this._vrMatrix, this._rotation );\r\n // mat4.invert( this._inverseMatrix, this._vrMatrix );\r\n\r\n vec3.set(eye, 0.0, distance, 0.0);\r\n vec3.transformMat4(eye, eye, this._inverseMatrix);\r\n\r\n mat4.lookAt(this._inverseMatrix, vec3.add(eye, target, eye), target, this._upz);\r\n };\r\n })(),\r\n\r\n setPoseVR: function(q /*, pos*/) {\r\n mat4.fromQuat(this._vrMatrix, q);\r\n // this._vrMatrix[ 12 ] = pos[ 0 ];\r\n // this._vrMatrix[ 13 ] = pos[ 1 ];\r\n // this._vrMatrix[ 14 ] = pos[ 2 ];\r\n }\r\n }),\r\n 'osgGA',\r\n 'OrbitManipulator'\r\n);\r\n\r\nOrbitManipulator.DeviceOrientation = OrbitManipulatorDeviceOrientationController;\r\nOrbitManipulator.GamePad = OrbitManipulatorGamePadController;\r\nOrbitManipulator.Hammer = OrbitManipulatorHammerController;\r\nOrbitManipulator.WebVR = OrbitManipulatorWebVRController;\r\nOrbitManipulator.StandardMouseKeyboard = OrbitManipulatorStandardMouseKeyboardController;\r\n\r\nexport default OrbitManipulator;\r\n","// jshint ignore: start\r\n\r\n/*\r\n ** Copyright (c) 2012 The Khronos Group Inc.\r\n **\r\n ** Permission is hereby granted, free of charge, to any person obtaining a\r\n ** copy of this software and/or associated documentation files (the\r\n ** \"Materials\"), to deal in the Materials without restriction, including\r\n ** without limitation the rights to use, copy, modify, merge, publish,\r\n ** distribute, sublicense, and/or sell copies of the Materials, and to\r\n ** permit persons to whom the Materials are furnished to do so, subject to\r\n ** the following conditions:\r\n **\r\n ** The above copyright notice and this permission notice shall be included\r\n ** in all copies or substantial portions of the Materials.\r\n **\r\n ** THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\r\n */\r\n\r\n// Various functions for helping debug WebGL apps.\r\n\r\nvar WebGLDebugUtils = (function() {\r\n /**\r\n * Wrapped logging function.\r\n * @param {string} msg Message to log.\r\n */\r\n var log = function(msg) {\r\n if (window.console && window.console.log) {\r\n window.console.log(msg);\r\n }\r\n };\r\n\r\n /**\r\n * Wrapped error logging function.\r\n * @param {string} msg Message to log.\r\n */\r\n var error = function(msg) {\r\n if (window.console && window.console.error) {\r\n window.console.error(msg);\r\n } else {\r\n log(msg);\r\n }\r\n };\r\n\r\n /**\r\n * Which arguments are enums based on the number of arguments to the function.\r\n * So\r\n * 'texImage2D': {\r\n * 9: { 0:true, 2:true, 6:true, 7:true },\r\n * 6: { 0:true, 2:true, 3:true, 4:true },\r\n * },\r\n *\r\n * means if there are 9 arguments then 6 and 7 are enums, if there are 6\r\n * arguments 3 and 4 are enums\r\n *\r\n * @type {!Object.