@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,268 @@
1
+ import * as THREE from 'three';
2
+ import { MeshPhysicalMaterial, MeshPhysicalMaterialParameters } from 'three';
3
+ import { frag, vert } from '../shaders/gem';
4
+
5
+ export interface GemMaterialParameters extends MeshPhysicalMaterialParameters {
6
+ // #region Properties (4)
7
+
8
+ refractionIndex?: number | undefined;
9
+ impurityMap?: THREE.Texture | null | undefined;
10
+ impurityScale?: number | undefined;
11
+ colorTransferBegin?: THREE.Color | undefined;
12
+ colorTransferEnd?: THREE.Color | undefined;
13
+ center?: THREE.Vector3 | undefined;
14
+ radius?: number | undefined;
15
+ sphericalNormalMap?: THREE.CubeTexture | null | undefined;
16
+ gamma?: number | undefined;
17
+ contrast?: number | undefined;
18
+ brightness?: number | undefined;
19
+ dispersion?: number | undefined;
20
+ tracingDepth?: number | undefined;
21
+ tracingOpacity?: number | undefined;
22
+
23
+ // #endregion Properties (4)
24
+ }
25
+
26
+ export class GemMaterial extends MeshPhysicalMaterial {
27
+ // #region Properties (1)
28
+
29
+ public isGemMaterial: boolean;
30
+
31
+ public refractionIndex: number = 2.4;
32
+ public impurityMap: THREE.Texture | null = null;
33
+ public impurityScale: number = 1.0;
34
+ public colorTransferBegin: THREE.Color = new THREE.Color(0xffffff);
35
+ public colorTransferEnd: THREE.Color = new THREE.Color(0xffffff);
36
+ public center: THREE.Vector3 = new THREE.Vector3(0,0,0);
37
+ public tracingDepth: number = 5;
38
+ public radius: number = 1.0;
39
+ public sphericalNormalMap: THREE.CubeTexture | null = null;
40
+ public gamma: number = 1.0;
41
+ public contrast: number = 1.0;
42
+ public brightness: number = 0.0;
43
+ public dispersion: number = 0.0;
44
+ public tracingOpacity: number = 0.0;
45
+
46
+ // #endregion Properties (1)
47
+
48
+ // #region Constructors (1)
49
+
50
+ constructor(params: GemMaterialParameters) {
51
+ super();
52
+
53
+ this.isGemMaterial = true;
54
+
55
+ const uniforms: { [key: string]: { value: any } } = {
56
+ refractionIndex: { value: 2.4 },
57
+ impurityMap: { value: null },
58
+ impurityScale: { value: 1.0 },
59
+ colorTransferBegin: { value: new THREE.Color(0xffffff) },
60
+ colorTransferEnd: { value: new THREE.Color(0xffffff) },
61
+ center: { value: new THREE.Vector3(0,0,0) },
62
+ tracingDepth: { value: 5 },
63
+ radius: { value: 1.0 },
64
+ sphericalNormalMap: { value: null },
65
+ gamma: { value: 1.0 },
66
+ contrast: { value: 1.0 },
67
+ brightness: { value: 0.0 },
68
+ dispersion: { value: 0.0 },
69
+ tracingOpacity: { value: 0.0 }
70
+ };
71
+
72
+ (<any>this)._extraUniforms = uniforms;
73
+
74
+ this.onBeforeCompile = function (shader) {
75
+ for (const uniformName in uniforms) {
76
+ shader.uniforms[uniformName] = uniforms[uniformName];
77
+ }
78
+ shader.vertexShader = vert;
79
+ shader.fragmentShader = frag;
80
+ };
81
+
82
+ Object.defineProperties(this, {
83
+ tracingDepth: {
84
+ get: function () {
85
+ return uniforms.tracingDepth.value;
86
+ },
87
+ set: function (v) {
88
+ uniforms.tracingDepth.value = v;
89
+
90
+ if (v) {
91
+ this.defines.TRACING_DEPTH = Math.floor(v);
92
+ } else {
93
+ delete this.defines.TRACING_DEPTH;
94
+ }
95
+ }
96
+ },
97
+ refractionIndex: {
98
+ get: function () {
99
+ return uniforms.refractionIndex.value;
100
+ },
101
+ set: function (v) {
102
+ uniforms.refractionIndex.value = v;
103
+ }
104
+ },
105
+ impurityMap: {
106
+ get: function () {
107
+ return uniforms.impurityMap.value;
108
+ },
109
+ set: function (v) {
110
+ uniforms.impurityMap.value = v;
111
+
112
+ if (v) {
113
+ this.defines.USE_IMPURITYMAP = '';
114
+ this.defines.USE_UV = '';
115
+ } else {
116
+ delete this.defines.USE_IMPURITYMAP;
117
+ delete this.defines.USE_UV;
118
+ }
119
+ }
120
+ },
121
+ impurityScale: {
122
+ get: function () {
123
+ return uniforms.impurityScale.value;
124
+ },
125
+ set: function (v) {
126
+ uniforms.impurityScale.value = v;
127
+ }
128
+ },
129
+ colorTransferBegin: {
130
+ get: function () {
131
+ return uniforms.colorTransferBegin.value;
132
+ },
133
+ set: function (v) {
134
+ uniforms.colorTransferBegin.value = v;
135
+ }
136
+ },
137
+ colorTransferEnd: {
138
+ get: function () {
139
+ return uniforms.colorTransferEnd.value;
140
+ },
141
+ set: function (v) {
142
+ uniforms.colorTransferEnd.value = v;
143
+ }
144
+ },
145
+ center: {
146
+ get: function () {
147
+ return uniforms.center.value;
148
+ },
149
+ set: function (v) {
150
+ uniforms.center.value = v;
151
+ }
152
+ },
153
+ radius: {
154
+ get: function () {
155
+ return uniforms.radius.value;
156
+ },
157
+ set: function (v) {
158
+ uniforms.radius.value = v;
159
+ }
160
+ },
161
+ sphericalNormalMap: {
162
+ get: function () {
163
+ return uniforms.sphericalNormalMap.value;
164
+ },
165
+ set: function (v) {
166
+ uniforms.sphericalNormalMap.value = v;
167
+
168
+ if (v) {
169
+ this.defines.USE_UV = '';
170
+ } else {
171
+ delete this.defines.USE_UV;
172
+ }
173
+ }
174
+ },
175
+ gamma: {
176
+ get: function () {
177
+ return uniforms.gamma.value;
178
+ },
179
+ set: function (v) {
180
+ uniforms.gamma.value = v;
181
+ }
182
+ },
183
+ contrast: {
184
+ get: function () {
185
+ return uniforms.contrast.value;
186
+ },
187
+ set: function (v) {
188
+ uniforms.contrast.value = v;
189
+ }
190
+ },
191
+ brightness: {
192
+ get: function () {
193
+ return uniforms.brightness.value;
194
+ },
195
+ set: function (v) {
196
+ uniforms.brightness.value = v;
197
+ }
198
+ },
199
+ dispersion: {
200
+ get: function () {
201
+ return uniforms.dispersion.value;
202
+ },
203
+ set: function (v) {
204
+ uniforms.dispersion.value = v;
205
+ if (v !== 0) {
206
+ this.defines.DISPERSION = '';
207
+ } else {
208
+ delete this.defines.DISPERSION;
209
+ }
210
+ }
211
+ },
212
+ tracingOpacity: {
213
+ get: function () {
214
+ return uniforms.tracingOpacity.value;
215
+ },
216
+ set: function (v) {
217
+ uniforms.tracingOpacity.value = v;
218
+ }
219
+ }
220
+ });
221
+
222
+ this.refractionIndex = params.refractionIndex || 2.4;
223
+ this.impurityMap = params.impurityMap || null;
224
+ this.impurityScale = params.impurityScale || 1;
225
+ this.colorTransferBegin.copy(params.colorTransferBegin || new THREE.Color(0xffffff));
226
+ this.colorTransferEnd.copy(params.colorTransferEnd || new THREE.Color(0xffffff));
227
+ this.center.copy(params.center || new THREE.Vector3(0,0,0));
228
+ this.tracingDepth = params.tracingDepth || 5;
229
+ this.radius = params.radius || 1;
230
+ this.sphericalNormalMap = params.sphericalNormalMap || null;
231
+ this.gamma = params.gamma || 1;
232
+ this.contrast = params.contrast || 1;
233
+ this.brightness = params.brightness || 0;
234
+ this.dispersion = params.dispersion || 0;
235
+ this.tracingOpacity = params.tracingOpacity || 0;
236
+
237
+ this.setValues(params);
238
+ }
239
+
240
+ // #endregion Constructors (1)
241
+
242
+ // #region Public Methods (1)
243
+
244
+ public copy(s: THREE.Material) {
245
+ super.copy(s);
246
+
247
+ const source = s as GemMaterial;
248
+
249
+ this.refractionIndex = source.refractionIndex;
250
+ this.impurityMap = source.impurityMap;
251
+ this.impurityScale = source.impurityScale;
252
+ this.colorTransferBegin.copy(source.colorTransferBegin);
253
+ this.colorTransferEnd.copy(source.colorTransferEnd);
254
+ this.center.copy(source.center);
255
+ this.tracingDepth = source.tracingDepth;
256
+ this.radius = source.radius;
257
+ this.sphericalNormalMap = source.sphericalNormalMap;
258
+ this.gamma = source.gamma;
259
+ this.contrast = source.contrast;
260
+ this.brightness = source.brightness;
261
+ this.dispersion = source.dispersion;
262
+ this.tracingOpacity = source.tracingOpacity;
263
+
264
+ return this;
265
+ }
266
+
267
+ // #endregion Public Methods (1)
268
+ }
@@ -0,0 +1,4 @@
1
+ import * as THREE from 'three';
2
+ import { MeshBasicMaterialParameters } from 'three';
3
+
4
+ export interface MeshUnlitMaterialParameters extends MeshBasicMaterialParameters {}