viral-viewer-2 6.2.7 → 6.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/LICENSE +5 -52
  2. package/dist/components/animation/viral-animation.js +71 -0
  3. package/dist/components/animation/viral-animation.js.map +1 -0
  4. package/dist/components/bvh/viral-bvh.js +19 -0
  5. package/dist/components/bvh/viral-bvh.js.map +1 -0
  6. package/dist/components/camera/viral-camera.d.ts +1 -1
  7. package/dist/components/camera/viral-camera.js +207 -0
  8. package/dist/components/camera/viral-camera.js.map +1 -0
  9. package/dist/components/centralized-event-handler/viral-centralized-event-handler.d.ts +7 -0
  10. package/dist/components/centralized-event-handler/viral-centralized-event-handler.js +47 -0
  11. package/dist/components/centralized-event-handler/viral-centralized-event-handler.js.map +1 -0
  12. package/dist/components/compress/compress.processor.d.ts +4 -0
  13. package/dist/components/compress/compress.processor.js +29 -0
  14. package/dist/components/compress/compress.processor.js.map +1 -0
  15. package/dist/components/compress/viral-compress.processor.js +13 -0
  16. package/dist/components/compress/viral-compress.processor.js.map +1 -0
  17. package/dist/components/context-menu/viral-context-menu.d.ts +17 -0
  18. package/dist/components/context-menu/viral-context-menu.js +74 -0
  19. package/dist/components/context-menu/viral-context-menu.js.map +1 -0
  20. package/dist/components/custom-objects/index.js +6 -0
  21. package/dist/components/custom-objects/index.js.map +1 -0
  22. package/dist/components/custom-objects/viral-instanced-mesh.d.ts +1 -1
  23. package/dist/components/custom-objects/viral-instanced-mesh.js +203 -0
  24. package/dist/components/custom-objects/viral-instanced-mesh.js.map +1 -0
  25. package/dist/components/custom-objects/viral-mesh.d.ts +9 -0
  26. package/dist/components/custom-objects/viral-mesh.js +25 -0
  27. package/dist/components/custom-objects/viral-mesh.js.map +1 -0
  28. package/dist/components/data-manager/viral-data-manager.js +35 -0
  29. package/dist/components/data-manager/viral-data-manager.js.map +1 -0
  30. package/dist/components/event-handler/base/event-dispatcher.js +35 -0
  31. package/dist/components/event-handler/base/event-dispatcher.js.map +1 -0
  32. package/dist/components/event-handler/keyboard/viral-keyboard.js +78 -0
  33. package/dist/components/event-handler/keyboard/viral-keyboard.js.map +1 -0
  34. package/dist/components/event-handler/mouse/viral-mouse.js +239 -0
  35. package/dist/components/event-handler/mouse/viral-mouse.js.map +1 -0
  36. package/dist/components/event-handler/viral-centralized-event-handler.d.ts +2 -0
  37. package/dist/components/event-handler/viral-centralized-event-handler.js +186 -0
  38. package/dist/components/event-handler/viral-centralized-event-handler.js.map +1 -0
  39. package/dist/components/event-handler/viral-lifecycle-event-handler.js +55 -0
  40. package/dist/components/event-handler/viral-lifecycle-event-handler.js.map +1 -0
  41. package/dist/components/keyboard/viral-keyboard.d.ts +17 -0
  42. package/dist/components/keyboard/viral-keyboard.js +76 -0
  43. package/dist/components/keyboard/viral-keyboard.js.map +1 -0
  44. package/dist/components/loader/viral-point-cloud.loader.js +33 -0
  45. package/dist/components/loader/viral-point-cloud.loader.js.map +1 -0
  46. package/dist/components/loader/viral-revit.loader.d.ts +13 -1
  47. package/dist/components/loader/viral-revit.loader.js +339 -0
  48. package/dist/components/loader/viral-revit.loader.js.map +1 -0
  49. package/dist/components/loader/viral-three.loader.js +20 -0
  50. package/dist/components/loader/viral-three.loader.js.map +1 -0
  51. package/dist/components/loader/viral-viewer-point-cloud.loader.d.ts +16 -0
  52. package/dist/components/loader/viral-viewer-point-cloud.loader.js +33 -0
  53. package/dist/components/loader/viral-viewer-point-cloud.loader.js.map +1 -0
  54. package/dist/components/loader/viral-viewer-revit.loader.d.ts +13 -0
  55. package/dist/components/loader/viral-viewer-revit.loader.js +124 -0
  56. package/dist/components/loader/viral-viewer-revit.loader.js.map +1 -0
  57. package/dist/components/loader/viral.loader.js +16 -0
  58. package/dist/components/loader/viral.loader.js.map +1 -0
  59. package/dist/components/material/viral-material-manager.js +60 -0
  60. package/dist/components/material/viral-material-manager.js.map +1 -0
  61. package/dist/components/mouse/viral-mouse.d.ts +31 -0
  62. package/dist/components/mouse/viral-mouse.js +234 -0
  63. package/dist/components/mouse/viral-mouse.js.map +1 -0
  64. package/dist/components/navigation-cube/components/cube-camera.d.ts +15 -0
  65. package/dist/components/navigation-cube/components/cube-camera.js +74 -0
  66. package/dist/components/navigation-cube/components/cube-camera.js.map +1 -0
  67. package/dist/components/navigation-cube/components/cube-renderer.d.ts +9 -0
  68. package/dist/components/navigation-cube/components/cube-renderer.js +31 -0
  69. package/dist/components/navigation-cube/components/cube-renderer.js.map +1 -0
  70. package/dist/components/navigation-cube/components/cube-scene.d.ts +13 -0
  71. package/dist/components/navigation-cube/components/cube-scene.js +546 -0
  72. package/dist/components/navigation-cube/components/cube-scene.js.map +1 -0
  73. package/dist/components/navigation-cube/components/cube.mouse.d.ts +9 -0
  74. package/dist/components/navigation-cube/components/cube.mouse.js +109 -0
  75. package/dist/components/navigation-cube/components/cube.mouse.js.map +1 -0
  76. package/dist/components/navigation-cube/viral-navigation-cube.d.ts +16 -0
  77. package/dist/components/navigation-cube/viral-navigation-cube.js +50 -0
  78. package/dist/components/navigation-cube/viral-navigation-cube.js.map +1 -0
  79. package/dist/components/post-processing/ambient-occlusion-effect.d.ts +13 -0
  80. package/dist/components/post-processing/ambient-occlusion-effect.js +33 -0
  81. package/dist/components/post-processing/ambient-occlusion-effect.js.map +1 -0
  82. package/dist/components/post-processing/bloom-effect.d.ts +11 -0
  83. package/dist/components/post-processing/bloom-effect.js +29 -0
  84. package/dist/components/post-processing/bloom-effect.js.map +1 -0
  85. package/dist/components/post-processing/outline-effect.d.ts +13 -0
  86. package/dist/components/post-processing/outline-effect.js +33 -0
  87. package/dist/components/post-processing/outline-effect.js.map +1 -0
  88. package/dist/components/post-processing/post-processing-renderer.js +46 -0
  89. package/dist/components/post-processing/post-processing-renderer.js.map +1 -0
  90. package/dist/components/renderer/viral-renderer.js +55 -0
  91. package/dist/components/renderer/viral-renderer.js.map +1 -0
  92. package/dist/components/scene/viral-scene.d.ts +1 -0
  93. package/dist/components/scene/viral-scene.js +131 -0
  94. package/dist/components/scene/viral-scene.js.map +1 -0
  95. package/dist/components/spinner/viral-spinner.d.ts +10 -0
  96. package/dist/components/spinner/viral-spinner.js +207 -0
  97. package/dist/components/spinner/viral-spinner.js.map +1 -0
  98. package/dist/components/stats/viral-stats.js +17 -0
  99. package/dist/components/stats/viral-stats.js.map +1 -0
  100. package/dist/components/tools/tools/viral-tool-ambient-occlusion.d.ts +7 -0
  101. package/dist/components/tools/tools/viral-tool-ambient-occlusion.js +16 -0
  102. package/dist/components/tools/tools/viral-tool-ambient-occlusion.js.map +1 -0
  103. package/dist/components/tools/tools/viral-tool-dark-mode.d.ts +7 -0
  104. package/dist/components/tools/tools/viral-tool-dark-mode.js +21 -0
  105. package/dist/components/tools/tools/viral-tool-dark-mode.js.map +1 -0
  106. package/dist/components/tools/tools/viral-tool-elevation.d.ts +11 -0
  107. package/dist/components/tools/tools/viral-tool-elevation.js +30 -0
  108. package/dist/components/tools/tools/viral-tool-elevation.js.map +1 -0
  109. package/dist/components/tools/tools/viral-tool-measure.d.ts +33 -0
  110. package/dist/components/tools/tools/viral-tool-measure.js +243 -0
  111. package/dist/components/tools/tools/viral-tool-measure.js.map +1 -0
  112. package/dist/components/tools/tools/viral-tool-sunlight.d.ts +7 -0
  113. package/dist/components/tools/tools/viral-tool-sunlight.js +46 -0
  114. package/dist/components/tools/tools/viral-tool-sunlight.js.map +1 -0
  115. package/dist/components/tools/viral-tools.d.ts +32 -0
  116. package/dist/components/tools/viral-tools.js +213 -0
  117. package/dist/components/tools/viral-tools.js.map +1 -0
  118. package/dist/components/visibility-manager/viral-visibility-manager.js +175 -0
  119. package/dist/components/visibility-manager/viral-visibility-manager.js.map +1 -0
  120. package/dist/components/worker/base/worker-pool.js +68 -0
  121. package/dist/components/worker/base/worker-pool.js.map +1 -0
  122. package/dist/components/worker/base/worker-thread.js +35 -0
  123. package/dist/components/worker/base/worker-thread.js.map +1 -0
  124. package/dist/components/worker/fetch-data.worker.js +31 -0
  125. package/dist/components/worker/fetch-data.worker.js.map +1 -0
  126. package/dist/components/worker/load-element-by-material-v2.worker.d.ts +11 -0
  127. package/dist/components/worker/load-element-by-material-v2.worker.js +80 -0
  128. package/dist/components/worker/load-element-by-material-v2.worker.js.map +1 -0
  129. package/dist/components/worker/load-element-by-material.worker.d.ts +11 -0
  130. package/dist/components/worker/load-element-by-material.worker.js +59 -0
  131. package/dist/components/worker/load-element-by-material.worker.js.map +1 -0
  132. package/dist/components/worker/load-element-standalone.worker.d.ts +10 -0
  133. package/dist/components/worker/load-element-standalone.worker.js +109 -0
  134. package/dist/components/worker/load-element-standalone.worker.js.map +1 -0
  135. package/dist/components/worker/load-model.d.ts +126 -0
  136. package/dist/components/worker/load-model.js +1265 -0
  137. package/dist/components/worker/load-model.js.map +1 -0
  138. package/dist/components/worker/test-worker-pool.d.ts +6 -0
  139. package/dist/components/worker/test-worker-pool.js +21 -0
  140. package/dist/components/worker/test-worker-pool.js.map +1 -0
  141. package/dist/components/worker/viral-viewer-2.worker.js +127 -0
  142. package/dist/components/worker/viral-viewer-2.worker.js.map +1 -0
  143. package/dist/components/worker/viral-viewer-3.worker.js +82 -0
  144. package/dist/components/worker/viral-viewer-3.worker.js.map +1 -0
  145. package/dist/components/worker/viral-viewer-4.worker.js +97 -0
  146. package/dist/components/worker/viral-viewer-4.worker.js.map +1 -0
  147. package/dist/components/worker/viral-viewer.worker-pool.d.ts +0 -0
  148. package/dist/components/worker/viral-viewer.worker-pool.js +61 -0
  149. package/dist/components/worker/viral-viewer.worker-pool.js.map +1 -0
  150. package/dist/components/worker/viral-viewer.worker.js +107 -0
  151. package/dist/components/worker/viral-viewer.worker.js.map +1 -0
  152. package/dist/components/worker/worker-pool.d.ts +21 -0
  153. package/dist/components/worker/worker-pool.js +47 -0
  154. package/dist/components/worker/worker-pool.js.map +1 -0
  155. package/dist/components/worker/worker-thread.d.ts +9 -0
  156. package/dist/components/worker/worker-thread.js +30 -0
  157. package/dist/components/worker/worker-thread.js.map +1 -0
  158. package/dist/components/worker-script/fetch-data-worker.script.js +56 -0
  159. package/dist/components/worker-script/fetch-data-worker.script.js.map +1 -0
  160. package/dist/components/worker-script/load-element-by-material.script.d.ts +3 -0
  161. package/dist/components/worker-script/load-element-by-material.script.js +131 -0
  162. package/dist/components/worker-script/load-element-by-material.script.js.map +1 -0
  163. package/dist/components/worker-script/load-element-standalone.script.d.ts +1 -0
  164. package/dist/components/worker-script/load-element-standalone.script.js +34172 -0
  165. package/dist/components/worker-script/load-element-standalone.script.js.map +1 -0
  166. package/dist/components/worker-script/load-model-worker-2.script.js +2704 -0
  167. package/dist/components/worker-script/load-model-worker-2.script.js.map +1 -0
  168. package/dist/components/worker-script/load-model-worker-3.script.js +34170 -0
  169. package/dist/components/worker-script/load-model-worker-3.script.js.map +1 -0
  170. package/dist/components/worker-script/load-model-worker.script.js +148 -0
  171. package/dist/components/worker-script/load-model-worker.script.js.map +1 -0
  172. package/dist/components/worker-script/material-aproach/load-element-by-material-instanced-mesh.script.d.ts +1 -0
  173. package/dist/components/worker-script/material-aproach/load-element-by-material-instanced-mesh.script.js +34152 -0
  174. package/dist/components/worker-script/material-aproach/load-element-by-material-instanced-mesh.script.js.map +1 -0
  175. package/dist/components/worker-script/material-aproach/load-element-by-material-mesh.script.d.ts +3 -0
  176. package/dist/components/worker-script/material-aproach/load-element-by-material-mesh.script.js +127 -0
  177. package/dist/components/worker-script/material-aproach/load-element-by-material-mesh.script.js.map +1 -0
  178. package/dist/components/worker-script/test-worker-pool.script.d.ts +1 -0
  179. package/dist/components/worker-script/test-worker-pool.script.js +12 -0
  180. package/dist/components/worker-script/test-worker-pool.script.js.map +1 -0
  181. package/dist/components/worker-script/threejs.types.js +34162 -0
  182. package/dist/components/worker-script/threejs.types.js.map +1 -0
  183. package/dist/const/colors.d.ts +1 -0
  184. package/dist/const/colors.js +39 -0
  185. package/dist/const/colors.js.map +1 -0
  186. package/dist/const/fonts.js +17 -0
  187. package/dist/const/fonts.js.map +1 -0
  188. package/dist/const/icons.d.ts +7 -0
  189. package/dist/const/icons.js +11 -0
  190. package/dist/const/icons.js.map +1 -0
  191. package/dist/gui/context-menu/viral-context-menu.d.ts +1 -1
  192. package/dist/gui/context-menu/viral-context-menu.js +78 -0
  193. package/dist/gui/context-menu/viral-context-menu.js.map +1 -0
  194. package/dist/gui/draggable-modal/viral-draggable-modal.d.ts +10 -0
  195. package/dist/gui/draggable-modal/viral-draggable-modal.js +167 -0
  196. package/dist/gui/draggable-modal/viral-draggable-modal.js.map +1 -0
  197. package/dist/gui/fonts/fonts.js +20 -0
  198. package/dist/gui/fonts/fonts.js.map +1 -0
  199. package/dist/gui/navigation-cube/components/cube-camera.js +74 -0
  200. package/dist/gui/navigation-cube/components/cube-camera.js.map +1 -0
  201. package/dist/gui/navigation-cube/components/cube-renderer.js +31 -0
  202. package/dist/gui/navigation-cube/components/cube-renderer.js.map +1 -0
  203. package/dist/gui/navigation-cube/components/cube-scene.js +546 -0
  204. package/dist/gui/navigation-cube/components/cube-scene.js.map +1 -0
  205. package/dist/gui/navigation-cube/components/cube.mouse.js +109 -0
  206. package/dist/gui/navigation-cube/components/cube.mouse.js.map +1 -0
  207. package/dist/gui/navigation-cube/viral-navigation-cube.js +50 -0
  208. package/dist/gui/navigation-cube/viral-navigation-cube.js.map +1 -0
  209. package/dist/gui/spinner/viral-spinner.js +102 -0
  210. package/dist/gui/spinner/viral-spinner.js.map +1 -0
  211. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js +25 -0
  212. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js.map +1 -0
  213. package/dist/gui/tools/tools/viral-tool-dark-mode.js +21 -0
  214. package/dist/gui/tools/tools/viral-tool-dark-mode.js.map +1 -0
  215. package/dist/gui/tools/tools/viral-tool-elevation.js +30 -0
  216. package/dist/gui/tools/tools/viral-tool-elevation.js.map +1 -0
  217. package/dist/gui/tools/tools/viral-tool-export-scene.d.ts +7 -0
  218. package/dist/gui/tools/tools/viral-tool-export-scene.js +36 -0
  219. package/dist/gui/tools/tools/viral-tool-export-scene.js.map +1 -0
  220. package/dist/gui/tools/tools/viral-tool-measure.js +243 -0
  221. package/dist/gui/tools/tools/viral-tool-measure.js.map +1 -0
  222. package/dist/gui/tools/tools/viral-tool-sunlight.js +46 -0
  223. package/dist/gui/tools/tools/viral-tool-sunlight.js.map +1 -0
  224. package/dist/gui/tools/viral-tools.js +213 -0
  225. package/dist/gui/tools/viral-tools.js.map +1 -0
  226. package/dist/index.js +21 -0
  227. package/dist/index.js.map +1 -0
  228. package/dist/models/dictionary.model.d.ts +10 -0
  229. package/dist/models/dictionary.model.js +42 -0
  230. package/dist/models/dictionary.model.js.map +1 -0
  231. package/dist/services/local-storage.service.js +57 -0
  232. package/dist/services/local-storage.service.js.map +1 -0
  233. package/dist/threejs-addon/buffer-geometry-utils.d.ts +64 -0
  234. package/dist/threejs-addon/buffer-geometry-utils.js +807 -0
  235. package/dist/threejs-addon/buffer-geometry-utils.js.map +1 -0
  236. package/dist/threejs-addon/gltf-loader.d.ts +17 -0
  237. package/dist/threejs-addon/gltf-loader.js +2796 -0
  238. package/dist/threejs-addon/gltf-loader.js.map +1 -0
  239. package/dist/threejs-addon/n8ao/n8ao.js +1952 -0
  240. package/dist/threejs-addon/n8ao/n8ao.js.map +1 -0
  241. package/dist/threejs-addon/n8ao/post-processing.d.ts +109 -109
  242. package/dist/threejs-addon/n8ao/post-processing.js +15145 -0
  243. package/dist/threejs-addon/n8ao/post-processing.js.map +1 -0
  244. package/dist/threejs-addon/post-processing/effect-composer.d.ts +27 -0
  245. package/dist/threejs-addon/post-processing/effect-composer.js +134 -0
  246. package/dist/threejs-addon/post-processing/effect-composer.js.map +1 -0
  247. package/dist/threejs-addon/post-processing/mask-pass.d.ts +11 -0
  248. package/dist/threejs-addon/post-processing/mask-pass.js +69 -0
  249. package/dist/threejs-addon/post-processing/mask-pass.js.map +1 -0
  250. package/dist/threejs-addon/post-processing/outline-pass.d.ts +58 -0
  251. package/dist/threejs-addon/post-processing/outline-pass.js +484 -0
  252. package/dist/threejs-addon/post-processing/outline-pass.js.map +1 -0
  253. package/dist/threejs-addon/post-processing/output-pass.d.ts +11 -0
  254. package/dist/threejs-addon/post-processing/output-pass.js +61 -0
  255. package/dist/threejs-addon/post-processing/output-pass.js.map +1 -0
  256. package/dist/threejs-addon/post-processing/pass.d.ts +20 -0
  257. package/dist/threejs-addon/post-processing/pass.js +48 -0
  258. package/dist/threejs-addon/post-processing/pass.js.map +1 -0
  259. package/dist/threejs-addon/post-processing/render-pass.d.ts +13 -0
  260. package/dist/threejs-addon/post-processing/render-pass.js +50 -0
  261. package/dist/threejs-addon/post-processing/render-pass.js.map +1 -0
  262. package/dist/threejs-addon/post-processing/sao-pass.d.ts +62 -0
  263. package/dist/threejs-addon/post-processing/sao-pass.js +296 -0
  264. package/dist/threejs-addon/post-processing/sao-pass.js.map +1 -0
  265. package/dist/threejs-addon/post-processing/shader-pass.d.ts +11 -0
  266. package/dist/threejs-addon/post-processing/shader-pass.js +48 -0
  267. package/dist/threejs-addon/post-processing/shader-pass.js.map +1 -0
  268. package/dist/threejs-addon/post-processing/unreal-bloom-pass.d.ts +48 -0
  269. package/dist/threejs-addon/post-processing/unreal-bloom-pass.js +290 -0
  270. package/dist/threejs-addon/post-processing/unreal-bloom-pass.js.map +1 -0
  271. package/dist/threejs-addon/shaders/copy-shader.d.ts +13 -0
  272. package/dist/threejs-addon/shaders/copy-shader.js +39 -0
  273. package/dist/threejs-addon/shaders/copy-shader.js.map +1 -0
  274. package/dist/threejs-addon/shaders/depth-limited-blur-shader.d.ts +48 -0
  275. package/dist/threejs-addon/shaders/depth-limited-blur-shader.js +142 -0
  276. package/dist/threejs-addon/shaders/depth-limited-blur-shader.js.map +1 -0
  277. package/dist/threejs-addon/shaders/luminosity-high-pass-shader.d.ts +27 -0
  278. package/dist/threejs-addon/shaders/luminosity-high-pass-shader.js +56 -0
  279. package/dist/threejs-addon/shaders/luminosity-high-pass-shader.js.map +1 -0
  280. package/dist/threejs-addon/shaders/output-shader.d.ts +13 -0
  281. package/dist/threejs-addon/shaders/output-shader.js +72 -0
  282. package/dist/threejs-addon/shaders/output-shader.js.map +1 -0
  283. package/dist/threejs-addon/shaders/sao-shader.d.ts +71 -0
  284. package/dist/threejs-addon/shaders/sao-shader.js +180 -0
  285. package/dist/threejs-addon/shaders/sao-shader.js.map +1 -0
  286. package/dist/threejs-addon/shaders/unpack-depth-rgba-shader.d.ts +13 -0
  287. package/dist/threejs-addon/shaders/unpack-depth-rgba-shader.js +41 -0
  288. package/dist/threejs-addon/shaders/unpack-depth-rgba-shader.js.map +1 -0
  289. package/dist/threejs-addon/simplify-modifier.d.ts +4 -0
  290. package/dist/threejs-addon/simplify-modifier.js +325 -0
  291. package/dist/threejs-addon/simplify-modifier.js.map +1 -0
  292. package/dist/threejs-addon/stats.js +102 -0
  293. package/dist/threejs-addon/stats.js.map +1 -0
  294. package/dist/threejs-addon/transform-control.d.ts +74 -0
  295. package/dist/threejs-addon/transform-control.js +1033 -0
  296. package/dist/threejs-addon/transform-control.js.map +1 -0
  297. package/dist/types.d.ts +26 -1
  298. package/dist/types.js +173 -0
  299. package/dist/types.js.map +1 -0
  300. package/dist/utils/html.js +12 -0
  301. package/dist/utils/html.js.map +1 -0
  302. package/dist/utils/index.js +10 -0
  303. package/dist/utils/index.js.map +1 -0
  304. package/dist/utils/log.js +14 -0
  305. package/dist/utils/log.js.map +1 -0
  306. package/dist/utils/threejs.js +44 -0
  307. package/dist/utils/threejs.js.map +1 -0
  308. package/dist/viral-viewer-api.d.ts +2 -4
  309. package/dist/viral-viewer-api.js +76 -0
  310. package/dist/viral-viewer-api.js.map +1 -0
  311. package/package.json +2 -3
  312. package/dist/index.mjs +0 -36613
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass.js","sourceRoot":"","sources":["../../../src/threejs-addon/post-processing/pass.js"],"names":[],"mappings":";;;AAAA,iCAKe;AAEf,MAAM,IAAI;IAEN;QAEI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,wDAAwD;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,mFAAmF;QACnF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,8DAA8D;QAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,6GAA6G;QAC7G,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAEhC,CAAC;IAED,OAAO,EAAE,mBAAmB,IAAI,CAAC;IAEjC,MAAM,EAAE,8DAA8D;QAElE,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAEhF,CAAC;IAED,OAAO,KAAI,CAAC;CAEf;AA8CQ,oBAAI;AA5Cb,uEAAuE;AAEvE,MAAM,OAAO,GAAG,IAAI,0BAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE3D,gDAAgD;AAEhD,MAAM,SAAS,GAAG,IAAI,sBAAc,EAAE,CAAC;AACvC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,8BAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,8BAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhF,MAAM,cAAc;IAEhB,YAAY,QAAQ;QAEhB,IAAI,CAAC,KAAK,GAAG,IAAI,YAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE/C,CAAC;IAED,OAAO;QAEH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAElC,CAAC;IAED,MAAM,CAAC,QAAQ;QAEX,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEzC,CAAC;IAED,IAAI,QAAQ;QAER,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAE/B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK;QAEd,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IAEhC,CAAC;CAEJ;AAEc,wCAAc"}
@@ -0,0 +1,13 @@
1
+ export class RenderPass extends Pass {
2
+ constructor(scene: any, camera: any, overrideMaterial: any, clearColor: any, clearAlpha: any);
3
+ scene: any;
4
+ camera: any;
5
+ overrideMaterial: any;
6
+ clearColor: any;
7
+ clearAlpha: any;
8
+ clearDepth: boolean;
9
+ _oldClearColor: Color;
10
+ render(renderer: any, writeBuffer: any, readBuffer: any): void;
11
+ }
12
+ import { Pass } from './pass';
13
+ import { Color } from 'three';
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderPass = void 0;
4
+ const three_1 = require("three");
5
+ const pass_1 = require("./pass");
6
+ class RenderPass extends pass_1.Pass {
7
+ constructor(scene, camera, overrideMaterial, clearColor, clearAlpha) {
8
+ super();
9
+ this.scene = scene;
10
+ this.camera = camera;
11
+ this.overrideMaterial = overrideMaterial;
12
+ this.clearColor = clearColor;
13
+ this.clearAlpha = (clearAlpha !== undefined) ? clearAlpha : 0;
14
+ this.clear = true;
15
+ this.clearDepth = false;
16
+ this.needsSwap = false;
17
+ this._oldClearColor = new three_1.Color();
18
+ }
19
+ render(renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */) {
20
+ const oldAutoClear = renderer.autoClear;
21
+ renderer.autoClear = false;
22
+ let oldClearAlpha, oldOverrideMaterial;
23
+ if (this.overrideMaterial !== undefined) {
24
+ oldOverrideMaterial = this.scene.overrideMaterial;
25
+ this.scene.overrideMaterial = this.overrideMaterial;
26
+ }
27
+ if (this.clearColor) {
28
+ renderer.getClearColor(this._oldClearColor);
29
+ oldClearAlpha = renderer.getClearAlpha();
30
+ renderer.setClearColor(this.clearColor, this.clearAlpha);
31
+ }
32
+ if (this.clearDepth) {
33
+ renderer.clearDepth();
34
+ }
35
+ renderer.setRenderTarget(this.renderToScreen ? null : readBuffer);
36
+ // TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600
37
+ if (this.clear)
38
+ renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);
39
+ renderer.render(this.scene, this.camera);
40
+ if (this.clearColor) {
41
+ renderer.setClearColor(this._oldClearColor, oldClearAlpha);
42
+ }
43
+ if (this.overrideMaterial !== undefined) {
44
+ this.scene.overrideMaterial = oldOverrideMaterial;
45
+ }
46
+ renderer.autoClear = oldAutoClear;
47
+ }
48
+ }
49
+ exports.RenderPass = RenderPass;
50
+ //# sourceMappingURL=render-pass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-pass.js","sourceRoot":"","sources":["../../../src/threejs-addon/post-processing/render-pass.js"],"names":[],"mappings":";;;AAAA,iCAEe;AACf,iCAA8B;AAE9B,MAAM,UAAW,SAAQ,WAAI;IAEzB,YAAY,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU;QAE/D,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,aAAK,EAAE,CAAC;IAEtC,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,4BAA4B;QAEjE,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC;QACxC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;QAE3B,IAAI,aAAa,EAAE,mBAAmB,CAAC;QAEvC,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAErC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAElD,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAEvD;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YAEjB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,aAAa,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;YAEzC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SAE5D;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YAEjB,QAAQ,CAAC,UAAU,EAAE,CAAC;SAEzB;QAED,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAElE,mHAAmH;QACnH,IAAI,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC5G,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,UAAU,EAAE;YAEjB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;SAE9D;QAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAErC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;SAErD;QAED,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAC;IAEtC,CAAC;CAEJ;AAEQ,gCAAU"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * SAO implementation inspired from bhouston previous SAO work
3
+ */
4
+ export class SAOPass extends Pass {
5
+ constructor(scene: any, camera: any, useDepthTexture?: boolean, useNormals?: boolean, resolution?: Vector2);
6
+ scene: any;
7
+ camera: any;
8
+ supportsDepthTextureExtension: boolean;
9
+ supportsNormalTexture: boolean;
10
+ originalClearColor: Color;
11
+ _oldClearColor: Color;
12
+ oldClearAlpha: number;
13
+ params: {
14
+ output: number;
15
+ saoBias: number;
16
+ saoIntensity: number;
17
+ saoScale: number;
18
+ saoKernelRadius: number;
19
+ saoMinResolution: number;
20
+ saoBlur: boolean;
21
+ saoBlurRadius: number;
22
+ saoBlurStdDev: number;
23
+ saoBlurDepthCutoff: number;
24
+ };
25
+ resolution: Vector2;
26
+ saoRenderTarget: WebGLRenderTarget;
27
+ blurIntermediateRenderTarget: WebGLRenderTarget;
28
+ beautyRenderTarget: WebGLRenderTarget;
29
+ normalRenderTarget: WebGLRenderTarget;
30
+ depthRenderTarget: WebGLRenderTarget;
31
+ depthMaterial: MeshDepthMaterial;
32
+ normalMaterial: MeshNormalMaterial;
33
+ saoMaterial: ShaderMaterial;
34
+ vBlurMaterial: ShaderMaterial;
35
+ hBlurMaterial: ShaderMaterial;
36
+ materialCopy: ShaderMaterial;
37
+ depthCopy: ShaderMaterial;
38
+ fsQuad: FullScreenQuad;
39
+ render(renderer: any, writeBuffer: any, readBuffer: any): void;
40
+ prevStdDev: any;
41
+ prevNumSamples: number | undefined;
42
+ renderPass(renderer: any, passMaterial: any, renderTarget: any, clearColor: any, clearAlpha: any): void;
43
+ renderOverride(renderer: any, overrideMaterial: any, renderTarget: any, clearColor: any, clearAlpha: any): void;
44
+ setSize(width: any, height: any): void;
45
+ }
46
+ export namespace SAOPass {
47
+ namespace OUTPUT {
48
+ const Beauty: number;
49
+ const Default: number;
50
+ const SAO: number;
51
+ const Depth: number;
52
+ const Normal: number;
53
+ }
54
+ }
55
+ import { Pass } from './pass';
56
+ import { Color } from 'three';
57
+ import { Vector2 } from 'three';
58
+ import { WebGLRenderTarget } from 'three';
59
+ import { MeshDepthMaterial } from 'three';
60
+ import { MeshNormalMaterial } from 'three';
61
+ import { ShaderMaterial } from 'three';
62
+ import { FullScreenQuad } from './pass';
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SAOPass = void 0;
4
+ const three_1 = require("three");
5
+ const pass_1 = require("./pass");
6
+ const sao_shader_1 = require("../shaders/sao-shader");
7
+ const depth_limited_blur_shader_1 = require("../shaders/depth-limited-blur-shader");
8
+ const depth_limited_blur_shader_2 = require("../shaders/depth-limited-blur-shader");
9
+ const copy_shader_1 = require("../shaders/copy-shader");
10
+ const unpack_depth_rgba_shader_1 = require("../shaders/unpack-depth-rgba-shader");
11
+ /**
12
+ * SAO implementation inspired from bhouston previous SAO work
13
+ */
14
+ class SAOPass extends pass_1.Pass {
15
+ constructor(scene, camera, useDepthTexture = false, useNormals = false, resolution = new three_1.Vector2(256, 256)) {
16
+ super();
17
+ this.scene = scene;
18
+ this.camera = camera;
19
+ this.clear = true;
20
+ this.needsSwap = false;
21
+ this.supportsDepthTextureExtension = useDepthTexture;
22
+ this.supportsNormalTexture = useNormals;
23
+ this.originalClearColor = new three_1.Color();
24
+ this._oldClearColor = new three_1.Color();
25
+ this.oldClearAlpha = 1;
26
+ this.params = {
27
+ output: 0,
28
+ saoBias: 0.5,
29
+ saoIntensity: 0.18,
30
+ saoScale: 1,
31
+ saoKernelRadius: 100,
32
+ saoMinResolution: 0,
33
+ saoBlur: true,
34
+ saoBlurRadius: 8,
35
+ saoBlurStdDev: 4,
36
+ saoBlurDepthCutoff: 0.01
37
+ };
38
+ this.resolution = new three_1.Vector2(resolution.x, resolution.y);
39
+ this.saoRenderTarget = new three_1.WebGLRenderTarget(this.resolution.x, this.resolution.y);
40
+ this.blurIntermediateRenderTarget = this.saoRenderTarget.clone();
41
+ this.beautyRenderTarget = this.saoRenderTarget.clone();
42
+ this.normalRenderTarget = new three_1.WebGLRenderTarget(this.resolution.x, this.resolution.y, {
43
+ minFilter: three_1.NearestFilter,
44
+ magFilter: three_1.NearestFilter
45
+ });
46
+ this.depthRenderTarget = this.normalRenderTarget.clone();
47
+ let depthTexture;
48
+ if (this.supportsDepthTextureExtension) {
49
+ depthTexture = new three_1.DepthTexture();
50
+ depthTexture.type = three_1.UnsignedShortType;
51
+ this.beautyRenderTarget.depthTexture = depthTexture;
52
+ this.beautyRenderTarget.depthBuffer = true;
53
+ }
54
+ this.depthMaterial = new three_1.MeshDepthMaterial();
55
+ this.depthMaterial.depthPacking = three_1.RGBADepthPacking;
56
+ this.depthMaterial.blending = three_1.NoBlending;
57
+ this.normalMaterial = new three_1.MeshNormalMaterial();
58
+ this.normalMaterial.blending = three_1.NoBlending;
59
+ this.saoMaterial = new three_1.ShaderMaterial({
60
+ defines: Object.assign({}, sao_shader_1.SAOShader.defines),
61
+ fragmentShader: sao_shader_1.SAOShader.fragmentShader,
62
+ vertexShader: sao_shader_1.SAOShader.vertexShader,
63
+ uniforms: three_1.UniformsUtils.clone(sao_shader_1.SAOShader.uniforms)
64
+ });
65
+ this.saoMaterial.extensions.derivatives = true;
66
+ this.saoMaterial.defines['DEPTH_PACKING'] = this.supportsDepthTextureExtension ? 0 : 1;
67
+ this.saoMaterial.defines['NORMAL_TEXTURE'] = this.supportsNormalTexture ? 1 : 0;
68
+ this.saoMaterial.defines['PERSPECTIVE_CAMERA'] = this.camera.isPerspectiveCamera ? 1 : 0;
69
+ this.saoMaterial.uniforms['tDepth'].value = (this.supportsDepthTextureExtension) ? depthTexture : this.depthRenderTarget.texture;
70
+ this.saoMaterial.uniforms['tNormal'].value = this.normalRenderTarget.texture;
71
+ this.saoMaterial.uniforms['size'].value.set(this.resolution.x, this.resolution.y);
72
+ this.saoMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse);
73
+ this.saoMaterial.uniforms['cameraProjectionMatrix'].value = this.camera.projectionMatrix;
74
+ this.saoMaterial.blending = three_1.NoBlending;
75
+ this.vBlurMaterial = new three_1.ShaderMaterial({
76
+ uniforms: three_1.UniformsUtils.clone(depth_limited_blur_shader_1.DepthLimitedBlurShader.uniforms),
77
+ defines: Object.assign({}, depth_limited_blur_shader_1.DepthLimitedBlurShader.defines),
78
+ vertexShader: depth_limited_blur_shader_1.DepthLimitedBlurShader.vertexShader,
79
+ fragmentShader: depth_limited_blur_shader_1.DepthLimitedBlurShader.fragmentShader
80
+ });
81
+ this.vBlurMaterial.defines['DEPTH_PACKING'] = this.supportsDepthTextureExtension ? 0 : 1;
82
+ this.vBlurMaterial.defines['PERSPECTIVE_CAMERA'] = this.camera.isPerspectiveCamera ? 1 : 0;
83
+ this.vBlurMaterial.uniforms['tDiffuse'].value = this.saoRenderTarget.texture;
84
+ this.vBlurMaterial.uniforms['tDepth'].value = (this.supportsDepthTextureExtension) ? depthTexture : this.depthRenderTarget.texture;
85
+ this.vBlurMaterial.uniforms['size'].value.set(this.resolution.x, this.resolution.y);
86
+ this.vBlurMaterial.blending = three_1.NoBlending;
87
+ this.hBlurMaterial = new three_1.ShaderMaterial({
88
+ uniforms: three_1.UniformsUtils.clone(depth_limited_blur_shader_1.DepthLimitedBlurShader.uniforms),
89
+ defines: Object.assign({}, depth_limited_blur_shader_1.DepthLimitedBlurShader.defines),
90
+ vertexShader: depth_limited_blur_shader_1.DepthLimitedBlurShader.vertexShader,
91
+ fragmentShader: depth_limited_blur_shader_1.DepthLimitedBlurShader.fragmentShader
92
+ });
93
+ this.hBlurMaterial.defines['DEPTH_PACKING'] = this.supportsDepthTextureExtension ? 0 : 1;
94
+ this.hBlurMaterial.defines['PERSPECTIVE_CAMERA'] = this.camera.isPerspectiveCamera ? 1 : 0;
95
+ this.hBlurMaterial.uniforms['tDiffuse'].value = this.blurIntermediateRenderTarget.texture;
96
+ this.hBlurMaterial.uniforms['tDepth'].value = (this.supportsDepthTextureExtension) ? depthTexture : this.depthRenderTarget.texture;
97
+ this.hBlurMaterial.uniforms['size'].value.set(this.resolution.x, this.resolution.y);
98
+ this.hBlurMaterial.blending = three_1.NoBlending;
99
+ this.materialCopy = new three_1.ShaderMaterial({
100
+ uniforms: three_1.UniformsUtils.clone(copy_shader_1.CopyShader.uniforms),
101
+ vertexShader: copy_shader_1.CopyShader.vertexShader,
102
+ fragmentShader: copy_shader_1.CopyShader.fragmentShader,
103
+ blending: three_1.NoBlending
104
+ });
105
+ this.materialCopy.transparent = true;
106
+ this.materialCopy.depthTest = false;
107
+ this.materialCopy.depthWrite = false;
108
+ this.materialCopy.blending = three_1.CustomBlending;
109
+ this.materialCopy.blendSrc = three_1.DstColorFactor;
110
+ this.materialCopy.blendDst = three_1.ZeroFactor;
111
+ this.materialCopy.blendEquation = three_1.AddEquation;
112
+ this.materialCopy.blendSrcAlpha = three_1.DstAlphaFactor;
113
+ this.materialCopy.blendDstAlpha = three_1.ZeroFactor;
114
+ this.materialCopy.blendEquationAlpha = three_1.AddEquation;
115
+ this.depthCopy = new three_1.ShaderMaterial({
116
+ uniforms: three_1.UniformsUtils.clone(unpack_depth_rgba_shader_1.UnpackDepthRGBAShader.uniforms),
117
+ vertexShader: unpack_depth_rgba_shader_1.UnpackDepthRGBAShader.vertexShader,
118
+ fragmentShader: unpack_depth_rgba_shader_1.UnpackDepthRGBAShader.fragmentShader,
119
+ blending: three_1.NoBlending
120
+ });
121
+ this.fsQuad = new pass_1.FullScreenQuad(null);
122
+ }
123
+ render(renderer, writeBuffer, readBuffer /*, deltaTime, maskActive*/) {
124
+ // Rendering readBuffer first when rendering to screen
125
+ if (this.renderToScreen) {
126
+ this.materialCopy.blending = three_1.NoBlending;
127
+ this.materialCopy.uniforms['tDiffuse'].value = readBuffer.texture;
128
+ this.materialCopy.needsUpdate = true;
129
+ this.renderPass(renderer, this.materialCopy, null);
130
+ }
131
+ if (this.params.output === 1) {
132
+ return;
133
+ }
134
+ renderer.getClearColor(this._oldClearColor);
135
+ this.oldClearAlpha = renderer.getClearAlpha();
136
+ const oldAutoClear = renderer.autoClear;
137
+ renderer.autoClear = false;
138
+ renderer.setRenderTarget(this.depthRenderTarget);
139
+ renderer.clear();
140
+ this.saoMaterial.uniforms['bias'].value = this.params.saoBias;
141
+ this.saoMaterial.uniforms['intensity'].value = this.params.saoIntensity;
142
+ this.saoMaterial.uniforms['scale'].value = this.params.saoScale;
143
+ this.saoMaterial.uniforms['kernelRadius'].value = this.params.saoKernelRadius;
144
+ this.saoMaterial.uniforms['minResolution'].value = this.params.saoMinResolution;
145
+ this.saoMaterial.uniforms['cameraNear'].value = this.camera.near;
146
+ this.saoMaterial.uniforms['cameraFar'].value = this.camera.far;
147
+ // this.saoMaterial.uniforms['randomSeed'].value = Math.random();
148
+ const depthCutoff = this.params.saoBlurDepthCutoff * (this.camera.far - this.camera.near);
149
+ this.vBlurMaterial.uniforms['depthCutoff'].value = depthCutoff;
150
+ this.hBlurMaterial.uniforms['depthCutoff'].value = depthCutoff;
151
+ this.vBlurMaterial.uniforms['cameraNear'].value = this.camera.near;
152
+ this.vBlurMaterial.uniforms['cameraFar'].value = this.camera.far;
153
+ this.hBlurMaterial.uniforms['cameraNear'].value = this.camera.near;
154
+ this.hBlurMaterial.uniforms['cameraFar'].value = this.camera.far;
155
+ this.params.saoBlurRadius = Math.floor(this.params.saoBlurRadius);
156
+ if ((this.prevStdDev !== this.params.saoBlurStdDev) || (this.prevNumSamples !== this.params.saoBlurRadius)) {
157
+ depth_limited_blur_shader_2.BlurShaderUtils.configure(this.vBlurMaterial, this.params.saoBlurRadius, this.params.saoBlurStdDev, new three_1.Vector2(0, 1));
158
+ depth_limited_blur_shader_2.BlurShaderUtils.configure(this.hBlurMaterial, this.params.saoBlurRadius, this.params.saoBlurStdDev, new three_1.Vector2(1, 0));
159
+ this.prevStdDev = this.params.saoBlurStdDev;
160
+ this.prevNumSamples = this.params.saoBlurRadius;
161
+ }
162
+ // Rendering scene to depth texture
163
+ renderer.setClearColor(0x000000);
164
+ renderer.setRenderTarget(this.beautyRenderTarget);
165
+ renderer.clear();
166
+ renderer.render(this.scene, this.camera);
167
+ // Re-render scene if depth texture extension is not supported
168
+ if (!this.supportsDepthTextureExtension) {
169
+ // Clear rule : far clipping plane in both RGBA and Basic encoding
170
+ this.renderOverride(renderer, this.depthMaterial, this.depthRenderTarget, 0x000000, 1.0);
171
+ }
172
+ if (this.supportsNormalTexture) {
173
+ // Clear rule : default normal is facing the camera
174
+ this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 0x7777ff, 1.0);
175
+ }
176
+ // Rendering SAO texture
177
+ this.renderPass(renderer, this.saoMaterial, this.saoRenderTarget, 0xffffff, 1.0);
178
+ // Blurring SAO texture
179
+ if (this.params.saoBlur) {
180
+ this.renderPass(renderer, this.vBlurMaterial, this.blurIntermediateRenderTarget, 0xffffff, 1.0);
181
+ this.renderPass(renderer, this.hBlurMaterial, this.saoRenderTarget, 0xffffff, 1.0);
182
+ }
183
+ let outputMaterial = this.materialCopy;
184
+ // Setting up SAO rendering
185
+ if (this.params.output === 3) {
186
+ if (this.supportsDepthTextureExtension) {
187
+ this.materialCopy.uniforms['tDiffuse'].value = this.beautyRenderTarget.depthTexture;
188
+ this.materialCopy.needsUpdate = true;
189
+ }
190
+ else {
191
+ this.depthCopy.uniforms['tDiffuse'].value = this.depthRenderTarget.texture;
192
+ this.depthCopy.needsUpdate = true;
193
+ outputMaterial = this.depthCopy;
194
+ }
195
+ }
196
+ else if (this.params.output === 4) {
197
+ this.materialCopy.uniforms['tDiffuse'].value = this.normalRenderTarget.texture;
198
+ this.materialCopy.needsUpdate = true;
199
+ }
200
+ else {
201
+ this.materialCopy.uniforms['tDiffuse'].value = this.saoRenderTarget.texture;
202
+ this.materialCopy.needsUpdate = true;
203
+ }
204
+ // Blending depends on output, only want a CustomBlending when showing SAO
205
+ if (this.params.output === 0) {
206
+ outputMaterial.blending = three_1.CustomBlending;
207
+ }
208
+ else {
209
+ outputMaterial.blending = three_1.NoBlending;
210
+ }
211
+ // Rendering SAOPass result on top of previous pass
212
+ this.renderPass(renderer, outputMaterial, this.renderToScreen ? null : readBuffer);
213
+ renderer.setClearColor(this._oldClearColor, this.oldClearAlpha);
214
+ renderer.autoClear = oldAutoClear;
215
+ }
216
+ renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {
217
+ // save original state
218
+ renderer.getClearColor(this.originalClearColor);
219
+ const originalClearAlpha = renderer.getClearAlpha();
220
+ const originalAutoClear = renderer.autoClear;
221
+ renderer.setRenderTarget(renderTarget);
222
+ // setup pass state
223
+ renderer.autoClear = false;
224
+ if ((clearColor !== undefined) && (clearColor !== null)) {
225
+ renderer.setClearColor(clearColor);
226
+ renderer.setClearAlpha(clearAlpha || 0.0);
227
+ renderer.clear();
228
+ }
229
+ this.fsQuad.material = passMaterial;
230
+ this.fsQuad.render(renderer);
231
+ // restore original state
232
+ renderer.autoClear = originalAutoClear;
233
+ renderer.setClearColor(this.originalClearColor);
234
+ renderer.setClearAlpha(originalClearAlpha);
235
+ }
236
+ renderOverride(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {
237
+ renderer.getClearColor(this.originalClearColor);
238
+ const originalClearAlpha = renderer.getClearAlpha();
239
+ const originalAutoClear = renderer.autoClear;
240
+ renderer.setRenderTarget(renderTarget);
241
+ renderer.autoClear = false;
242
+ clearColor = overrideMaterial.clearColor || clearColor;
243
+ clearAlpha = overrideMaterial.clearAlpha || clearAlpha;
244
+ if ((clearColor !== undefined) && (clearColor !== null)) {
245
+ renderer.setClearColor(clearColor);
246
+ renderer.setClearAlpha(clearAlpha || 0.0);
247
+ renderer.clear();
248
+ }
249
+ this.scene.overrideMaterial = overrideMaterial;
250
+ renderer.render(this.scene, this.camera);
251
+ this.scene.overrideMaterial = null;
252
+ // restore original state
253
+ renderer.autoClear = originalAutoClear;
254
+ renderer.setClearColor(this.originalClearColor);
255
+ renderer.setClearAlpha(originalClearAlpha);
256
+ }
257
+ setSize(width, height) {
258
+ this.beautyRenderTarget.setSize(width, height);
259
+ this.saoRenderTarget.setSize(width, height);
260
+ this.blurIntermediateRenderTarget.setSize(width, height);
261
+ this.normalRenderTarget.setSize(width, height);
262
+ this.depthRenderTarget.setSize(width, height);
263
+ this.saoMaterial.uniforms['size'].value.set(width, height);
264
+ this.saoMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse);
265
+ this.saoMaterial.uniforms['cameraProjectionMatrix'].value = this.camera.projectionMatrix;
266
+ this.saoMaterial.needsUpdate = true;
267
+ this.vBlurMaterial.uniforms['size'].value.set(width, height);
268
+ this.vBlurMaterial.needsUpdate = true;
269
+ this.hBlurMaterial.uniforms['size'].value.set(width, height);
270
+ this.hBlurMaterial.needsUpdate = true;
271
+ }
272
+ dispose() {
273
+ this.saoRenderTarget.dispose();
274
+ this.blurIntermediateRenderTarget.dispose();
275
+ this.beautyRenderTarget.dispose();
276
+ this.normalRenderTarget.dispose();
277
+ this.depthRenderTarget.dispose();
278
+ this.depthMaterial.dispose();
279
+ this.normalMaterial.dispose();
280
+ this.saoMaterial.dispose();
281
+ this.vBlurMaterial.dispose();
282
+ this.hBlurMaterial.dispose();
283
+ this.materialCopy.dispose();
284
+ this.depthCopy.dispose();
285
+ this.fsQuad.dispose();
286
+ }
287
+ }
288
+ exports.SAOPass = SAOPass;
289
+ SAOPass.OUTPUT = {
290
+ 'Beauty': 1,
291
+ 'Default': 0,
292
+ 'SAO': 2,
293
+ 'Depth': 3,
294
+ 'Normal': 4
295
+ };
296
+ //# sourceMappingURL=sao-pass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sao-pass.js","sourceRoot":"","sources":["../../../src/threejs-addon/post-processing/sao-pass.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export class ShaderPass extends Pass {
2
+ constructor(shader: any, textureID: any);
3
+ textureID: any;
4
+ uniforms: any;
5
+ material: ShaderMaterial | undefined;
6
+ fsQuad: FullScreenQuad;
7
+ render(renderer: any, writeBuffer: any, readBuffer: any): void;
8
+ }
9
+ import { Pass } from './pass';
10
+ import { ShaderMaterial } from 'three';
11
+ import { FullScreenQuad } from './pass';
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShaderPass = void 0;
4
+ const three_1 = require("three");
5
+ const pass_1 = require("./pass");
6
+ class ShaderPass extends pass_1.Pass {
7
+ constructor(shader, textureID) {
8
+ super();
9
+ this.textureID = (textureID !== undefined) ? textureID : 'tDiffuse';
10
+ if (shader instanceof three_1.ShaderMaterial) {
11
+ this.uniforms = shader.uniforms;
12
+ this.material = shader;
13
+ }
14
+ else if (shader) {
15
+ this.uniforms = three_1.UniformsUtils.clone(shader.uniforms);
16
+ this.material = new three_1.ShaderMaterial({
17
+ defines: Object.assign({}, shader.defines),
18
+ uniforms: this.uniforms,
19
+ vertexShader: shader.vertexShader,
20
+ fragmentShader: shader.fragmentShader
21
+ });
22
+ }
23
+ this.fsQuad = new pass_1.FullScreenQuad(this.material);
24
+ }
25
+ render(renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */) {
26
+ if (this.uniforms[this.textureID]) {
27
+ this.uniforms[this.textureID].value = readBuffer.texture;
28
+ }
29
+ this.fsQuad.material = this.material;
30
+ if (this.renderToScreen) {
31
+ renderer.setRenderTarget(null);
32
+ this.fsQuad.render(renderer);
33
+ }
34
+ else {
35
+ renderer.setRenderTarget(writeBuffer);
36
+ // TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600
37
+ if (this.clear)
38
+ renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);
39
+ this.fsQuad.render(renderer);
40
+ }
41
+ }
42
+ dispose() {
43
+ this.material.dispose();
44
+ this.fsQuad.dispose();
45
+ }
46
+ }
47
+ exports.ShaderPass = ShaderPass;
48
+ //# sourceMappingURL=shader-pass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-pass.js","sourceRoot":"","sources":["../../../src/threejs-addon/post-processing/shader-pass.js"],"names":[],"mappings":";;;AAAA,iCAGe;AACf,iCAA8C;AAE9C,MAAM,UAAW,SAAQ,WAAI;IAEzB,YAAY,MAAM,EAAE,SAAS;QAEzB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAEpE,IAAI,MAAM,YAAY,sBAAc,EAAE;YAElC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEhC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;SAE1B;aAAM,IAAI,MAAM,EAAE;YAEf,IAAI,CAAC,QAAQ,GAAG,qBAAa,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAc,CAAC;gBAE/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;gBAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,cAAc,EAAE,MAAM,CAAC,cAAc;aAExC,CAAC,CAAC;SAEN;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpD,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,4BAA4B;QAEjE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAE/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;SAE5D;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAErC,IAAI,IAAI,CAAC,cAAc,EAAE;YAErB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAEhC;aAAM;YAEH,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACtC,mHAAmH;YACnH,IAAI,IAAI,CAAC,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAC5G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAEhC;IAEL,CAAC;IAED,OAAO;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAE1B,CAAC;CAEJ;AAEQ,gCAAU"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * UnrealBloomPass is inspired by the bloom pass of Unreal Engine. It creates a
3
+ * mip map chain of bloom textures and blurs them with different radii. Because
4
+ * of the weighted combination of mips, and because larger blurs are done on
5
+ * higher mips, this effect provides good quality and performance.
6
+ *
7
+ * Reference:
8
+ * - https://docs.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/Bloom/
9
+ */
10
+ export class UnrealBloomPass extends Pass {
11
+ constructor(resolution: any, strength: any, radius: any, threshold: any);
12
+ strength: any;
13
+ radius: any;
14
+ threshold: any;
15
+ resolution: Vector2;
16
+ clearColor: Color;
17
+ renderTargetsHorizontal: WebGLRenderTarget[];
18
+ renderTargetsVertical: WebGLRenderTarget[];
19
+ nMips: number;
20
+ renderTargetBright: WebGLRenderTarget;
21
+ highPassUniforms: any;
22
+ materialHighPassFilter: ShaderMaterial;
23
+ separableBlurMaterials: ShaderMaterial[];
24
+ compositeMaterial: ShaderMaterial;
25
+ bloomTintColors: Vector3[];
26
+ copyUniforms: any;
27
+ materialCopy: ShaderMaterial;
28
+ _oldClearColor: Color;
29
+ oldClearAlpha: number;
30
+ basic: MeshBasicMaterial;
31
+ fsQuad: FullScreenQuad;
32
+ setSize(width: any, height: any): void;
33
+ render(renderer: any, writeBuffer: any, readBuffer: any, deltaTime: any, maskActive: any): void;
34
+ getSeperableBlurMaterial(kernelRadius: any): ShaderMaterial;
35
+ getCompositeMaterial(nMips: any): ShaderMaterial;
36
+ }
37
+ export namespace UnrealBloomPass {
38
+ const BlurDirectionX: Vector2;
39
+ const BlurDirectionY: Vector2;
40
+ }
41
+ import { Pass } from './pass';
42
+ import { Vector2 } from 'three';
43
+ import { Color } from 'three';
44
+ import { WebGLRenderTarget } from 'three';
45
+ import { ShaderMaterial } from 'three';
46
+ import { Vector3 } from 'three';
47
+ import { MeshBasicMaterial } from 'three';
48
+ import { FullScreenQuad } from './pass';