csyjk 1.1.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. package/.babelrc +7 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/xx.iml +12 -0
  4. package/dist/app.js +43 -0
  5. package/{index.html → dist/index.html} +0 -0
  6. package/{style.css → dist/style.css} +1 -1
  7. package/package.json +40 -5
  8. package/public/gltf.js +2241 -0
  9. package/public/index.html +10 -0
  10. package/src/index.js +3 -0
  11. package/src/lib/gltf/assets/check.jpg +0 -0
  12. package/src/lib/gltf/assets/iconfont/iconfont.css +358 -0
  13. package/src/lib/gltf/assets/iconfont/iconfont.eot +0 -0
  14. package/src/lib/gltf/assets/iconfont/iconfont.js +1 -0
  15. package/src/lib/gltf/assets/iconfont/iconfont.json +604 -0
  16. package/src/lib/gltf/assets/iconfont/iconfont.svg +189 -0
  17. package/src/lib/gltf/assets/iconfont/iconfont.ttf +0 -0
  18. package/src/lib/gltf/assets/iconfont/iconfont.woff +0 -0
  19. package/src/lib/gltf/assets/iconfont/iconfont.woff2 +0 -0
  20. package/src/lib/gltf/assets/yjkkit-sdk/index.js +0 -0
  21. package/src/lib/gltf/assets/yjkkit-sdk/package.json +15 -0
  22. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/ContextMenu.js +863 -0
  23. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/index.js +1 -0
  24. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/index.js +1 -0
  25. package/src/lib/gltf/assets/yjkkit-sdk/src/index.js +3 -0
  26. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +462 -0
  27. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +279 -0
  28. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +262 -0
  29. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/index.js +1 -0
  30. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/Annotation.js +362 -0
  31. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +575 -0
  32. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/index.js +1 -0
  33. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
  34. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/index.js +1 -0
  35. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +777 -0
  36. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/index.js +1 -0
  37. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +525 -0
  38. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +242 -0
  39. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +297 -0
  40. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/index.js +1 -0
  41. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/FastNavPlugin.js +345 -0
  42. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/index.js +1 -0
  43. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +122 -0
  44. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +462 -0
  45. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFPerformanceModelLoader.js +508 -0
  46. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFSceneGraphLoader.js +922 -0
  47. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/index.js +2 -0
  48. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/CubeTextureCanvas.js +273 -0
  49. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/NavCubePlugin.js +687 -0
  50. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/index.js +1 -0
  51. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
  52. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
  53. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/index.js +1 -0
  54. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
  55. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +273 -0
  56. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
  57. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/index.js +2 -0
  58. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
  59. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
  60. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
  61. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +403 -0
  62. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/index.js +1 -0
  63. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
  64. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/index.js +1 -0
  65. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +77 -0
  66. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/Storey.js +61 -0
  67. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
  68. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +822 -0
  69. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/index.js +1 -0
  70. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/ModelTreeView.js +888 -0
  71. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewNode.js +88 -0
  72. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewPlugin.js +624 -0
  73. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/index.js +1 -0
  74. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/modelValidation.js +87 -0
  75. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
  76. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/index.js +1 -0
  77. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +78 -0
  78. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +847 -0
  79. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/index.js +2 -0
  80. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +167 -0
  81. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +228 -0
  82. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +220 -0
  83. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +279 -0
  84. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +244 -0
  85. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
  86. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +426 -0
  87. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +479 -0
  88. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +6818 -0
  89. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
  90. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
  91. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/index.js +1 -0
  92. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
  93. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
  94. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
  95. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
  96. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
  97. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
  98. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
  99. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
  100. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
  101. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
  102. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/index.js +17 -0
  103. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/culling/ObjectCullStates.js +205 -0
  104. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Dot.js +78 -0
  105. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Label.js +97 -0
  106. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Wire.js +95 -0
  107. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Plugin.js +112 -0
  108. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Viewer.js +372 -0
  109. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/index.js +3 -0
  110. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaultColors.js +162 -0
  111. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaults.js +39 -0
  112. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaModel.js +145 -0
  113. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaObject.js +215 -0
  114. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaScene.js +311 -0
  115. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/CameraControl.js +1669 -0
  116. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/cc.js +0 -0
  117. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
  118. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
  119. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PickController.js +193 -0
  120. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +289 -0
  121. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/cu.js +0 -0
  122. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
  123. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +186 -0
  124. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
  125. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +439 -0
  126. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +361 -0
  127. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +258 -0
  128. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +197 -0
  129. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/mouspan.js +498 -0
  130. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Component.js +908 -0
  131. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Entity.js +475 -0
  132. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
  133. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/index.js +1 -0
  134. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/PerformanceModel.js +2623 -0
  135. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/index.js +1 -0
  136. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ENTITY_FLAGS.js +21 -0
  137. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceMesh.js +262 -0
  138. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceNode.js +697 -0
  139. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/RENDER_PASSES.js +34 -0
  140. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ScratchMemory.js +63 -0
  141. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/compression.js +183 -0
  142. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingBuffer.js +33 -0
  143. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingLayer.js +736 -0
  144. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingRenderers.js +68 -0
  145. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingColorRenderer.js +295 -0
  146. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +327 -0
  147. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingLayer.js +698 -0
  148. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingRenderers.js +68 -0
  149. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingColorRenderer.js +364 -0
  150. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +356 -0
  151. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingBuffer.js +33 -0
  152. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingLayer.js +776 -0
  153. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingRenderers.js +113 -0
  154. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingColorRenderer.js +340 -0
  155. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +312 -0
  156. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +343 -0
  157. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +331 -0
  158. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingShadowRenderer.js +242 -0
  159. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +348 -0
  160. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingLayer.js +737 -0
  161. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingRenderers.js +143 -0
  162. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingColorRenderer.js +373 -0
  163. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +366 -0
  164. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +370 -0
  165. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +386 -0
  166. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +376 -0
  167. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +293 -0
  168. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +382 -0
  169. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingBuffer.js +37 -0
  170. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingLayer.js +1017 -0
  171. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingRenderers.js +246 -0
  172. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorQualityRenderer.js +809 -0
  173. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +504 -0
  174. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +297 -0
  175. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +300 -0
  176. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +322 -0
  177. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +311 -0
  178. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +291 -0
  179. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +319 -0
  180. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +305 -0
  181. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +300 -0
  182. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +242 -0
  183. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +323 -0
  184. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingLayer.js +969 -0
  185. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingRenderers.js +246 -0
  186. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorQualityRenderer.js +859 -0
  187. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +557 -0
  188. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +341 -0
  189. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +338 -0
  190. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +356 -0
  191. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +354 -0
  192. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +329 -0
  193. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +358 -0
  194. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +349 -0
  195. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +363 -0
  196. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +284 -0
  197. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +354 -0
  198. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Camera.js +880 -0
  199. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
  200. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPath.js +194 -0
  201. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
  202. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CustomProjection.js +149 -0
  203. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Frustum.js +316 -0
  204. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Ortho.js +286 -0
  205. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Perspective.js +302 -0
  206. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/index.js +2 -0
  207. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Canvas.js +464 -0
  208. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Spinner.js +323 -0
  209. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/core.js +234 -0
  210. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/Geometry.js +33 -0
  211. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/ReadableGeometry.js +689 -0
  212. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/VBOGeometry.js +327 -0
  213. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
  214. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
  215. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
  216. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
  217. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
  218. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
  219. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
  220. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
  221. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/index.js +8 -0
  222. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/index.js +4 -0
  223. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/index.js +2 -0
  224. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
  225. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
  226. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/index.js +18 -0
  227. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/input/Input.js +1475 -0
  228. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/canvas2image.js +218 -0
  229. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/k3d.js +1032 -0
  230. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/AmbientLight.js +175 -0
  231. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/CubeTexture.js +156 -0
  232. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/DirLight.js +314 -0
  233. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Light.js +29 -0
  234. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/LightMap.js +77 -0
  235. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/PointLight.js +395 -0
  236. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/ReflectionMap.js +79 -0
  237. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Shadow.js +138 -0
  238. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/index.js +5 -0
  239. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/Marker.js +382 -0
  240. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/index.js +1 -0
  241. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EdgeMaterial.js +359 -0
  242. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EmphasisMaterial.js +577 -0
  243. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Fresnel.js +222 -0
  244. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LambertMaterial.js +378 -0
  245. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LinesMaterial.js +169 -0
  246. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Material.js +39 -0
  247. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/MetallicMaterial.js +820 -0
  248. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PhongMaterial.js +860 -0
  249. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PointsMaterial.js +320 -0
  250. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/SpecularMaterial.js +807 -0
  251. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Texture.js +522 -0
  252. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/index.js +8 -0
  253. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/Frustum.js +118 -0
  254. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/buildEdgeIndices.js +162 -0
  255. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/geometryCompressionUtils.js +353 -0
  256. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/index.js +1 -0
  257. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/math.js +5302 -0
  258. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/rtcCoords.js +132 -0
  259. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/CameraMemento.js +200 -0
  260. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ModelMemento.js +272 -0
  261. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
  262. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/index.js +3 -0
  263. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/Mesh.js +2165 -0
  264. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawRenderer.js +978 -0
  265. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawShaderSource.js +1566 -0
  266. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +249 -0
  267. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +163 -0
  268. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +276 -0
  269. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +269 -0
  270. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/index.js +1 -0
  271. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +207 -0
  272. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +156 -0
  273. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshRenderer.js +210 -0
  274. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +146 -0
  275. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +186 -0
  276. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +120 -0
  277. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
  278. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +96 -0
  279. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/metriqs/Metriqs.js +259 -0
  280. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/Node.js +1356 -0
  281. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/index.js +1 -0
  282. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
  283. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Curve.js +183 -0
  284. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Path.js +239 -0
  285. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
  286. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/SplineCurve.js +133 -0
  287. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/index.js +5 -0
  288. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/postfx/SAO.js +547 -0
  289. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/scene/Scene.js +2481 -0
  290. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/SectionPlane.js +194 -0
  291. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/index.js +1 -0
  292. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/Skybox.js +119 -0
  293. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/index.js +1 -0
  294. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/stats.js +45 -0
  295. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Map.js +45 -0
  296. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Queue.js +56 -0
  297. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/index.js +2 -0
  298. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils.js +452 -0
  299. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/viewport/Viewport.js +212 -0
  300. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/ArrayBuf.js +121 -0
  301. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Attribute.js +23 -0
  302. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Drawable.js +270 -0
  303. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/FrameContext.js +259 -0
  304. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/PickResult.js +317 -0
  305. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Pickable.js +69 -0
  306. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Program.js +179 -0
  307. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderBuffer.js +315 -0
  308. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderFlags.js +203 -0
  309. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderState.js +40 -0
  310. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Renderer.js +1300 -0
  311. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Sampler.js +18 -0
  312. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Shader.js +49 -0
  313. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Texture2D.js +217 -0
  314. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
  315. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionTester.js +432 -0
  316. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +326 -0
  317. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +375 -0
  318. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/webglEnums.js +61 -0
  319. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webglInfo.js +48 -0
  320. package/src/lib/gltf/gltf.css +392 -0
  321. package/src/lib/gltf/gltf.js +2241 -0
  322. package/webpack.config.js +70 -0
  323. package/app.js +0 -43
