@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.0.0

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 (301) hide show
  1. package/LICENSE +73 -0
  2. package/README.md +3 -0
  3. package/dist/RenderingEngine.d.ts +296 -0
  4. package/dist/RenderingEngine.d.ts.map +1 -0
  5. package/dist/RenderingEngine.js +1079 -0
  6. package/dist/RenderingEngine.js.map +1 -0
  7. package/dist/index.d.ts +12 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +47 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/injectors/Tag3dGeometryCreationInjector.d.ts +11 -0
  12. package/dist/injectors/Tag3dGeometryCreationInjector.d.ts.map +1 -0
  13. package/dist/injectors/Tag3dGeometryCreationInjector.js +169 -0
  14. package/dist/injectors/Tag3dGeometryCreationInjector.js.map +1 -0
  15. package/dist/injectors/TextureUnifierInjector.d.ts +14 -0
  16. package/dist/injectors/TextureUnifierInjector.d.ts.map +1 -0
  17. package/dist/injectors/TextureUnifierInjector.js +227 -0
  18. package/dist/injectors/TextureUnifierInjector.js.map +1 -0
  19. package/dist/interfaces/ILoader.d.ts +4 -0
  20. package/dist/interfaces/ILoader.d.ts.map +1 -0
  21. package/dist/interfaces/ILoader.js +3 -0
  22. package/dist/interfaces/ILoader.js.map +1 -0
  23. package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts +307 -0
  24. package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts.map +1 -0
  25. package/dist/interfaces/IPostProcessingEffectDefinitions.js +31 -0
  26. package/dist/interfaces/IPostProcessingEffectDefinitions.js.map +1 -0
  27. package/dist/interfaces/IRenderingEngine.d.ts +43 -0
  28. package/dist/interfaces/IRenderingEngine.d.ts.map +1 -0
  29. package/dist/interfaces/IRenderingEngine.js +3 -0
  30. package/dist/interfaces/IRenderingEngine.js.map +1 -0
  31. package/dist/loaders/EnvironmentMapLoader.d.ts +98 -0
  32. package/dist/loaders/EnvironmentMapLoader.d.ts.map +1 -0
  33. package/dist/loaders/EnvironmentMapLoader.js +348 -0
  34. package/dist/loaders/EnvironmentMapLoader.js.map +1 -0
  35. package/dist/loaders/GeometryLoader.d.ts +38 -0
  36. package/dist/loaders/GeometryLoader.d.ts.map +1 -0
  37. package/dist/loaders/GeometryLoader.js +505 -0
  38. package/dist/loaders/GeometryLoader.js.map +1 -0
  39. package/dist/loaders/HTMLElementAnchorLoader.d.ts +17 -0
  40. package/dist/loaders/HTMLElementAnchorLoader.d.ts.map +1 -0
  41. package/dist/loaders/HTMLElementAnchorLoader.js +84 -0
  42. package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -0
  43. package/dist/loaders/LightLoader.d.ts +19 -0
  44. package/dist/loaders/LightLoader.d.ts.map +1 -0
  45. package/dist/loaders/LightLoader.js +152 -0
  46. package/dist/loaders/LightLoader.js.map +1 -0
  47. package/dist/loaders/MaterialLoader.d.ts +99 -0
  48. package/dist/loaders/MaterialLoader.d.ts.map +1 -0
  49. package/dist/loaders/MaterialLoader.js +1175 -0
  50. package/dist/loaders/MaterialLoader.js.map +1 -0
  51. package/dist/managers/CameraManager.d.ts +20 -0
  52. package/dist/managers/CameraManager.d.ts.map +1 -0
  53. package/dist/managers/CameraManager.js +195 -0
  54. package/dist/managers/CameraManager.js.map +1 -0
  55. package/dist/managers/EnvironmentGeometryManager.d.ts +43 -0
  56. package/dist/managers/EnvironmentGeometryManager.d.ts.map +1 -0
  57. package/dist/managers/EnvironmentGeometryManager.js +210 -0
  58. package/dist/managers/EnvironmentGeometryManager.js.map +1 -0
  59. package/dist/managers/PostProcessingManager.d.ts +1014 -0
  60. package/dist/managers/PostProcessingManager.d.ts.map +1 -0
  61. package/dist/managers/PostProcessingManager.js +1013 -0
  62. package/dist/managers/PostProcessingManager.js.map +1 -0
  63. package/dist/managers/RenderingManager.d.ts +83 -0
  64. package/dist/managers/RenderingManager.d.ts.map +1 -0
  65. package/dist/managers/RenderingManager.js +567 -0
  66. package/dist/managers/RenderingManager.js.map +1 -0
  67. package/dist/managers/SceneTracingManager.d.ts +26 -0
  68. package/dist/managers/SceneTracingManager.d.ts.map +1 -0
  69. package/dist/managers/SceneTracingManager.js +122 -0
  70. package/dist/managers/SceneTracingManager.js.map +1 -0
  71. package/dist/managers/SceneTreeManager.d.ts +55 -0
  72. package/dist/managers/SceneTreeManager.d.ts.map +1 -0
  73. package/dist/managers/SceneTreeManager.js +501 -0
  74. package/dist/managers/SceneTreeManager.js.map +1 -0
  75. package/dist/managers/postprocessing/GodRaysManager.d.ts +13 -0
  76. package/dist/managers/postprocessing/GodRaysManager.d.ts.map +1 -0
  77. package/dist/managers/postprocessing/GodRaysManager.js +64 -0
  78. package/dist/managers/postprocessing/GodRaysManager.js.map +1 -0
  79. package/dist/managers/postprocessing/OutlineManager.d.ts +15 -0
  80. package/dist/managers/postprocessing/OutlineManager.d.ts.map +1 -0
  81. package/dist/managers/postprocessing/OutlineManager.js +67 -0
  82. package/dist/managers/postprocessing/OutlineManager.js.map +1 -0
  83. package/dist/managers/postprocessing/SSAARenderPass.d.ts +54 -0
  84. package/dist/managers/postprocessing/SSAARenderPass.d.ts.map +1 -0
  85. package/dist/managers/postprocessing/SSAARenderPass.js +234 -0
  86. package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -0
  87. package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +15 -0
  88. package/dist/managers/postprocessing/SelectiveBloomManager.d.ts.map +1 -0
  89. package/dist/managers/postprocessing/SelectiveBloomManager.js +67 -0
  90. package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -0
  91. package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +47 -0
  92. package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts.map +1 -0
  93. package/dist/managers/postprocessing/ao/ao/AOEffect.js +134 -0
  94. package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -0
  95. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +13 -0
  96. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts.map +1 -0
  97. package/dist/managers/postprocessing/ao/ao/AOPass.js +78 -0
  98. package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -0
  99. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +2 -0
  100. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts.map +1 -0
  101. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +23 -0
  102. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js.map +1 -0
  103. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +15 -0
  104. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts.map +1 -0
  105. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +25 -0
  106. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js.map +1 -0
  107. package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +2 -0
  108. package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts.map +1 -0
  109. package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +102 -0
  110. package/dist/managers/postprocessing/ao/hbao/shader/hbao.js.map +1 -0
  111. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts +2 -0
  112. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts.map +1 -0
  113. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js +99 -0
  114. package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js.map +1 -0
  115. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +37 -0
  116. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -0
  117. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +171 -0
  118. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -0
  119. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +2 -0
  120. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts.map +1 -0
  121. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +131 -0
  122. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js.map +1 -0
  123. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +15 -0
  124. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts.map +1 -0
  125. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +76 -0
  126. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -0
  127. package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +2 -0
  128. package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts.map +1 -0
  129. package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +134 -0
  130. package/dist/managers/postprocessing/ao/ssao/shader/ssao.js.map +1 -0
  131. package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +2 -0
  132. package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts.map +1 -0
  133. package/dist/managers/postprocessing/ao/utils/shader/basic.js +12 -0
  134. package/dist/managers/postprocessing/ao/utils/shader/basic.js.map +1 -0
  135. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +2 -0
  136. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts.map +1 -0
  137. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +42 -0
  138. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js.map +1 -0
  139. package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +38 -0
  140. package/dist/managers/postprocessing/utils/CopyMaterial.d.ts.map +1 -0
  141. package/dist/managers/postprocessing/utils/CopyMaterial.js +106 -0
  142. package/dist/managers/postprocessing/utils/CopyMaterial.js.map +1 -0
  143. package/dist/managers/postprocessing/utils/CopyShader.d.ts +14 -0
  144. package/dist/managers/postprocessing/utils/CopyShader.d.ts.map +1 -0
  145. package/dist/managers/postprocessing/utils/CopyShader.js +36 -0
  146. package/dist/managers/postprocessing/utils/CopyShader.js.map +1 -0
  147. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +10 -0
  148. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts.map +1 -0
  149. package/dist/managers/postprocessing/utils/FullScreenQuad.js +29 -0
  150. package/dist/managers/postprocessing/utils/FullScreenQuad.js.map +1 -0
  151. package/dist/managers/postprocessing/utils/NormalPass.d.ts +88 -0
  152. package/dist/managers/postprocessing/utils/NormalPass.d.ts.map +1 -0
  153. package/dist/managers/postprocessing/utils/NormalPass.js +157 -0
  154. package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -0
  155. package/dist/managers/postprocessing/utils/RenderPass.d.ts +115 -0
  156. package/dist/managers/postprocessing/utils/RenderPass.d.ts.map +1 -0
  157. package/dist/managers/postprocessing/utils/RenderPass.js +251 -0
  158. package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -0
  159. package/dist/materials/GemMaterial.d.ts +38 -0
  160. package/dist/materials/GemMaterial.d.ts.map +1 -0
  161. package/dist/materials/GemMaterial.js +253 -0
  162. package/dist/materials/GemMaterial.js.map +1 -0
  163. package/dist/materials/MeshUnlitMaterialParameters.d.ts +4 -0
  164. package/dist/materials/MeshUnlitMaterialParameters.d.ts.map +1 -0
  165. package/dist/materials/MeshUnlitMaterialParameters.js +3 -0
  166. package/dist/materials/MeshUnlitMaterialParameters.js.map +1 -0
  167. package/dist/materials/MultiPointsMaterial.d.ts +94 -0
  168. package/dist/materials/MultiPointsMaterial.d.ts.map +1 -0
  169. package/dist/materials/MultiPointsMaterial.js +567 -0
  170. package/dist/materials/MultiPointsMaterial.js.map +1 -0
  171. package/dist/materials/SpecularGlossinessMaterial.d.ts +14 -0
  172. package/dist/materials/SpecularGlossinessMaterial.d.ts.map +1 -0
  173. package/dist/materials/SpecularGlossinessMaterial.js +162 -0
  174. package/dist/materials/SpecularGlossinessMaterial.js.map +1 -0
  175. package/dist/objects/SDBone.d.ts +13 -0
  176. package/dist/objects/SDBone.d.ts.map +1 -0
  177. package/dist/objects/SDBone.js +75 -0
  178. package/dist/objects/SDBone.js.map +1 -0
  179. package/dist/objects/SDColor.d.ts +17 -0
  180. package/dist/objects/SDColor.d.ts.map +1 -0
  181. package/dist/objects/SDColor.js +49 -0
  182. package/dist/objects/SDColor.js.map +1 -0
  183. package/dist/objects/SDData.d.ts +19 -0
  184. package/dist/objects/SDData.d.ts.map +1 -0
  185. package/dist/objects/SDData.js +48 -0
  186. package/dist/objects/SDData.js.map +1 -0
  187. package/dist/objects/SDObject.d.ts +14 -0
  188. package/dist/objects/SDObject.d.ts.map +1 -0
  189. package/dist/objects/SDObject.js +81 -0
  190. package/dist/objects/SDObject.js.map +1 -0
  191. package/dist/shaders/PCSS.d.ts +3 -0
  192. package/dist/shaders/PCSS.d.ts.map +1 -0
  193. package/dist/shaders/PCSS.js +127 -0
  194. package/dist/shaders/PCSS.js.map +1 -0
  195. package/dist/shaders/gem.d.ts +3 -0
  196. package/dist/shaders/gem.d.ts.map +1 -0
  197. package/dist/shaders/gem.js +578 -0
  198. package/dist/shaders/gem.js.map +1 -0
  199. package/dist/shaders/multi_points.d.ts +3 -0
  200. package/dist/shaders/multi_points.d.ts.map +1 -0
  201. package/dist/shaders/multi_points.js +294 -0
  202. package/dist/shaders/multi_points.js.map +1 -0
  203. package/dist/styling/viewport-css.d.ts +2 -0
  204. package/dist/styling/viewport-css.d.ts.map +1 -0
  205. package/dist/styling/viewport-css.js +117 -0
  206. package/dist/styling/viewport-css.js.map +1 -0
  207. package/dist/three/font.d.ts +2365 -0
  208. package/dist/three/font.d.ts.map +1 -0
  209. package/dist/three/font.js +6 -0
  210. package/dist/three/font.js.map +1 -0
  211. package/dist/three/geometries/TextGeometry.d.ts +22 -0
  212. package/dist/three/geometries/TextGeometry.d.ts.map +1 -0
  213. package/dist/three/geometries/TextGeometry.js +45 -0
  214. package/dist/three/geometries/TextGeometry.js.map +1 -0
  215. package/dist/three/loaders/FontLoader.d.ts +15 -0
  216. package/dist/three/loaders/FontLoader.d.ts.map +1 -0
  217. package/dist/three/loaders/FontLoader.js +118 -0
  218. package/dist/three/loaders/FontLoader.js.map +1 -0
  219. package/dist/three/loaders/RGBELoader.d.ts +24 -0
  220. package/dist/three/loaders/RGBELoader.d.ts.map +1 -0
  221. package/dist/three/loaders/RGBELoader.js +299 -0
  222. package/dist/three/loaders/RGBELoader.js.map +1 -0
  223. package/dist/types/IThreejsData.d.ts +7 -0
  224. package/dist/types/IThreejsData.d.ts.map +1 -0
  225. package/dist/types/IThreejsData.js +3 -0
  226. package/dist/types/IThreejsData.js.map +1 -0
  227. package/dist/types/ThreejsData.d.ts +11 -0
  228. package/dist/types/ThreejsData.d.ts.map +1 -0
  229. package/dist/types/ThreejsData.js +42 -0
  230. package/dist/types/ThreejsData.js.map +1 -0
  231. package/package.json +65 -0
  232. package/src/RenderingEngine.ts +1342 -0
  233. package/src/index.ts +23 -0
  234. package/src/injectors/Tag3dGeometryCreationInjector.ts +170 -0
  235. package/src/injectors/TextureUnifierInjector.ts +224 -0
  236. package/src/interfaces/ILoader.ts +3 -0
  237. package/src/interfaces/IPostProcessingEffectDefinitions.ts +402 -0
  238. package/src/interfaces/IRenderingEngine.ts +48 -0
  239. package/src/loaders/EnvironmentMapLoader.ts +355 -0
  240. package/src/loaders/GeometryLoader.ts +565 -0
  241. package/src/loaders/HTMLElementAnchorLoader.ts +107 -0
  242. package/src/loaders/LightLoader.ts +171 -0
  243. package/src/loaders/MaterialLoader.ts +1418 -0
  244. package/src/managers/CameraManager.ts +178 -0
  245. package/src/managers/EnvironmentGeometryManager.ts +224 -0
  246. package/src/managers/PostProcessingManager.ts +1169 -0
  247. package/src/managers/RenderingManager.ts +657 -0
  248. package/src/managers/SceneTracingManager.ts +120 -0
  249. package/src/managers/SceneTreeManager.ts +569 -0
  250. package/src/managers/postprocessing/GodRaysManager.ts +52 -0
  251. package/src/managers/postprocessing/OutlineManager.ts +58 -0
  252. package/src/managers/postprocessing/SSAARenderPass.ts +339 -0
  253. package/src/managers/postprocessing/SelectiveBloomManager.ts +58 -0
  254. package/src/managers/postprocessing/ao/ao/AOEffect.ts +180 -0
  255. package/src/managers/postprocessing/ao/ao/AOPass.ts +128 -0
  256. package/src/managers/postprocessing/ao/ao/shader/ao_compose.glsl +17 -0
  257. package/src/managers/postprocessing/ao/ao/shader/ao_compose.ts +19 -0
  258. package/src/managers/postprocessing/ao/hbao/HBAOEffect.ts +41 -0
  259. package/src/managers/postprocessing/ao/hbao/shader/hbao.glsl +96 -0
  260. package/src/managers/postprocessing/ao/hbao/shader/hbao.ts +98 -0
  261. package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.glsl +92 -0
  262. package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.ts +95 -0
  263. package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +245 -0
  264. package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.glsl +125 -0
  265. package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.ts +127 -0
  266. package/src/managers/postprocessing/ao/ssao/SSAOEffect.ts +106 -0
  267. package/src/managers/postprocessing/ao/ssao/shader/ssao.glsl +128 -0
  268. package/src/managers/postprocessing/ao/ssao/shader/ssao.ts +130 -0
  269. package/src/managers/postprocessing/ao/utils/shader/basic.glsl +6 -0
  270. package/src/managers/postprocessing/ao/utils/shader/basic.ts +8 -0
  271. package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.glsl +36 -0
  272. package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts +38 -0
  273. package/src/managers/postprocessing/utils/CopyMaterial.ts +130 -0
  274. package/src/managers/postprocessing/utils/CopyShader.ts +39 -0
  275. package/src/managers/postprocessing/utils/FullScreenQuad.ts +47 -0
  276. package/src/managers/postprocessing/utils/NormalPass.ts +222 -0
  277. package/src/managers/postprocessing/utils/RenderPass.ts +366 -0
  278. package/src/materials/GemMaterial.ts +268 -0
  279. package/src/materials/MeshUnlitMaterialParameters.ts +4 -0
  280. package/src/materials/MultiPointsMaterial.ts +646 -0
  281. package/src/materials/SpecularGlossinessMaterial.ts +182 -0
  282. package/src/objects/SDBone.ts +51 -0
  283. package/src/objects/SDColor.ts +54 -0
  284. package/src/objects/SDData.ts +44 -0
  285. package/src/objects/SDObject.ts +58 -0
  286. package/src/shaders/PCSS.ts +124 -0
  287. package/src/shaders/gem.ts +575 -0
  288. package/src/shaders/gem_frag.glsl +517 -0
  289. package/src/shaders/gem_vert.glsl +53 -0
  290. package/src/shaders/multi_points.ts +291 -0
  291. package/src/shaders/multi_points_frag.glsl +166 -0
  292. package/src/shaders/multi_points_vert.glsl +120 -0
  293. package/src/styling/viewport-css.ts +113 -0
  294. package/src/styling/viewport.css +111 -0
  295. package/src/three/font.ts +2 -0
  296. package/src/three/geometries/TextGeometry.ts +58 -0
  297. package/src/three/loaders/FontLoader.ts +205 -0
  298. package/src/three/loaders/RGBELoader.ts +496 -0
  299. package/src/types/IThreejsData.ts +16 -0
  300. package/src/types/ThreejsData.ts +43 -0
  301. package/tsconfig.json +20 -0