@@ -0,0 +1,326 @@
1
+ import {Program} from "./../Program.js";
2
+ import {ArrayBuf} from "./../ArrayBuf.js";
3
+ import {math} from "../../math/math.js";
4
+ import {WEBGL_INFO} from "../../webglInfo.js";
5
+
6
+ const blurStdDev = 4;
7
+ const blurDepthCutoff = 0.01;
8
+ const KERNEL_RADIUS = 16;
9
+
10
+ const sampleOffsetsVert = new Float32Array(createSampleOffsets(KERNEL_RADIUS + 1, [0, 1]));
11
+ const sampleOffsetsHor = new Float32Array(createSampleOffsets(KERNEL_RADIUS + 1, [1, 0]));
12
+ const sampleWeights = new Float32Array(createSampleWeights(KERNEL_RADIUS + 1, blurStdDev));
13
+
14
+ const tempVec2a = new Float32Array(2);
15
+
16
+ /**
17
+ * SAO implementation inspired from previous SAO work in THREE.js by ludobaka / ludobaka.github.io and bhouston
18
+ * @private
19
+ */
20
+ class SAODepthLimitedBlurRenderer {
21
+
22
+ constructor(scene) {
23
+
24
+ this._scene = scene;
25
+
26
+ // The program
27
+
28
+ this._program = null;
29
+ this._programError = false;
30
+
31
+ // Variable locations
32
+
33
+ this._aPosition = null;
34
+ this._aUV = null;
35
+
36
+ this._uDepthTexture = "uDepthTexture";
37
+ this._uOcclusionTexture = "uOcclusionTexture";
38
+
39
+ this._uViewport = null;
40
+ this._uCameraNear = null;
41
+ this._uCameraFar = null;
42
+ this._uCameraProjectionMatrix = null;
43
+ this._uCameraInverseProjectionMatrix = null;
44
+
45
+ this._uScale = null;
46
+ this._uIntensity = null;
47
+ this._uBias = null;
48
+ this._uKernelRadius = null;
49
+ this._uMinResolution = null;
50
+
51
+ // VBOs
52
+
53
+ this._uvBuf = null;
54
+ this._positionsBuf = null;
55
+ this._indicesBuf = null;
56
+
57
+ this.init();
58
+ }
59
+
60
+ init() {
61
+
62
+ // Create program & VBOs, locate attributes and uniforms
63
+
64
+ const gl = this._scene.canvas.gl;
65
+
66
+ this._program = new Program(gl, {
67
+
68
+ vertex: [
69
+ `precision highp float;
70
+ precision highp int;
71
+
72
+ attribute vec3 aPosition;
73
+ attribute vec2 aUV;
74
+ uniform vec2 uViewport;
75
+ varying vec2 vUV;
76
+ varying vec2 vInvSize;
77
+ void main () {
78
+ vUV = aUV;
79
+ vInvSize = 1.0 / uViewport;
80
+ gl_Position = vec4(aPosition, 1.0);
81
+ }`],
82
+
83
+ fragment: [
84
+ `precision highp float;
85
+ precision highp int;
86
+
87
+ #define PI 3.14159265359
88
+ #define PI2 6.28318530718
89
+ #define EPSILON 1e-6
90
+
91
+ #define KERNEL_RADIUS ${KERNEL_RADIUS}
92
+
93
+ varying vec2 vUV;
94
+ varying vec2 vInvSize;
95
+
96
+ uniform sampler2D uDepthTexture;
97
+ uniform sampler2D uOcclusionTexture;
98
+
99
+ uniform float uCameraNear;
100
+ uniform float uCameraFar;
101
+ uniform float uDepthCutoff;
102
+
103
+ uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];
104
+ uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];
105
+
106
+ const float unpackDownscale = 255. / 256.;
107
+
108
+ const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );
109
+ const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. );
110
+
111
+ const float packUpscale = 256. / 255.;
112
+
113
+ const float shiftRights = 1. / 256.;
114
+
115
+ float unpackRGBAToFloat( const in vec4 v ) {
116
+ return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );
117
+ }
118
+
119
+ vec4 packFloatToRGBA( const in float v ) {
120
+ vec4 r = vec4( fract( v * packFactors ), v );
121
+ r.yzw -= r.xyz * shiftRights;
122
+ return r * packUpscale;
123
+ }
124
+
125
+ float viewZToOrthographicDepth( const in float viewZ) {
126
+ return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );
127
+ }
128
+
129
+ float orthographicDepthToViewZ( const in float linearClipZ) {
130
+ return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;
131
+ }
132
+
133
+ float viewZToPerspectiveDepth( const in float viewZ) {
134
+ return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );
135
+ }
136
+
137
+ float perspectiveDepthToViewZ( const in float invClipZ) {
138
+ return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );
139
+ }
140
+
141
+ float getDepth( const in vec2 screenPosition ) {`
142
+ + (WEBGL_INFO.SUPPORTED_EXTENSIONS["WEBGL_depth_texture"] ? `return texture2D(uDepthTexture, screenPosition).r;` : `return unpackRGBAToFloat(texture2D( uDepthTexture, screenPosition));`) +
143
+ `}
144
+
145
+ float getViewZ( const in float depth ) {
146
+ return perspectiveDepthToViewZ( depth );
147
+ }
148
+
149
+ void main() {
150
+
151
+ float depth = getDepth( vUV );
152
+ if( depth >= ( 1.0 - EPSILON ) ) {
153
+ discard;
154
+ }
155
+
156
+ float centerViewZ = -getViewZ( depth );
157
+ bool rBreak = false;
158
+ bool lBreak = false;
159
+
160
+ float weightSum = uSampleWeights[0];
161
+ float occlusionSum = unpackRGBAToFloat(texture2D( uOcclusionTexture, vUV )) * weightSum;
162
+
163
+ for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {
164
+
165
+ float sampleWeight = uSampleWeights[i];
166
+ vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;
167
+
168
+ vec2 sampleUV = vUV + sampleUVOffset;
169
+ float viewZ = -getViewZ( getDepth( sampleUV ) );
170
+
171
+ if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {
172
+ rBreak = true;
173
+ }
174
+
175
+ if( ! rBreak ) {
176
+ occlusionSum += unpackRGBAToFloat(texture2D( uOcclusionTexture, sampleUV )) * sampleWeight;
177
+ weightSum += sampleWeight;
178
+ }
179
+
180
+ sampleUV = vUV - sampleUVOffset;
181
+ viewZ = -getViewZ( getDepth( sampleUV ) );
182
+
183
+ if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {
184
+ lBreak = true;
185
+ }
186
+
187
+ if( ! lBreak ) {
188
+ occlusionSum += unpackRGBAToFloat(texture2D( uOcclusionTexture, sampleUV )) * sampleWeight;
189
+ weightSum += sampleWeight;
190
+ }
191
+ }
192
+
193
+ gl_FragColor = packFloatToRGBA(occlusionSum / weightSum);
194
+ }`]
195
+ });
196
+
197
+ if (this._program.errors) {
198
+ console.error(this._program.errors.join("\n"));
199
+ this._programError = true;
200
+ return;
201
+ }
202
+
203
+ const uv = new Float32Array([1, 1, 0, 1, 0, 0, 1, 0]);
204
+ const positions = new Float32Array([1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0]);
205
+ const indices = new Uint8Array([0, 1, 2, 0, 2, 3]);
206
+
207
+ this._positionsBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, positions, positions.length, 3, gl.STATIC_DRAW);
208
+ this._uvBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, uv, uv.length, 2, gl.STATIC_DRAW);
209
+ this._indicesBuf = new ArrayBuf(gl, gl.ELEMENT_ARRAY_BUFFER, indices, indices.length, 1, gl.STATIC_DRAW);
210
+
211
+ this._program.bind();
212
+
213
+ this._uViewport = this._program.getLocation("uViewport");
214
+
215
+ this._uCameraNear = this._program.getLocation("uCameraNear");
216
+ this._uCameraFar = this._program.getLocation("uCameraFar");
217
+
218
+ this._uDepthCutoff = this._program.getLocation("uDepthCutoff");
219
+
220
+ this._uSampleOffsets = gl.getUniformLocation(this._program.handle, "uSampleOffsets");
221
+ this._uSampleWeights = gl.getUniformLocation(this._program.handle, "uSampleWeights");
222
+
223
+ this._aPosition = this._program.getAttribute("aPosition");
224
+ this._aUV = this._program.getAttribute("aUV");
225
+ }
226
+
227
+ render(depthRenderBuffer, occlusionRenderBuffer, direction) {
228
+
229
+ if (this._programError) {
230
+ return;
231
+ }
232
+
233
+ if (!this._getInverseProjectMat) { // HACK: scene.camera not defined until render time
234
+ this._getInverseProjectMat = (() => {
235
+ let projMatDirty = true;
236
+ this._scene.camera.on("projMatrix", function () {
237
+ projMatDirty = true;
238
+ });
239
+ const inverseProjectMat = math.mat4();
240
+ return () => {
241
+ if (projMatDirty) {
242
+ math.inverseMat4(scene.camera.projMatrix, inverseProjectMat);
243
+ }
244
+ return inverseProjectMat;
245
+ }
246
+ })();
247
+ }
248
+
249
+ const gl = this._scene.canvas.gl;
250
+ const program = this._program;
251
+ const scene = this._scene;
252
+ const viewportWidth = gl.drawingBufferWidth;
253
+ const viewportHeight = gl.drawingBufferHeight;
254
+ const projectState = scene.camera.project._state;
255
+ const near = projectState.near;
256
+ const far = projectState.far;
257
+
258
+ gl.viewport(0, 0, viewportWidth, viewportHeight);
259
+ gl.clearColor(0, 0, 0, 1);
260
+ gl.enable(gl.DEPTH_TEST);
261
+ gl.disable(gl.BLEND);
262
+ gl.frontFace(gl.CCW);
263
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
264
+
265
+ program.bind();
266
+
267
+ tempVec2a[0] = viewportWidth;
268
+ tempVec2a[1] = viewportHeight;
269
+
270
+ gl.uniform2fv(this._uViewport, tempVec2a);
271
+ gl.uniform1f(this._uCameraNear, near);
272
+ gl.uniform1f(this._uCameraFar, far);
273
+
274
+ gl.uniform1f(this._uDepthCutoff, blurDepthCutoff);
275
+
276
+ if (direction === 0) {// Horizontal
277
+ gl.uniform2fv(this._uSampleOffsets, sampleOffsetsHor);
278
+ } else { // Vertical
279
+ gl.uniform2fv(this._uSampleOffsets, sampleOffsetsVert);
280
+ }
281
+
282
+ gl.uniform1fv(this._uSampleWeights, sampleWeights);
283
+
284
+ const depthTexture = WEBGL_INFO.SUPPORTED_EXTENSIONS["WEBGL_depth_texture"]
285
+ ? depthRenderBuffer.getDepthTexture()
286
+ : depthRenderBuffer.getTexture();
287
+
288
+ const occlusionTexture = occlusionRenderBuffer.getTexture();
289
+
290
+ program.bindTexture(this._uDepthTexture, depthTexture, 0);
291
+ program.bindTexture(this._uOcclusionTexture, occlusionTexture, 1);
292
+
293
+ this._aUV.bindArrayBuffer(this._uvBuf);
294
+ this._aPosition.bindArrayBuffer(this._positionsBuf);
295
+ this._indicesBuf.bind();
296
+
297
+ gl.drawElements(gl.TRIANGLES, this._indicesBuf.numItems, this._indicesBuf.itemType, 0);
298
+ }
299
+
300
+ destroy() {
301
+ this._program.destroy();
302
+ }
303
+ }
304
+
305
+ function createSampleWeights(kernelRadius, stdDev) {
306
+ const weights = [];
307
+ for (let i = 0; i <= kernelRadius; i++) {
308
+ weights.push(gaussian(i, stdDev));
309
+ }
310
+ return weights; // TODO: Optimize
311
+ }
312
+
313
+ function gaussian(x, stdDev) {
314
+ return Math.exp(-(x * x) / (2.0 * (stdDev * stdDev))) / (Math.sqrt(2.0 * Math.PI) * stdDev);
315
+ }
316
+
317
+ function createSampleOffsets(kernelRadius, uvIncrement) {
318
+ const offsets = [];
319
+ for (let i = 0; i <= kernelRadius; i++) {
320
+ offsets.push(uvIncrement[0] * i);
321
+ offsets.push(uvIncrement[1] * i);
322
+ }
323
+ return offsets;
324
+ }
325
+
326
+ export {SAODepthLimitedBlurRenderer};
@@ -0,0 +1,375 @@
1
+ import {Program} from "./../Program.js";
2
+ import {ArrayBuf} from "./../ArrayBuf.js";
3
+ import {math} from "../../math/math.js";
4
+ import {WEBGL_INFO} from "../../webglInfo.js";
5
+
6
+ const tempVec2 = math.vec2();
7
+
8
+ /**
9
+ * SAO implementation inspired from previous SAO work in THREE.js by ludobaka / ludobaka.github.io and bhouston
10
+ * @private
11
+ */
12
+ class SAOOcclusionRenderer {
13
+
14
+ constructor(scene) {
15
+
16
+ this._scene = scene;
17
+
18
+ this._numSamples = null;
19
+
20
+ // The program
21
+
22
+ this._program = null;
23
+ this._programError = false;
24
+
25
+ // Variable locations
26
+
27
+ this._aPosition = null;
28
+ this._aUV = null;
29
+
30
+ this._uDepthTexture = "uDepthTexture";
31
+
32
+ this._uCameraNear = null;
33
+ this._uCameraFar = null;
34
+ this._uCameraProjectionMatrix = null;
35
+ this._uCameraInverseProjectionMatrix = null;
36
+
37
+ this._uScale = null;
38
+ this._uIntensity = null;
39
+ this._uBias = null;
40
+ this._uKernelRadius = null;
41
+ this._uMinResolution = null;
42
+ this._uRandomSeed = null;
43
+
44
+ // VBOs
45
+
46
+ this._uvBuf = null;
47
+ this._positionsBuf = null;
48
+ this._indicesBuf = null;
49
+ }
50
+
51
+ render(depthRenderBuffer) {
52
+
53
+ this._build();
54
+
55
+ if (this._programError) {
56
+ return;
57
+ }
58
+
59
+ if (!this._getInverseProjectMat) { // HACK: scene.camera not defined until render time
60
+ this._getInverseProjectMat = (() => {
61
+ let projMatDirty = true;
62
+ this._scene.camera.on("projMatrix", function () {
63
+ projMatDirty = true;
64
+ });
65
+ const inverseProjectMat = math.mat4();
66
+ return () => {
67
+ if (projMatDirty) {
68
+ math.inverseMat4(scene.camera.projMatrix, inverseProjectMat);
69
+ }
70
+ return inverseProjectMat;
71
+ }
72
+ })();
73
+ }
74
+
75
+ const gl = this._scene.canvas.gl;
76
+ const program = this._program;
77
+ const scene = this._scene;
78
+ const sao = scene.sao;
79
+ const viewportWidth = gl.drawingBufferWidth;
80
+ const viewportHeight = gl.drawingBufferHeight;
81
+ const projectState = scene.camera.project._state;
82
+ const near = projectState.near;
83
+ const far = projectState.far;
84
+ const projectionMatrix = projectState.matrix;
85
+ const inverseProjectionMatrix = this._getInverseProjectMat();
86
+ const randomSeed = Math.random();
87
+ const perspective = (scene.camera.projection === "perspective");
88
+
89
+ tempVec2[0] = viewportWidth;
90
+ tempVec2[1] = viewportHeight;
91
+
92
+ gl.getExtension("OES_standard_derivatives");
93
+
94
+ gl.viewport(0, 0, viewportWidth, viewportHeight);
95
+ gl.clearColor(0, 0, 0, 1);
96
+ gl.disable(gl.DEPTH_TEST);
97
+ gl.disable(gl.BLEND);
98
+ gl.frontFace(gl.CCW);
99
+ gl.clear(gl.COLOR_BUFFER_BIT);
100
+
101
+ program.bind();
102
+
103
+ gl.uniform1f(this._uCameraNear, near);
104
+ gl.uniform1f(this._uCameraFar, far);
105
+
106
+ gl.uniformMatrix4fv(this._uCameraProjectionMatrix, false, projectionMatrix);
107
+ gl.uniformMatrix4fv(this._uCameraInverseProjectionMatrix, false, inverseProjectionMatrix);
108
+
109
+ gl.uniform1i(this._uPerspective, perspective);
110
+
111
+ gl.uniform1f(this._uScale, sao.scale * (far / 5));
112
+ gl.uniform1f(this._uIntensity, sao.intensity);
113
+ gl.uniform1f(this._uBias, sao.bias);
114
+ gl.uniform1f(this._uKernelRadius, sao.kernelRadius);
115
+ gl.uniform1f(this._uMinResolution, sao.minResolution);
116
+ gl.uniform2fv(this._uViewport, tempVec2);
117
+ gl.uniform1f(this._uRandomSeed, randomSeed);
118
+
119
+ const depthTexture = WEBGL_INFO.SUPPORTED_EXTENSIONS["WEBGL_depth_texture"]
120
+ ? depthRenderBuffer.getDepthTexture()
121
+ : depthRenderBuffer.getTexture();
122
+
123
+ program.bindTexture(this._uDepthTexture, depthTexture, 0);
124
+
125
+ this._aUV.bindArrayBuffer(this._uvBuf);
126
+ this._aPosition.bindArrayBuffer(this._positionsBuf);
127
+ this._indicesBuf.bind();
128
+
129
+ gl.drawElements(gl.TRIANGLES, this._indicesBuf.numItems, this._indicesBuf.itemType, 0);
130
+ }
131
+
132
+ _build() {
133
+
134
+ let dirty = false;
135
+
136
+ const sao = this._scene.sao;
137
+
138
+ if (sao.numSamples !== this._numSamples) {
139
+ this._numSamples = Math.floor(sao.numSamples);
140
+ dirty = true;
141
+ }
142
+
143
+ if (!dirty) {
144
+ return;
145
+ }
146
+
147
+ const gl = this._scene.canvas.gl;
148
+
149
+ if (this._program) {
150
+ this._program.destroy();
151
+ this._program = null;
152
+ }
153
+
154
+ this._program = new Program(gl, {
155
+
156
+ vertex: [`precision highp float;
157
+ precision highp int;
158
+
159
+ attribute vec3 aPosition;
160
+ attribute vec2 aUV;
161
+
162
+ varying vec2 vUV;
163
+
164
+ void main () {
165
+ gl_Position = vec4(aPosition, 1.0);
166
+ vUV = aUV;
167
+ }`],
168
+
169
+ fragment: [
170
+ `#extension GL_OES_standard_derivatives : require
171
+ precision highp float;
172
+ precision highp int;
173
+
174
+ #define NORMAL_TEXTURE 0
175
+ #define PI 3.14159265359
176
+ #define PI2 6.28318530718
177
+ #define EPSILON 1e-6
178
+ #define NUM_SAMPLES ${this._numSamples}
179
+ #define NUM_RINGS 4
180
+
181
+ varying vec2 vUV;
182
+
183
+ uniform sampler2D uDepthTexture;
184
+
185
+ uniform float uCameraNear;
186
+ uniform float uCameraFar;
187
+ uniform mat4 uProjectMatrix;
188
+ uniform mat4 uInverseProjectMatrix;
189
+
190
+ uniform bool uPerspective;
191
+
192
+ uniform float uScale;
193
+ uniform float uIntensity;
194
+ uniform float uBias;
195
+ uniform float uKernelRadius;
196
+ uniform float uMinResolution;
197
+ uniform vec2 uViewport;
198
+ uniform float uRandomSeed;
199
+
200
+ float pow2( const in float x ) { return x*x; }
201
+
202
+ highp float rand( const in vec2 uv ) {
203
+ const highp float a = 12.9898, b = 78.233, c = 43758.5453;
204
+ highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
205
+ return fract(sin(sn) * c);
206
+ }
207
+
208
+ vec3 packNormalToRGB( const in vec3 normal ) {
209
+ return normalize( normal ) * 0.5 + 0.5;
210
+ }
211
+
212
+ vec3 unpackRGBToNormal( const in vec3 rgb ) {
213
+ return 2.0 * rgb.xyz - 1.0;
214
+ }
215
+
216
+ const float packUpscale = 256. / 255.;
217
+ const float unpackDownScale = 255. / 256.;
218
+
219
+ const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );
220
+ const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );
221
+
222
+ const float shiftRights = 1. / 256.;
223
+
224
+ vec4 packFloatToRGBA( const in float v ) {
225
+ vec4 r = vec4( fract( v * packFactors ), v );
226
+ r.yzw -= r.xyz * shiftRights;
227
+ return r * packUpscale;
228
+ }
229
+
230
+ float unpackRGBAToFloat( const in vec4 v ) {
231
+ return dot( floor( v * 255.0 + 0.5 ) / 255.0, unPackFactors );
232
+ }
233
+
234
+ float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {
235
+ return ( near * far ) / ( ( far - near ) * invClipZ - far );
236
+ }
237
+
238
+ float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {
239
+ return linearClipZ * ( near - far ) - near;
240
+ }
241
+
242
+ float getDepth( const in vec2 screenPosition ) {`
243
+ + (WEBGL_INFO.SUPPORTED_EXTENSIONS["WEBGL_depth_texture"] ? `return texture2D(uDepthTexture, screenPosition).r;` : `return unpackRGBAToFloat(texture2D( uDepthTexture, screenPosition));`) +
244
+ `}
245
+
246
+ float getViewZ( const in float depth ) {
247
+ if (uPerspective) {
248
+ return perspectiveDepthToViewZ( depth, uCameraNear, uCameraFar );
249
+ } else {
250
+ return orthographicDepthToViewZ( depth, uCameraNear, uCameraFar );
251
+ }
252
+ }
253
+
254
+ vec3 getViewPos( const in vec2 screenPos, const in float depth, const in float viewZ ) {
255
+ float clipW = uProjectMatrix[2][3] * viewZ + uProjectMatrix[3][3];
256
+ vec4 clipPosition = vec4( ( vec3( screenPos, depth ) - 0.5 ) * 2.0, 1.0 );
257
+ clipPosition *= clipW;
258
+ return ( uInverseProjectMatrix * clipPosition ).xyz;
259
+ }
260
+
261
+ vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPos ) {
262
+ return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );
263
+ }
264
+
265
+ float scaleDividedByCameraFar;
266
+ float minResolutionMultipliedByCameraFar;
267
+
268
+ float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {
269
+ vec3 viewDelta = sampleViewPosition - centerViewPosition;
270
+ float viewDistance = length( viewDelta );
271
+ float scaledScreenDistance = scaleDividedByCameraFar * viewDistance;
272
+ return max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - uBias) / (1.0 + pow2( scaledScreenDistance ) );
273
+ }
274
+
275
+ const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );
276
+ const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );
277
+
278
+ float getAmbientOcclusion( const in vec3 centerViewPosition ) {
279
+
280
+ scaleDividedByCameraFar = uScale / uCameraFar;
281
+ minResolutionMultipliedByCameraFar = uMinResolution * uCameraFar;
282
+ vec3 centerViewNormal = getViewNormal( centerViewPosition, vUV );
283
+
284
+ float angle = rand( vUV + uRandomSeed ) * PI2;
285
+ vec2 radius = vec2( uKernelRadius * INV_NUM_SAMPLES ) / uViewport;
286
+ vec2 radiusStep = radius;
287
+
288
+ float occlusionSum = 0.0;
289
+ float weightSum = 0.0;
290
+
291
+ for( int i = 0; i < NUM_SAMPLES; i ++ ) {
292
+ vec2 sampleUv = vUV + vec2( cos( angle ), sin( angle ) ) * radius;
293
+ radius += radiusStep;
294
+ angle += ANGLE_STEP;
295
+
296
+ float sampleDepth = getDepth( sampleUv );
297
+ if( sampleDepth >= ( 1.0 - EPSILON ) ) {
298
+ continue;
299
+ }
300
+
301
+ float sampleViewZ = getViewZ( sampleDepth );
302
+ vec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );
303
+ occlusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );
304
+ weightSum += 1.0;
305
+ }
306
+
307
+ if( weightSum == 0.0 ) discard;
308
+
309
+ return occlusionSum * ( uIntensity / weightSum );
310
+ }
311
+
312
+ void main() {
313
+
314
+ float centerDepth = getDepth( vUV );
315
+
316
+ if( centerDepth >= ( 1.0 - EPSILON ) ) {
317
+ discard;
318
+ }
319
+
320
+ float centerViewZ = getViewZ( centerDepth );
321
+ vec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );
322
+
323
+ float ambientOcclusion = getAmbientOcclusion( viewPosition );
324
+
325
+ gl_FragColor = packFloatToRGBA( 1.0- ambientOcclusion );
326
+ }`]
327
+ });
328
+
329
+ if (this._program.errors) {
330
+ console.error(this._program.errors.join("\n"));
331
+ this._programError = true;
332
+ return;
333
+ }
334
+
335
+ const uv = new Float32Array([1, 1, 0, 1, 0, 0, 1, 0]);
336
+ const positions = new Float32Array([1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0]);
337
+ const indices = new Uint8Array([0, 1, 2, 0, 2, 3]);
338
+
339
+ this._positionsBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, positions, positions.length, 3, gl.STATIC_DRAW);
340
+ this._uvBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, uv, uv.length, 2, gl.STATIC_DRAW);
341
+ this._indicesBuf = new ArrayBuf(gl, gl.ELEMENT_ARRAY_BUFFER, indices, indices.length, 1, gl.STATIC_DRAW);
342
+
343
+ this._program.bind();
344
+
345
+ this._uCameraNear = this._program.getLocation("uCameraNear");
346
+ this._uCameraFar = this._program.getLocation("uCameraFar");
347
+
348
+ this._uCameraProjectionMatrix = this._program.getLocation("uProjectMatrix");
349
+ this._uCameraInverseProjectionMatrix = this._program.getLocation("uInverseProjectMatrix");
350
+
351
+ this._uPerspective = this._program.getLocation("uPerspective");
352
+
353
+ this._uScale = this._program.getLocation("uScale");
354
+ this._uIntensity = this._program.getLocation("uIntensity");
355
+ this._uBias = this._program.getLocation("uBias");
356
+ this._uKernelRadius = this._program.getLocation("uKernelRadius");
357
+ this._uMinResolution = this._program.getLocation("uMinResolution");
358
+ this._uViewport = this._program.getLocation("uViewport");
359
+ this._uRandomSeed = this._program.getLocation("uRandomSeed");
360
+
361
+ this._aPosition = this._program.getAttribute("aPosition");
362
+ this._aUV = this._program.getAttribute("aUV");
363
+
364
+ this._dirty = false;
365
+ }
366
+
367
+ destroy() {
368
+ if (this._program) {
369
+ this._program.destroy();
370
+ this._program = null;
371
+ }
372
+ }
373
+ }
374
+
375
+ export {SAOOcclusionRenderer};