@@ -0,0 +1,115 @@
1
+ /**
2
+ * A pass that renders a given scene into the input buffer or to screen.
3
+ *
4
+ * This pass uses a {@link ClearPass} to clear the target buffer.
5
+ */
6
+ import { Pass, ClearPass, OverrideMaterialManager } from "postprocessing";
7
+ import { Scene, Camera, Material, WebGLRenderer, WebGLRenderTarget } from "three";
8
+ export declare class RenderPass extends Pass {
9
+ clearPass: ClearPass;
10
+ overrideMaterialManager: OverrideMaterialManager | null;
11
+ ignoreBackground: boolean;
12
+ skipShadowMapUpdate: boolean;
13
+ selection: any;
14
+ /**
15
+ * Constructs a new render pass.
16
+ *
17
+ * @param {Scene} scene - The scene to render.
18
+ * @param {Camera} camera - The camera to use to render the scene.
19
+ * @param {Material} [overrideMaterial=null] - An override material.
20
+ */
21
+ constructor(scene: Scene, camera: Camera, overrideMaterial?: Material | null);
22
+ set mainScene(value: Scene);
23
+ set mainCamera(value: Camera);
24
+ get renderToScreen(): boolean;
25
+ set renderToScreen(value: boolean);
26
+ /**
27
+ * The current override material.
28
+ *
29
+ * @type {Material}
30
+ */
31
+ get overrideMaterial(): any;
32
+ set overrideMaterial(value: any);
33
+ /**
34
+ * Returns the current override material.
35
+ *
36
+ * @deprecated Use overrideMaterial instead.
37
+ * @return {Material} The material.
38
+ */
39
+ getOverrideMaterial(): Material;
40
+ /**
41
+ * Sets the override material.
42
+ *
43
+ * @deprecated Use overrideMaterial instead.
44
+ * @return {Material} value - The material.
45
+ */
46
+ setOverrideMaterial(value: any): void;
47
+ /**
48
+ * Indicates whether the target buffer should be cleared before rendering.
49
+ *
50
+ * @type {Boolean}
51
+ * @deprecated Use clearPass.enabled instead.
52
+ */
53
+ get clear(): boolean;
54
+ set clear(value: boolean);
55
+ /**
56
+ * Returns the selection. Default is `null` (no restriction).
57
+ *
58
+ * @deprecated Use selection instead.
59
+ * @return {Selection} The selection.
60
+ */
61
+ getSelection(): Selection;
62
+ /**
63
+ * Sets the selection. Set to `null` to disable.
64
+ *
65
+ * @deprecated Use selection instead.
66
+ * @param {Selection} value - The selection.
67
+ */
68
+ setSelection(value: Selection): void;
69
+ /**
70
+ * Indicates whether the scene background is disabled.
71
+ *
72
+ * @deprecated Use ignoreBackground instead.
73
+ * @return {Boolean} Whether the scene background is disabled.
74
+ */
75
+ isBackgroundDisabled(): boolean;
76
+ /**
77
+ * Enables or disables the scene background.
78
+ *
79
+ * @deprecated Use ignoreBackground instead.
80
+ * @param {Boolean} value - Whether the scene background should be disabled.
81
+ */
82
+ setBackgroundDisabled(value: boolean): void;
83
+ /**
84
+ * Indicates whether the shadow map auto update is disabled.
85
+ *
86
+ * @deprecated Use skipShadowMapUpdate instead.
87
+ * @return {Boolean} Whether the shadow map update is disabled.
88
+ */
89
+ isShadowMapDisabled(): boolean;
90
+ /**
91
+ * Enables or disables the shadow map auto update.
92
+ *
93
+ * @deprecated Use skipShadowMapUpdate instead.
94
+ * @param {Boolean} value - Whether the shadow map auto update should be disabled.
95
+ */
96
+ setShadowMapDisabled(value: boolean): void;
97
+ /**
98
+ * Returns the clear pass.
99
+ *
100
+ * @deprecated Use clearPass.enabled instead.
101
+ * @return {ClearPass} The clear pass.
102
+ */
103
+ getClearPass(): ClearPass;
104
+ /**
105
+ * Renders the scene.
106
+ *
107
+ * @param {WebGLRenderer} renderer - The renderer.
108
+ * @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
109
+ * @param {WebGLRenderTarget} outputBuffer - A frame buffer that serves as the output render target unless this pass renders to screen.
110
+ * @param {Number} [deltaTime] - The time between the last frame and the current one in seconds.
111
+ * @param {Boolean} [stencilTest] - Indicates whether a stencil mask is active.
112
+ */
113
+ render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, outputBuffer: WebGLRenderTarget, deltaTime: number, stencilTest: boolean): void;
114
+ }
115
+ //# sourceMappingURL=RenderPass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPass.d.ts","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/RenderPass.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAA8E,MAAM,OAAO,CAAC;AAG9J,qBAAa,UAAW,SAAQ,IAAI;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,GAAG,CAAC;IAEf;;;;;;OAMG;gBAES,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAE,QAAQ,GAAG,IAAW;IAmDlF,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAIzB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAI3B;IAED,IAAI,cAAc,YAIjB;IAED,IAAI,cAAc,CAAC,KAAK,SAAA,EAKvB;IAED;;;;OAIG;IAEH,IAAI,gBAAgB,QAKnB;IAED,IAAI,gBAAgB,CAAC,KAAK,KAAA,EAuBzB;IAED;;;;;OAKG;IAEH,mBAAmB,IAAI,QAAQ;IAM/B;;;;;OAKG;IAEH,mBAAmB,CAAC,KAAK,EAAE,GAAG;IAM9B;;;;;OAKG;IAEH,IAAI,KAAK,YAIR;IAED,IAAI,KAAK,CAAC,KAAK,SAAA,EAId;IAED;;;;;OAKG;IAEH,YAAY,IAAI,SAAS;IAMzB;;;;;OAKG;IAEH,YAAY,CAAC,KAAK,EAAE,SAAS;IAM7B;;;;;OAKG;IAEH,oBAAoB,IAAI,OAAO;IAM/B;;;;;OAKG;IAEH,qBAAqB,CAAC,KAAK,EAAE,OAAO;IAMpC;;;;;OAKG;IAEH,mBAAmB,IAAI,OAAO;IAM9B;;;;;OAKG;IAEH,oBAAoB,CAAC,KAAK,EAAE,OAAO;IAMnC;;;;;OAKG;IAEH,YAAY,IAAI,SAAS;IAMzB;;;;;;;;OAQG;IAEH,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;CA+E3I"}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ /**
3
+ * A pass that renders a given scene into the input buffer or to screen.
4
+ *
5
+ * This pass uses a {@link ClearPass} to clear the target buffer.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RenderPass = void 0;
9
+ const postprocessing_1 = require("postprocessing");
10
+ const three_1 = require("three");
11
+ const GemMaterial_1 = require("../../../materials/GemMaterial");
12
+ class RenderPass extends postprocessing_1.Pass {
13
+ /**
14
+ * Constructs a new render pass.
15
+ *
16
+ * @param {Scene} scene - The scene to render.
17
+ * @param {Camera} camera - The camera to use to render the scene.
18
+ * @param {Material} [overrideMaterial=null] - An override material.
19
+ */
20
+ constructor(scene, camera, overrideMaterial = null) {
21
+ super("RenderPass", scene, camera);
22
+ this.needsSwap = false;
23
+ /**
24
+ * A clear pass.
25
+ *
26
+ * @type {ClearPass}
27
+ * @readonly
28
+ */
29
+ this.clearPass = new postprocessing_1.ClearPass();
30
+ /**
31
+ * An override material manager.
32
+ *
33
+ * @type {OverrideMaterialManager}
34
+ * @private
35
+ */
36
+ this.overrideMaterialManager = (overrideMaterial === null) ? null : new postprocessing_1.OverrideMaterialManager(overrideMaterial);
37
+ /**
38
+ * Indicates whether the scene background should be ignored.
39
+ *
40
+ * @type {Boolean}
41
+ */
42
+ this.ignoreBackground = false;
43
+ /**
44
+ * Indicates whether the shadow map auto update should be skipped.
45
+ *
46
+ * @type {Boolean}
47
+ */
48
+ this.skipShadowMapUpdate = false;
49
+ /**
50
+ * A selection of objects to render.
51
+ *
52
+ * @type {Selection}
53
+ * @readonly
54
+ */
55
+ this.selection = null;
56
+ }
57
+ set mainScene(value) {
58
+ this.scene = value;
59
+ }
60
+ set mainCamera(value) {
61
+ this.camera = value;
62
+ }
63
+ get renderToScreen() {
64
+ return super.renderToScreen;
65
+ }
66
+ set renderToScreen(value) {
67
+ super.renderToScreen = value;
68
+ this.clearPass.renderToScreen = value;
69
+ }
70
+ /**
71
+ * The current override material.
72
+ *
73
+ * @type {Material}
74
+ */
75
+ get overrideMaterial() {
76
+ const manager = this.overrideMaterialManager;
77
+ return (manager !== null) ? manager.material : null;
78
+ }
79
+ set overrideMaterial(value) {
80
+ const manager = this.overrideMaterialManager;
81
+ if (value !== null) {
82
+ if (manager !== null) {
83
+ manager.setMaterial(value);
84
+ }
85
+ else {
86
+ this.overrideMaterialManager = new postprocessing_1.OverrideMaterialManager(value);
87
+ }
88
+ }
89
+ else if (manager !== null) {
90
+ manager.dispose();
91
+ this.overrideMaterialManager = null;
92
+ }
93
+ }
94
+ /**
95
+ * Returns the current override material.
96
+ *
97
+ * @deprecated Use overrideMaterial instead.
98
+ * @return {Material} The material.
99
+ */
100
+ getOverrideMaterial() {
101
+ return this.overrideMaterial;
102
+ }
103
+ /**
104
+ * Sets the override material.
105
+ *
106
+ * @deprecated Use overrideMaterial instead.
107
+ * @return {Material} value - The material.
108
+ */
109
+ setOverrideMaterial(value) {
110
+ this.overrideMaterial = value;
111
+ }
112
+ /**
113
+ * Indicates whether the target buffer should be cleared before rendering.
114
+ *
115
+ * @type {Boolean}
116
+ * @deprecated Use clearPass.enabled instead.
117
+ */
118
+ get clear() {
119
+ return this.clearPass.enabled;
120
+ }
121
+ set clear(value) {
122
+ this.clearPass.enabled = value;
123
+ }
124
+ /**
125
+ * Returns the selection. Default is `null` (no restriction).
126
+ *
127
+ * @deprecated Use selection instead.
128
+ * @return {Selection} The selection.
129
+ */
130
+ getSelection() {
131
+ return this.selection;
132
+ }
133
+ /**
134
+ * Sets the selection. Set to `null` to disable.
135
+ *
136
+ * @deprecated Use selection instead.
137
+ * @param {Selection} value - The selection.
138
+ */
139
+ setSelection(value) {
140
+ this.selection = value;
141
+ }
142
+ /**
143
+ * Indicates whether the scene background is disabled.
144
+ *
145
+ * @deprecated Use ignoreBackground instead.
146
+ * @return {Boolean} Whether the scene background is disabled.
147
+ */
148
+ isBackgroundDisabled() {
149
+ return this.ignoreBackground;
150
+ }
151
+ /**
152
+ * Enables or disables the scene background.
153
+ *
154
+ * @deprecated Use ignoreBackground instead.
155
+ * @param {Boolean} value - Whether the scene background should be disabled.
156
+ */
157
+ setBackgroundDisabled(value) {
158
+ this.ignoreBackground = value;
159
+ }
160
+ /**
161
+ * Indicates whether the shadow map auto update is disabled.
162
+ *
163
+ * @deprecated Use skipShadowMapUpdate instead.
164
+ * @return {Boolean} Whether the shadow map update is disabled.
165
+ */
166
+ isShadowMapDisabled() {
167
+ return this.skipShadowMapUpdate;
168
+ }
169
+ /**
170
+ * Enables or disables the shadow map auto update.
171
+ *
172
+ * @deprecated Use skipShadowMapUpdate instead.
173
+ * @param {Boolean} value - Whether the shadow map auto update should be disabled.
174
+ */
175
+ setShadowMapDisabled(value) {
176
+ this.skipShadowMapUpdate = value;
177
+ }
178
+ /**
179
+ * Returns the clear pass.
180
+ *
181
+ * @deprecated Use clearPass.enabled instead.
182
+ * @return {ClearPass} The clear pass.
183
+ */
184
+ getClearPass() {
185
+ return this.clearPass;
186
+ }
187
+ /**
188
+ * Renders the scene.
189
+ *
190
+ * @param {WebGLRenderer} renderer - The renderer.
191
+ * @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
192
+ * @param {WebGLRenderTarget} outputBuffer - A frame buffer that serves as the output render target unless this pass renders to screen.
193
+ * @param {Number} [deltaTime] - The time between the last frame and the current one in seconds.
194
+ * @param {Boolean} [stencilTest] - Indicates whether a stencil mask is active.
195
+ */
196
+ render(renderer, inputBuffer, outputBuffer, deltaTime, stencilTest) {
197
+ const materialsNotRenderer = [];
198
+ this.scene.traverse(function (object) {
199
+ if (object.visible === true) {
200
+ if (object instanceof three_1.Mesh && object.material) {
201
+ if (object.material instanceof three_1.MeshPhysicalMaterial && !(object.material instanceof GemMaterial_1.GemMaterial) && object.material.transparent) {
202
+ materialsNotRenderer.push(object);
203
+ object.visible = false;
204
+ }
205
+ }
206
+ if (object instanceof three_1.Line || object instanceof three_1.LineLoop || object instanceof three_1.LineSegments || object instanceof three_1.Points) {
207
+ materialsNotRenderer.push(object);
208
+ object.visible = false;
209
+ }
210
+ if (object.userData.ambientOcclusion === false) {
211
+ materialsNotRenderer.push(object);
212
+ object.visible = false;
213
+ }
214
+ }
215
+ });
216
+ const scene = this.scene;
217
+ const camera = this.camera;
218
+ const selection = this.selection;
219
+ const mask = camera.layers.mask;
220
+ const background = scene.background;
221
+ const shadowMapAutoUpdate = renderer.shadowMap.autoUpdate;
222
+ const renderTarget = this.renderToScreen ? null : inputBuffer;
223
+ if (selection !== null) {
224
+ camera.layers.set(selection.getLayer());
225
+ }
226
+ if (this.skipShadowMapUpdate) {
227
+ renderer.shadowMap.autoUpdate = false;
228
+ }
229
+ if (this.ignoreBackground || this.clearPass.overrideClearColor !== null) {
230
+ scene.background = null;
231
+ }
232
+ if (this.clearPass.enabled) {
233
+ this.clearPass.render(renderer, inputBuffer, inputBuffer);
234
+ }
235
+ renderer.setRenderTarget(renderTarget);
236
+ if (this.overrideMaterialManager !== null) {
237
+ this.overrideMaterialManager.render(renderer, scene, camera);
238
+ }
239
+ else {
240
+ renderer.render(scene, camera);
241
+ }
242
+ // Restore original values.
243
+ camera.layers.mask = mask;
244
+ scene.background = background;
245
+ renderer.shadowMap.autoUpdate = shadowMapAutoUpdate;
246
+ for (let i = 0; i < materialsNotRenderer.length; i++)
247
+ materialsNotRenderer[i].visible = true;
248
+ }
249
+ }
250
+ exports.RenderPass = RenderPass;
251
+ //# sourceMappingURL=RenderPass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPass.js","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/RenderPass.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import * as THREE from 'three';
2
+ import { MeshPhysicalMaterial, MeshPhysicalMaterialParameters } from 'three';
3
+ export interface GemMaterialParameters extends MeshPhysicalMaterialParameters {
4
+ refractionIndex?: number | undefined;
5
+ impurityMap?: THREE.Texture | null | undefined;
6
+ impurityScale?: number | undefined;
7
+ colorTransferBegin?: THREE.Color | undefined;
8
+ colorTransferEnd?: THREE.Color | undefined;
9
+ center?: THREE.Vector3 | undefined;
10
+ radius?: number | undefined;
11
+ sphericalNormalMap?: THREE.CubeTexture | null | undefined;
12
+ gamma?: number | undefined;
13
+ contrast?: number | undefined;
14
+ brightness?: number | undefined;
15
+ dispersion?: number | undefined;
16
+ tracingDepth?: number | undefined;
17
+ tracingOpacity?: number | undefined;
18
+ }
19
+ export declare class GemMaterial extends MeshPhysicalMaterial {
20
+ isGemMaterial: boolean;
21
+ refractionIndex: number;
22
+ impurityMap: THREE.Texture | null;
23
+ impurityScale: number;
24
+ colorTransferBegin: THREE.Color;
25
+ colorTransferEnd: THREE.Color;
26
+ center: THREE.Vector3;
27
+ tracingDepth: number;
28
+ radius: number;
29
+ sphericalNormalMap: THREE.CubeTexture | null;
30
+ gamma: number;
31
+ contrast: number;
32
+ brightness: number;
33
+ dispersion: number;
34
+ tracingOpacity: number;
35
+ constructor(params: GemMaterialParameters);
36
+ copy(s: THREE.Material): this;
37
+ }
38
+ //# sourceMappingURL=GemMaterial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GemMaterial.d.ts","sourceRoot":"","sources":["../../src/materials/GemMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,OAAO,CAAC;AAG7E,MAAM,WAAW,qBAAsB,SAAQ,8BAA8B;IAGzE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,kBAAkB,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;IAC7C,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,kBAAkB,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAGvC;AAED,qBAAa,WAAY,SAAQ,oBAAoB;IAG1C,aAAa,EAAE,OAAO,CAAC;IAEvB,eAAe,EAAE,MAAM,CAAO;IAC9B,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAQ;IACzC,aAAa,EAAE,MAAM,CAAO;IAC5B,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAA6B;IAC5D,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAA6B;IAC1D,MAAM,EAAE,KAAK,CAAC,OAAO,CAA4B;IACjD,YAAY,EAAE,MAAM,CAAK;IACzB,MAAM,EAAE,MAAM,CAAO;IACrB,kBAAkB,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAQ;IACpD,KAAK,EAAE,MAAM,CAAO;IACpB,QAAQ,EAAE,MAAM,CAAO;IACvB,UAAU,EAAE,MAAM,CAAO;IACzB,UAAU,EAAE,MAAM,CAAO;IACzB,cAAc,EAAE,MAAM,CAAO;gBAMxB,MAAM,EAAE,qBAAqB;IAkMlC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ;CAwBhC"}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.GemMaterial = void 0;
27
+ const THREE = __importStar(require("three"));
28
+ const three_1 = require("three");
29
+ const gem_1 = require("../shaders/gem");
30
+ class GemMaterial extends three_1.MeshPhysicalMaterial {
31
+ // #endregion Properties (1)
32
+ // #region Constructors (1)
33
+ constructor(params) {
34
+ super();
35
+ this.refractionIndex = 2.4;
36
+ this.impurityMap = null;
37
+ this.impurityScale = 1.0;
38
+ this.colorTransferBegin = new THREE.Color(0xffffff);
39
+ this.colorTransferEnd = new THREE.Color(0xffffff);
40
+ this.center = new THREE.Vector3(0, 0, 0);
41
+ this.tracingDepth = 5;
42
+ this.radius = 1.0;
43
+ this.sphericalNormalMap = null;
44
+ this.gamma = 1.0;
45
+ this.contrast = 1.0;
46
+ this.brightness = 0.0;
47
+ this.dispersion = 0.0;
48
+ this.tracingOpacity = 0.0;
49
+ this.isGemMaterial = true;
50
+ const uniforms = {
51
+ refractionIndex: { value: 2.4 },
52
+ impurityMap: { value: null },
53
+ impurityScale: { value: 1.0 },
54
+ colorTransferBegin: { value: new THREE.Color(0xffffff) },
55
+ colorTransferEnd: { value: new THREE.Color(0xffffff) },
56
+ center: { value: new THREE.Vector3(0, 0, 0) },
57
+ tracingDepth: { value: 5 },
58
+ radius: { value: 1.0 },
59
+ sphericalNormalMap: { value: null },
60
+ gamma: { value: 1.0 },
61
+ contrast: { value: 1.0 },
62
+ brightness: { value: 0.0 },
63
+ dispersion: { value: 0.0 },
64
+ tracingOpacity: { value: 0.0 }
65
+ };
66
+ this._extraUniforms = uniforms;
67
+ this.onBeforeCompile = function (shader) {
68
+ for (const uniformName in uniforms) {
69
+ shader.uniforms[uniformName] = uniforms[uniformName];
70
+ }
71
+ shader.vertexShader = gem_1.vert;
72
+ shader.fragmentShader = gem_1.frag;
73
+ };
74
+ Object.defineProperties(this, {
75
+ tracingDepth: {
76
+ get: function () {
77
+ return uniforms.tracingDepth.value;
78
+ },
79
+ set: function (v) {
80
+ uniforms.tracingDepth.value = v;
81
+ if (v) {
82
+ this.defines.TRACING_DEPTH = Math.floor(v);
83
+ }
84
+ else {
85
+ delete this.defines.TRACING_DEPTH;
86
+ }
87
+ }
88
+ },
89
+ refractionIndex: {
90
+ get: function () {
91
+ return uniforms.refractionIndex.value;
92
+ },
93
+ set: function (v) {
94
+ uniforms.refractionIndex.value = v;
95
+ }
96
+ },
97
+ impurityMap: {
98
+ get: function () {
99
+ return uniforms.impurityMap.value;
100
+ },
101
+ set: function (v) {
102
+ uniforms.impurityMap.value = v;
103
+ if (v) {
104
+ this.defines.USE_IMPURITYMAP = '';
105
+ this.defines.USE_UV = '';
106
+ }
107
+ else {
108
+ delete this.defines.USE_IMPURITYMAP;
109
+ delete this.defines.USE_UV;
110
+ }
111
+ }
112
+ },
113
+ impurityScale: {
114
+ get: function () {
115
+ return uniforms.impurityScale.value;
116
+ },
117
+ set: function (v) {
118
+ uniforms.impurityScale.value = v;
119
+ }
120
+ },
121
+ colorTransferBegin: {
122
+ get: function () {
123
+ return uniforms.colorTransferBegin.value;
124
+ },
125
+ set: function (v) {
126
+ uniforms.colorTransferBegin.value = v;
127
+ }
128
+ },
129
+ colorTransferEnd: {
130
+ get: function () {
131
+ return uniforms.colorTransferEnd.value;
132
+ },
133
+ set: function (v) {
134
+ uniforms.colorTransferEnd.value = v;
135
+ }
136
+ },
137
+ center: {
138
+ get: function () {
139
+ return uniforms.center.value;
140
+ },
141
+ set: function (v) {
142
+ uniforms.center.value = v;
143
+ }
144
+ },
145
+ radius: {
146
+ get: function () {
147
+ return uniforms.radius.value;
148
+ },
149
+ set: function (v) {
150
+ uniforms.radius.value = v;
151
+ }
152
+ },
153
+ sphericalNormalMap: {
154
+ get: function () {
155
+ return uniforms.sphericalNormalMap.value;
156
+ },
157
+ set: function (v) {
158
+ uniforms.sphericalNormalMap.value = v;
159
+ if (v) {
160
+ this.defines.USE_UV = '';
161
+ }
162
+ else {
163
+ delete this.defines.USE_UV;
164
+ }
165
+ }
166
+ },
167
+ gamma: {
168
+ get: function () {
169
+ return uniforms.gamma.value;
170
+ },
171
+ set: function (v) {
172
+ uniforms.gamma.value = v;
173
+ }
174
+ },
175
+ contrast: {
176
+ get: function () {
177
+ return uniforms.contrast.value;
178
+ },
179
+ set: function (v) {
180
+ uniforms.contrast.value = v;
181
+ }
182
+ },
183
+ brightness: {
184
+ get: function () {
185
+ return uniforms.brightness.value;
186
+ },
187
+ set: function (v) {
188
+ uniforms.brightness.value = v;
189
+ }
190
+ },
191
+ dispersion: {
192
+ get: function () {
193
+ return uniforms.dispersion.value;
194
+ },
195
+ set: function (v) {
196
+ uniforms.dispersion.value = v;
197
+ if (v !== 0) {
198
+ this.defines.DISPERSION = '';
199
+ }
200
+ else {
201
+ delete this.defines.DISPERSION;
202
+ }
203
+ }
204
+ },
205
+ tracingOpacity: {
206
+ get: function () {
207
+ return uniforms.tracingOpacity.value;
208
+ },
209
+ set: function (v) {
210
+ uniforms.tracingOpacity.value = v;
211
+ }
212
+ }
213
+ });
214
+ this.refractionIndex = params.refractionIndex || 2.4;
215
+ this.impurityMap = params.impurityMap || null;
216
+ this.impurityScale = params.impurityScale || 1;
217
+ this.colorTransferBegin.copy(params.colorTransferBegin || new THREE.Color(0xffffff));
218
+ this.colorTransferEnd.copy(params.colorTransferEnd || new THREE.Color(0xffffff));
219
+ this.center.copy(params.center || new THREE.Vector3(0, 0, 0));
220
+ this.tracingDepth = params.tracingDepth || 5;
221
+ this.radius = params.radius || 1;
222
+ this.sphericalNormalMap = params.sphericalNormalMap || null;
223
+ this.gamma = params.gamma || 1;
224
+ this.contrast = params.contrast || 1;
225
+ this.brightness = params.brightness || 0;
226
+ this.dispersion = params.dispersion || 0;
227
+ this.tracingOpacity = params.tracingOpacity || 0;
228
+ this.setValues(params);
229
+ }
230
+ // #endregion Constructors (1)
231
+ // #region Public Methods (1)
232
+ copy(s) {
233
+ super.copy(s);
234
+ const source = s;
235
+ this.refractionIndex = source.refractionIndex;
236
+ this.impurityMap = source.impurityMap;
237
+ this.impurityScale = source.impurityScale;
238
+ this.colorTransferBegin.copy(source.colorTransferBegin);
239
+ this.colorTransferEnd.copy(source.colorTransferEnd);
240
+ this.center.copy(source.center);
241
+ this.tracingDepth = source.tracingDepth;
242
+ this.radius = source.radius;
243
+ this.sphericalNormalMap = source.sphericalNormalMap;
244
+ this.gamma = source.gamma;
245
+ this.contrast = source.contrast;
246
+ this.brightness = source.brightness;
247
+ this.dispersion = source.dispersion;
248
+ this.tracingOpacity = source.tracingOpacity;
249
+ return this;
250
+ }
251
+ }
252
+ exports.GemMaterial = GemMaterial;
253
+ //# sourceMappingURL=GemMaterial.js.map