molstar 4.2.0 → 4.3.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 (339) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +197 -197
  3. package/build/viewer/embedded.html +52 -52
  4. package/build/viewer/index.html +129 -129
  5. package/build/viewer/molstar.js +1 -1
  6. package/build/viewer/molstar.js.LICENSE.txt +9 -0
  7. package/lib/apps/docking-viewer/index.html +36 -36
  8. package/lib/apps/mesoscale-explorer/index.html +100 -100
  9. package/lib/apps/mesoscale-explorer/style.scss +33 -33
  10. package/lib/apps/viewer/app.d.ts +2 -1
  11. package/lib/apps/viewer/app.js +2 -1
  12. package/lib/apps/viewer/embedded.html +52 -52
  13. package/lib/apps/viewer/index.html +129 -129
  14. package/lib/cli/chem-comp-dict/create-ions.js +9 -9
  15. package/lib/cli/chem-comp-dict/create-saccharides.js +9 -9
  16. package/lib/cli/cifschema/util/generate.js +12 -12
  17. package/lib/cli/lipid-params/index.js +9 -9
  18. package/lib/commonjs/apps/viewer/app.d.ts +2 -1
  19. package/lib/commonjs/apps/viewer/app.js +1 -0
  20. package/lib/commonjs/cli/chem-comp-dict/create-ions.js +9 -9
  21. package/lib/commonjs/cli/chem-comp-dict/create-saccharides.js +9 -9
  22. package/lib/commonjs/cli/cifschema/util/generate.js +12 -12
  23. package/lib/commonjs/cli/lipid-params/index.js +9 -9
  24. package/lib/commonjs/examples/alpha-orbitals/example-data.js +160 -160
  25. package/lib/commonjs/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
  26. package/lib/commonjs/extensions/assembly-symmetry/prop.js +24 -24
  27. package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.js +5 -5
  28. package/lib/commonjs/extensions/dnatco/ntc-tube/behavior.js +5 -5
  29. package/lib/commonjs/extensions/geo-export/usdz-exporter.js +41 -41
  30. package/lib/commonjs/extensions/meshes/mesh-extension.d.ts +1 -0
  31. package/lib/commonjs/extensions/mp4-export/encoder.js +1 -1
  32. package/lib/commonjs/extensions/mvs/components/annotation-label/representation.d.ts +0 -2
  33. package/lib/commonjs/extensions/mvs/components/custom-label/representation.d.ts +2 -2
  34. package/lib/commonjs/extensions/mvs/tree/mvs/mvs-builder.d.ts +8 -2
  35. package/lib/commonjs/extensions/sb-ncbr/index.d.ts +8 -0
  36. package/lib/commonjs/extensions/sb-ncbr/index.js +14 -1
  37. package/lib/commonjs/extensions/sb-ncbr/tunnels/actions.d.ts +20 -0
  38. package/lib/commonjs/extensions/sb-ncbr/tunnels/actions.js +89 -0
  39. package/lib/commonjs/extensions/sb-ncbr/tunnels/algorithm.d.ts +26 -0
  40. package/lib/commonjs/extensions/sb-ncbr/tunnels/algorithm.js +474 -0
  41. package/lib/commonjs/extensions/sb-ncbr/tunnels/behavior.d.ts +40 -0
  42. package/lib/commonjs/extensions/sb-ncbr/tunnels/behavior.js +96 -0
  43. package/lib/commonjs/extensions/sb-ncbr/tunnels/data-model.d.ts +146 -0
  44. package/lib/commonjs/extensions/sb-ncbr/tunnels/data-model.js +28 -0
  45. package/lib/commonjs/extensions/sb-ncbr/tunnels/examples.d.ts +12 -0
  46. package/lib/commonjs/extensions/sb-ncbr/tunnels/examples.js +54 -0
  47. package/lib/commonjs/extensions/sb-ncbr/tunnels/props.d.ts +19 -0
  48. package/lib/commonjs/extensions/sb-ncbr/tunnels/props.js +26 -0
  49. package/lib/commonjs/extensions/sb-ncbr/tunnels/representation.d.ts +29 -0
  50. package/lib/commonjs/extensions/sb-ncbr/tunnels/representation.js +99 -0
  51. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +17 -0
  52. package/lib/commonjs/mol-canvas3d/canvas3d.js +4 -0
  53. package/lib/commonjs/mol-canvas3d/passes/dof.d.ts +34 -0
  54. package/lib/commonjs/mol-canvas3d/passes/dof.js +167 -0
  55. package/lib/commonjs/mol-canvas3d/passes/draw.d.ts +2 -0
  56. package/lib/commonjs/mol-canvas3d/passes/draw.js +31 -8
  57. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +8 -0
  58. package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +8 -0
  59. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +5 -0
  60. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
  61. package/lib/commonjs/mol-gl/shader/background.frag.js +95 -95
  62. package/lib/commonjs/mol-gl/shader/background.vert.js +11 -11
  63. package/lib/commonjs/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
  64. package/lib/commonjs/mol-gl/shader/bloom/blur.frag.js +28 -28
  65. package/lib/commonjs/mol-gl/shader/bloom/composite.frag.js +33 -33
  66. package/lib/commonjs/mol-gl/shader/bloom/luminosity.frag.js +52 -52
  67. package/lib/commonjs/mol-gl/shader/cas.frag.js +144 -144
  68. package/lib/commonjs/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
  69. package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
  70. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +77 -77
  71. package/lib/commonjs/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
  72. package/lib/commonjs/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
  73. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -140
  74. package/lib/commonjs/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
  75. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
  76. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -112
  77. package/lib/commonjs/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
  78. package/lib/commonjs/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
  79. package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
  80. package/lib/commonjs/mol-gl/shader/chunks/check-transparency.glsl.js +16 -16
  81. package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
  82. package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
  83. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -60
  84. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -122
  85. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
  86. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -150
  87. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
  88. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +234 -234
  89. package/lib/commonjs/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
  90. package/lib/commonjs/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
  91. package/lib/commonjs/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
  92. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
  93. package/lib/commonjs/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
  94. package/lib/commonjs/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
  95. package/lib/commonjs/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
  96. package/lib/commonjs/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
  97. package/lib/commonjs/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
  98. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
  99. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
  100. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
  101. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
  102. package/lib/commonjs/mol-gl/shader/compose.frag.js +12 -12
  103. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
  104. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
  105. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
  106. package/lib/commonjs/mol-gl/shader/copy.frag.js +11 -11
  107. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +266 -266
  108. package/lib/commonjs/mol-gl/shader/cylinders.vert.js +89 -89
  109. package/lib/commonjs/mol-gl/shader/depth-merge.frag.js +23 -23
  110. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +362 -362
  111. package/lib/commonjs/mol-gl/shader/direct-volume.vert.js +41 -41
  112. package/lib/commonjs/mol-gl/shader/dof.frag.d.ts +7 -0
  113. package/lib/commonjs/mol-gl/shader/dof.frag.js +122 -0
  114. package/lib/commonjs/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
  115. package/lib/commonjs/mol-gl/shader/evaluate-wboit.frag.js +17 -17
  116. package/lib/commonjs/mol-gl/shader/fxaa.frag.js +228 -228
  117. package/lib/commonjs/mol-gl/shader/gaussian-density.frag.js +49 -49
  118. package/lib/commonjs/mol-gl/shader/gaussian-density.vert.js +27 -27
  119. package/lib/commonjs/mol-gl/shader/hi-z.frag.js +18 -18
  120. package/lib/commonjs/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
  121. package/lib/commonjs/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
  122. package/lib/commonjs/mol-gl/shader/image.frag.js +169 -169
  123. package/lib/commonjs/mol-gl/shader/image.vert.js +21 -21
  124. package/lib/commonjs/mol-gl/shader/lines.frag.js +42 -42
  125. package/lib/commonjs/mol-gl/shader/lines.vert.js +117 -117
  126. package/lib/commonjs/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
  127. package/lib/commonjs/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
  128. package/lib/commonjs/mol-gl/shader/marking/edge.frag.js +28 -28
  129. package/lib/commonjs/mol-gl/shader/marking/overlay.frag.js +26 -26
  130. package/lib/commonjs/mol-gl/shader/mesh.frag.js +65 -65
  131. package/lib/commonjs/mol-gl/shader/mesh.vert.js +49 -49
  132. package/lib/commonjs/mol-gl/shader/outlines.frag.js +95 -95
  133. package/lib/commonjs/mol-gl/shader/points.frag.js +59 -59
  134. package/lib/commonjs/mol-gl/shader/points.vert.js +38 -38
  135. package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +150 -150
  136. package/lib/commonjs/mol-gl/shader/quad.vert.js +10 -10
  137. package/lib/commonjs/mol-gl/shader/shadows.frag.js +123 -123
  138. package/lib/commonjs/mol-gl/shader/smaa/blend.frag.js +56 -56
  139. package/lib/commonjs/mol-gl/shader/smaa/blend.vert.js +25 -25
  140. package/lib/commonjs/mol-gl/shader/smaa/edges.frag.js +66 -66
  141. package/lib/commonjs/mol-gl/shader/smaa/edges.vert.js +26 -26
  142. package/lib/commonjs/mol-gl/shader/smaa/weights.frag.js +206 -206
  143. package/lib/commonjs/mol-gl/shader/smaa/weights.vert.js +32 -32
  144. package/lib/commonjs/mol-gl/shader/spheres.frag.js +148 -148
  145. package/lib/commonjs/mol-gl/shader/spheres.vert.js +132 -132
  146. package/lib/commonjs/mol-gl/shader/ssao-blur.frag.js +97 -97
  147. package/lib/commonjs/mol-gl/shader/ssao.frag.js +211 -211
  148. package/lib/commonjs/mol-gl/shader/text.frag.js +85 -85
  149. package/lib/commonjs/mol-gl/shader/text.vert.js +85 -85
  150. package/lib/commonjs/mol-gl/shader/util/grid3d-template.frag.js +46 -46
  151. package/lib/commonjs/mol-gl/shader-code.js +15 -15
  152. package/lib/commonjs/mol-gl/webgl/compat.js +12 -12
  153. package/lib/commonjs/mol-gl/webgl/context.js +1 -0
  154. package/lib/commonjs/mol-gl/webgl/timer.d.ts +1 -1
  155. package/lib/commonjs/mol-gl/webgl/timer.js +8 -1
  156. package/lib/commonjs/mol-math/linear-algebra/3d/minimize-rmsd.js +2 -1
  157. package/lib/commonjs/mol-plugin/animation-loop.d.ts +1 -0
  158. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +6 -6
  159. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +1 -1
  160. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +3 -3
  161. package/lib/commonjs/mol-plugin-state/animation/built-in/state-snapshots.js +7 -3
  162. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +3 -0
  163. package/lib/commonjs/servers/common/swagger-ui/indexTemplate.js +66 -66
  164. package/lib/commonjs/servers/volume/config.js +5 -5
  165. package/lib/examples/alpha-orbitals/example-data.js +160 -160
  166. package/lib/examples/alpha-orbitals/index.html +72 -72
  167. package/lib/examples/basic-wrapper/index.html +137 -137
  168. package/lib/examples/lighting/index.html +88 -88
  169. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  170. package/lib/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
  171. package/lib/extensions/assembly-symmetry/prop.js +24 -24
  172. package/lib/extensions/dnatco/confal-pyramids/behavior.js +5 -5
  173. package/lib/extensions/dnatco/ntc-tube/behavior.js +5 -5
  174. package/lib/extensions/geo-export/usdz-exporter.js +41 -41
  175. package/lib/extensions/meshes/mesh-extension.d.ts +1 -0
  176. package/lib/extensions/mp4-export/encoder.js +1 -1
  177. package/lib/extensions/mvs/components/annotation-label/representation.d.ts +0 -2
  178. package/lib/extensions/mvs/components/custom-label/representation.d.ts +2 -2
  179. package/lib/extensions/mvs/tree/mvs/mvs-builder.d.ts +8 -2
  180. package/lib/extensions/sb-ncbr/index.d.ts +8 -0
  181. package/lib/extensions/sb-ncbr/index.js +8 -0
  182. package/lib/extensions/sb-ncbr/tunnels/actions.d.ts +20 -0
  183. package/lib/extensions/sb-ncbr/tunnels/actions.js +86 -0
  184. package/lib/extensions/sb-ncbr/tunnels/algorithm.d.ts +26 -0
  185. package/lib/extensions/sb-ncbr/tunnels/algorithm.js +469 -0
  186. package/lib/extensions/sb-ncbr/tunnels/behavior.d.ts +40 -0
  187. package/lib/extensions/sb-ncbr/tunnels/behavior.js +92 -0
  188. package/lib/extensions/sb-ncbr/tunnels/data-model.d.ts +146 -0
  189. package/lib/extensions/sb-ncbr/tunnels/data-model.js +23 -0
  190. package/lib/extensions/sb-ncbr/tunnels/examples.d.ts +12 -0
  191. package/lib/extensions/sb-ncbr/tunnels/examples.js +49 -0
  192. package/lib/extensions/sb-ncbr/tunnels/props.d.ts +19 -0
  193. package/lib/extensions/sb-ncbr/tunnels/props.js +22 -0
  194. package/lib/extensions/sb-ncbr/tunnels/representation.d.ts +29 -0
  195. package/lib/extensions/sb-ncbr/tunnels/representation.js +96 -0
  196. package/lib/mol-canvas3d/canvas3d.d.ts +17 -0
  197. package/lib/mol-canvas3d/canvas3d.js +4 -0
  198. package/lib/mol-canvas3d/passes/dof.d.ts +34 -0
  199. package/lib/mol-canvas3d/passes/dof.js +163 -0
  200. package/lib/mol-canvas3d/passes/draw.d.ts +2 -0
  201. package/lib/mol-canvas3d/passes/draw.js +31 -8
  202. package/lib/mol-canvas3d/passes/image.d.ts +8 -0
  203. package/lib/mol-canvas3d/passes/postprocessing.d.ts +8 -0
  204. package/lib/mol-canvas3d/passes/postprocessing.js +5 -0
  205. package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
  206. package/lib/mol-gl/shader/background.frag.js +95 -95
  207. package/lib/mol-gl/shader/background.vert.js +11 -11
  208. package/lib/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
  209. package/lib/mol-gl/shader/bloom/blur.frag.js +28 -28
  210. package/lib/mol-gl/shader/bloom/composite.frag.js +33 -33
  211. package/lib/mol-gl/shader/bloom/luminosity.frag.js +52 -52
  212. package/lib/mol-gl/shader/cas.frag.js +144 -144
  213. package/lib/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
  214. package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
  215. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +77 -77
  216. package/lib/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
  217. package/lib/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
  218. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -140
  219. package/lib/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
  220. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
  221. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -112
  222. package/lib/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
  223. package/lib/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
  224. package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
  225. package/lib/mol-gl/shader/chunks/check-transparency.glsl.js +16 -16
  226. package/lib/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
  227. package/lib/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
  228. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -60
  229. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -122
  230. package/lib/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
  231. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -150
  232. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
  233. package/lib/mol-gl/shader/chunks/common.glsl.js +234 -234
  234. package/lib/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
  235. package/lib/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
  236. package/lib/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
  237. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
  238. package/lib/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
  239. package/lib/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
  240. package/lib/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
  241. package/lib/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
  242. package/lib/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
  243. package/lib/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
  244. package/lib/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
  245. package/lib/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
  246. package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
  247. package/lib/mol-gl/shader/compose.frag.js +12 -12
  248. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
  249. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
  250. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
  251. package/lib/mol-gl/shader/copy.frag.js +11 -11
  252. package/lib/mol-gl/shader/cylinders.frag.js +266 -266
  253. package/lib/mol-gl/shader/cylinders.vert.js +89 -89
  254. package/lib/mol-gl/shader/depth-merge.frag.js +23 -23
  255. package/lib/mol-gl/shader/direct-volume.frag.js +362 -362
  256. package/lib/mol-gl/shader/direct-volume.vert.js +41 -41
  257. package/lib/mol-gl/shader/dof.frag.d.ts +7 -0
  258. package/lib/mol-gl/shader/dof.frag.js +119 -0
  259. package/lib/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
  260. package/lib/mol-gl/shader/evaluate-wboit.frag.js +17 -17
  261. package/lib/mol-gl/shader/fxaa.frag.js +228 -228
  262. package/lib/mol-gl/shader/gaussian-density.frag.js +49 -49
  263. package/lib/mol-gl/shader/gaussian-density.vert.js +27 -27
  264. package/lib/mol-gl/shader/hi-z.frag.js +18 -18
  265. package/lib/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
  266. package/lib/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
  267. package/lib/mol-gl/shader/image.frag.js +169 -169
  268. package/lib/mol-gl/shader/image.vert.js +21 -21
  269. package/lib/mol-gl/shader/lines.frag.js +42 -42
  270. package/lib/mol-gl/shader/lines.vert.js +117 -117
  271. package/lib/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
  272. package/lib/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
  273. package/lib/mol-gl/shader/marking/edge.frag.js +28 -28
  274. package/lib/mol-gl/shader/marking/overlay.frag.js +26 -26
  275. package/lib/mol-gl/shader/mesh.frag.js +65 -65
  276. package/lib/mol-gl/shader/mesh.vert.js +49 -49
  277. package/lib/mol-gl/shader/outlines.frag.js +95 -95
  278. package/lib/mol-gl/shader/points.frag.js +59 -59
  279. package/lib/mol-gl/shader/points.vert.js +38 -38
  280. package/lib/mol-gl/shader/postprocessing.frag.js +150 -150
  281. package/lib/mol-gl/shader/quad.vert.js +10 -10
  282. package/lib/mol-gl/shader/shadows.frag.js +123 -123
  283. package/lib/mol-gl/shader/smaa/blend.frag.js +56 -56
  284. package/lib/mol-gl/shader/smaa/blend.vert.js +25 -25
  285. package/lib/mol-gl/shader/smaa/edges.frag.js +66 -66
  286. package/lib/mol-gl/shader/smaa/edges.vert.js +26 -26
  287. package/lib/mol-gl/shader/smaa/weights.frag.js +206 -206
  288. package/lib/mol-gl/shader/smaa/weights.vert.js +32 -32
  289. package/lib/mol-gl/shader/spheres.frag.js +148 -148
  290. package/lib/mol-gl/shader/spheres.vert.js +132 -132
  291. package/lib/mol-gl/shader/ssao-blur.frag.js +97 -97
  292. package/lib/mol-gl/shader/ssao.frag.js +211 -211
  293. package/lib/mol-gl/shader/text.frag.js +85 -85
  294. package/lib/mol-gl/shader/text.vert.js +85 -85
  295. package/lib/mol-gl/shader/util/grid3d-template.frag.js +46 -46
  296. package/lib/mol-gl/shader-code.js +15 -15
  297. package/lib/mol-gl/webgl/compat.js +12 -12
  298. package/lib/mol-gl/webgl/context.js +1 -0
  299. package/lib/mol-gl/webgl/timer.d.ts +1 -1
  300. package/lib/mol-gl/webgl/timer.js +8 -1
  301. package/lib/mol-math/linear-algebra/3d/minimize-rmsd.js +2 -1
  302. package/lib/mol-plugin/animation-loop.d.ts +1 -0
  303. package/lib/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +6 -6
  304. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +1 -1
  305. package/lib/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +3 -3
  306. package/lib/mol-plugin/version.js +2 -2
  307. package/lib/mol-plugin-state/animation/built-in/state-snapshots.js +7 -3
  308. package/lib/mol-plugin-ui/skin/base/base.scss +37 -37
  309. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  310. package/lib/mol-plugin-ui/skin/base/components/controls.scss +445 -445
  311. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  312. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  313. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  314. package/lib/mol-plugin-ui/skin/base/components/misc.scss +663 -663
  315. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  316. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  317. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  318. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  319. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  320. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +194 -194
  321. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  322. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  323. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  324. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  325. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  326. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  327. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  328. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  329. package/lib/mol-plugin-ui/skin/base/variables.scss +88 -88
  330. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  331. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  332. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  333. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  334. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  335. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  336. package/lib/mol-plugin-ui/viewport/simple-settings.js +3 -0
  337. package/lib/servers/common/swagger-ui/indexTemplate.js +66 -66
  338. package/lib/servers/volume/config.js +5 -5
  339. package/package.json +196 -195
@@ -6,81 +6,81 @@
6
6
  * adapted from three.js (https://github.com/mrdoob/three.js/)
7
7
  * which under the MIT License, Copyright © 2010-2021 three.js authors
8
8
  */
9
- export const apply_light_color = `
10
- #if defined(dIgnoreLight)
11
- #ifdef bumpEnabled
12
- if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
13
- material.rgb += fbm(vModelPosition * uBumpFrequency) * uBumpAmplitude * bumpiness;
14
- material.rgb -= 0.5 * uBumpAmplitude * bumpiness;
15
- }
16
- #endif
17
-
18
- #if defined(dRenderVariant_color)
19
- material.rgb += material.rgb * emissive;
20
- #endif
21
-
22
- gl_FragColor = material;
23
- #else
24
- #ifdef bumpEnabled
25
- if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
26
- normal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);
27
- }
28
- #endif
29
-
30
- vec4 color = material;
31
-
32
- ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));
33
-
34
- PhysicalMaterial physicalMaterial;
35
- physicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);
36
- #ifdef enabledFragDepth
37
- physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);
38
- #else
39
- vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));
40
- float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);
41
- physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);
42
- #endif
43
- physicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);
44
- physicalMaterial.specularF90 = 1.0;
45
-
46
- GeometricContext geometry;
47
- geometry.position = -vViewPosition;
48
- geometry.normal = normal;
49
- geometry.viewDir = normalize(vViewPosition);
50
-
51
- IncidentLight directLight;
52
- #pragma unroll_loop_start
53
- for (int i = 0; i < dLightCount; ++i) {
54
- directLight.direction = uLightDirection[i];
55
- directLight.color = uLightColor[i] * PI; // * PI for punctual light
56
- RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);
57
- }
58
- #pragma unroll_loop_end
59
-
60
- vec3 irradiance = uAmbientColor * PI; // * PI for punctual light
61
- RE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);
62
-
63
- // indirect specular only metals
64
- vec3 radiance = uAmbientColor * metalness;
65
- vec3 iblIrradiance = uAmbientColor * metalness;
66
- vec3 clearcoatRadiance = vec3(0.0);
67
- RE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);
68
-
69
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;
70
- outgoingLight = clamp(outgoingLight, 0.01, 0.99); // prevents black artifacts on specular highlight with transparent background
71
-
72
- #if defined(dRenderVariant_color)
73
- outgoingLight += color.rgb * emissive;
74
- #endif
75
-
76
- gl_FragColor = vec4(outgoingLight, color.a);
77
- #endif
78
-
79
- #if defined(dXrayShaded_on)
80
- gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
81
- #elif defined(dXrayShaded_inverted)
82
- gl_FragColor.a *= pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
83
- #endif
84
-
85
- gl_FragColor.rgb *= uExposure;
9
+ export const apply_light_color = `
10
+ #if defined(dIgnoreLight)
11
+ #ifdef bumpEnabled
12
+ if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
13
+ material.rgb += fbm(vModelPosition * uBumpFrequency) * uBumpAmplitude * bumpiness;
14
+ material.rgb -= 0.5 * uBumpAmplitude * bumpiness;
15
+ }
16
+ #endif
17
+
18
+ #if defined(dRenderVariant_color)
19
+ material.rgb += material.rgb * emissive;
20
+ #endif
21
+
22
+ gl_FragColor = material;
23
+ #else
24
+ #ifdef bumpEnabled
25
+ if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
26
+ normal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);
27
+ }
28
+ #endif
29
+
30
+ vec4 color = material;
31
+
32
+ ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));
33
+
34
+ PhysicalMaterial physicalMaterial;
35
+ physicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);
36
+ #ifdef enabledFragDepth
37
+ physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);
38
+ #else
39
+ vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));
40
+ float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);
41
+ physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);
42
+ #endif
43
+ physicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);
44
+ physicalMaterial.specularF90 = 1.0;
45
+
46
+ GeometricContext geometry;
47
+ geometry.position = -vViewPosition;
48
+ geometry.normal = normal;
49
+ geometry.viewDir = normalize(vViewPosition);
50
+
51
+ IncidentLight directLight;
52
+ #pragma unroll_loop_start
53
+ for (int i = 0; i < dLightCount; ++i) {
54
+ directLight.direction = uLightDirection[i];
55
+ directLight.color = uLightColor[i] * PI; // * PI for punctual light
56
+ RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);
57
+ }
58
+ #pragma unroll_loop_end
59
+
60
+ vec3 irradiance = uAmbientColor * PI; // * PI for punctual light
61
+ RE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);
62
+
63
+ // indirect specular only metals
64
+ vec3 radiance = uAmbientColor * metalness;
65
+ vec3 iblIrradiance = uAmbientColor * metalness;
66
+ vec3 clearcoatRadiance = vec3(0.0);
67
+ RE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);
68
+
69
+ vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;
70
+ outgoingLight = clamp(outgoingLight, 0.01, 0.99); // prevents black artifacts on specular highlight with transparent background
71
+
72
+ #if defined(dRenderVariant_color)
73
+ outgoingLight += color.rgb * emissive;
74
+ #endif
75
+
76
+ gl_FragColor = vec4(outgoingLight, color.a);
77
+ #endif
78
+
79
+ #if defined(dXrayShaded_on)
80
+ gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
81
+ #elif defined(dXrayShaded_inverted)
82
+ gl_FragColor.a *= pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
83
+ #endif
84
+
85
+ gl_FragColor.rgb *= uExposure;
86
86
  `;
@@ -1,17 +1,17 @@
1
- export const apply_marker_color = `
2
-
3
- #if defined(dColorMarker)
4
- if (marker > 0.0) {
5
- if ((uMarkerPriority == 1 && marker != 2.0) || (uMarkerPriority != 1 && marker == 1.0)) {
6
- gl_FragColor.rgb = mix(gl_FragColor.rgb, uHighlightColor, uHighlightStrength);
7
- gl_FragColor.a = max(gl_FragColor.a, uHighlightStrength * 0.002); // for direct-volume rendering
8
- } else {
9
- gl_FragColor.rgb = mix(gl_FragColor.rgb, uSelectColor, uSelectStrength);
10
- gl_FragColor.a = max(gl_FragColor.a, uSelectStrength * 0.002); // for direct-volume rendering
11
- }
12
- } else if (uMarkerAverage > 0.0) {
13
- gl_FragColor.rgb = mix(gl_FragColor.rgb, uDimColor, uDimStrength);
14
- gl_FragColor.a = max(gl_FragColor.a, uDimStrength * 0.002); // for direct-volume rendering
15
- }
16
- #endif
1
+ export const apply_marker_color = `
2
+
3
+ #if defined(dColorMarker)
4
+ if (marker > 0.0) {
5
+ if ((uMarkerPriority == 1 && marker != 2.0) || (uMarkerPriority != 1 && marker == 1.0)) {
6
+ gl_FragColor.rgb = mix(gl_FragColor.rgb, uHighlightColor, uHighlightStrength);
7
+ gl_FragColor.a = max(gl_FragColor.a, uHighlightStrength * 0.002); // for direct-volume rendering
8
+ } else {
9
+ gl_FragColor.rgb = mix(gl_FragColor.rgb, uSelectColor, uSelectStrength);
10
+ gl_FragColor.a = max(gl_FragColor.a, uSelectStrength * 0.002); // for direct-volume rendering
11
+ }
12
+ } else if (uMarkerAverage > 0.0) {
13
+ gl_FragColor.rgb = mix(gl_FragColor.rgb, uDimColor, uDimStrength);
14
+ gl_FragColor.a = max(gl_FragColor.a, uDimStrength * 0.002); // for direct-volume rendering
15
+ }
16
+ #endif
17
17
  `;
@@ -1,9 +1,9 @@
1
- export const assign_clipping_varying = `
2
- #if dClipObjectCount != 0 && defined(dClipping)
3
- #if defined(dClippingType_instance)
4
- vClipping = readFromTexture(tClipping, aInstance, uClippingTexDim).a;
5
- #elif defined(dMarkerType_groupInstance)
6
- vClipping = readFromTexture(tClipping, aInstance * float(uGroupCount) + group, uClippingTexDim).a;
7
- #endif
8
- #endif
1
+ export const assign_clipping_varying = `
2
+ #if dClipObjectCount != 0 && defined(dClipping)
3
+ #if defined(dClippingType_instance)
4
+ vClipping = readFromTexture(tClipping, aInstance, uClippingTexDim).a;
5
+ #elif defined(dMarkerType_groupInstance)
6
+ vClipping = readFromTexture(tClipping, aInstance * float(uGroupCount) + group, uClippingTexDim).a;
7
+ #endif
8
+ #endif
9
9
  `;
@@ -1,141 +1,141 @@
1
- export const assign_color_varying = `
2
- #if defined(dRenderVariant_color)
3
- #if defined(dColorType_attribute)
4
- vColor.rgb = aColor;
5
- #elif defined(dColorType_instance)
6
- vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;
7
- #elif defined(dColorType_group)
8
- #if defined(dDualColor)
9
- vec4 color2;
10
- if (aColorMode == 2.0) {
11
- vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;
12
- } else {
13
- vColor.rgb = readFromTexture(tColor, group * 2.0, uColorTexDim).rgb;
14
- color2.rgb = readFromTexture(tColor, group * 2.0 + 1.0, uColorTexDim).rgb;
15
- }
16
- #else
17
- vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;
18
- #endif
19
- #elif defined(dColorType_groupInstance)
20
- #if defined(dDualColor)
21
- vec4 color2;
22
- if (aColorMode == 2.0) {
23
- vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;
24
- } else {
25
- vColor.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0, uColorTexDim).rgb;
26
- color2.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0 + 1.0, uColorTexDim).rgb;
27
- }
28
- #else
29
- vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;
30
- #endif
31
- #elif defined(dColorType_vertex)
32
- vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;
33
- #elif defined(dColorType_vertexInstance)
34
- vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;
35
- #elif defined(dColorType_volume)
36
- vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;
37
- vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;
38
- #elif defined(dColorType_volumeInstance)
39
- vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;
40
- vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;
41
- #endif
42
-
43
- #ifdef dUsePalette
44
- vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;
45
- #endif
46
-
47
- #ifdef dOverpaint
48
- #if defined(dOverpaintType_instance)
49
- vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);
50
- #elif defined(dOverpaintType_groupInstance)
51
- vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);
52
- #elif defined(dOverpaintType_vertexInstance)
53
- vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);
54
- #elif defined(dOverpaintType_volumeInstance)
55
- vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;
56
- vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);
57
- #endif
58
-
59
- // pre-mix to avoid darkening due to empty overpaint
60
- #ifdef dColorType_uniform
61
- vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);
62
- #else
63
- vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);
64
- #endif
65
- vOverpaint *= uOverpaintStrength;
66
- #endif
67
-
68
- #ifdef dEmissive
69
- #if defined(dEmissiveType_instance)
70
- vEmissive = readFromTexture(tEmissive, aInstance, uEmissiveTexDim).a;
71
- #elif defined(dEmissiveType_groupInstance)
72
- vEmissive = readFromTexture(tEmissive, aInstance * float(uGroupCount) + group, uEmissiveTexDim).a;
73
- #elif defined(dEmissiveType_vertexInstance)
74
- vEmissive = readFromTexture(tEmissive, int(aInstance) * uVertexCount + VertexID, uEmissiveTexDim).a;
75
- #elif defined(dEmissiveType_volumeInstance)
76
- vec3 egridPos = (uEmissiveGridTransform.w * (vModelPosition - uEmissiveGridTransform.xyz)) / uEmissiveGridDim;
77
- vEmissive = texture3dFrom2dLinear(tEmissiveGrid, egridPos, uEmissiveGridDim, uEmissiveTexDim).a;
78
- #endif
79
- vEmissive *= uEmissiveStrength;
80
- #endif
81
-
82
- #ifdef dSubstance
83
- #if defined(dSubstanceType_instance)
84
- vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);
85
- #elif defined(dSubstanceType_groupInstance)
86
- vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);
87
- #elif defined(dSubstanceType_vertexInstance)
88
- vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);
89
- #elif defined(dSubstanceType_volumeInstance)
90
- vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;
91
- vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);
92
- #endif
93
-
94
- // pre-mix to avoid artifacts due to empty substance
95
- vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);
96
- vSubstance *= uSubstanceStrength;
97
- #endif
98
- #elif defined(dRenderVariant_emissive)
99
- #ifdef dEmissive
100
- #if defined(dEmissiveType_instance)
101
- vEmissive = readFromTexture(tEmissive, aInstance, uEmissiveTexDim).a;
102
- #elif defined(dEmissiveType_groupInstance)
103
- vEmissive = readFromTexture(tEmissive, aInstance * float(uGroupCount) + group, uEmissiveTexDim).a;
104
- #elif defined(dEmissiveType_vertexInstance)
105
- vEmissive = readFromTexture(tEmissive, int(aInstance) * uVertexCount + VertexID, uEmissiveTexDim).a;
106
- #elif defined(dEmissiveType_volumeInstance)
107
- vec3 egridPos = (uEmissiveGridTransform.w * (vModelPosition - uEmissiveGridTransform.xyz)) / uEmissiveGridDim;
108
- vEmissive = texture3dFrom2dLinear(tEmissiveGrid, egridPos, uEmissiveGridDim, uEmissiveTexDim).a;
109
- #endif
110
- vEmissive *= uEmissiveStrength;
111
- #endif
112
- #elif defined(dRenderVariant_pick)
113
- #ifdef requiredDrawBuffers
114
- vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);
115
- vInstance = vec4(packIntToRGB(aInstance), 1.0);
116
- vGroup = vec4(packIntToRGB(group), 1.0);
117
- #else
118
- if (uPickType == 1) {
119
- vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);
120
- } else if (uPickType == 2) {
121
- vColor = vec4(packIntToRGB(aInstance), 1.0);
122
- } else {
123
- vColor = vec4(packIntToRGB(group), 1.0);
124
- }
125
- #endif
126
- #endif
127
-
128
- #ifdef dTransparency
129
- #if defined(dTransparencyType_instance)
130
- vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;
131
- #elif defined(dTransparencyType_groupInstance)
132
- vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;
133
- #elif defined(dTransparencyType_vertexInstance)
134
- vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;
135
- #elif defined(dTransparencyType_volumeInstance)
136
- vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;
137
- vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;
138
- #endif
139
- vTransparency *= uTransparencyStrength;
140
- #endif
1
+ export const assign_color_varying = `
2
+ #if defined(dRenderVariant_color)
3
+ #if defined(dColorType_attribute)
4
+ vColor.rgb = aColor;
5
+ #elif defined(dColorType_instance)
6
+ vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;
7
+ #elif defined(dColorType_group)
8
+ #if defined(dDualColor)
9
+ vec4 color2;
10
+ if (aColorMode == 2.0) {
11
+ vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;
12
+ } else {
13
+ vColor.rgb = readFromTexture(tColor, group * 2.0, uColorTexDim).rgb;
14
+ color2.rgb = readFromTexture(tColor, group * 2.0 + 1.0, uColorTexDim).rgb;
15
+ }
16
+ #else
17
+ vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;
18
+ #endif
19
+ #elif defined(dColorType_groupInstance)
20
+ #if defined(dDualColor)
21
+ vec4 color2;
22
+ if (aColorMode == 2.0) {
23
+ vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;
24
+ } else {
25
+ vColor.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0, uColorTexDim).rgb;
26
+ color2.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0 + 1.0, uColorTexDim).rgb;
27
+ }
28
+ #else
29
+ vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;
30
+ #endif
31
+ #elif defined(dColorType_vertex)
32
+ vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;
33
+ #elif defined(dColorType_vertexInstance)
34
+ vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;
35
+ #elif defined(dColorType_volume)
36
+ vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;
37
+ vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;
38
+ #elif defined(dColorType_volumeInstance)
39
+ vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;
40
+ vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;
41
+ #endif
42
+
43
+ #ifdef dUsePalette
44
+ vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;
45
+ #endif
46
+
47
+ #ifdef dOverpaint
48
+ #if defined(dOverpaintType_instance)
49
+ vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);
50
+ #elif defined(dOverpaintType_groupInstance)
51
+ vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);
52
+ #elif defined(dOverpaintType_vertexInstance)
53
+ vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);
54
+ #elif defined(dOverpaintType_volumeInstance)
55
+ vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;
56
+ vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);
57
+ #endif
58
+
59
+ // pre-mix to avoid darkening due to empty overpaint
60
+ #ifdef dColorType_uniform
61
+ vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);
62
+ #else
63
+ vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);
64
+ #endif
65
+ vOverpaint *= uOverpaintStrength;
66
+ #endif
67
+
68
+ #ifdef dEmissive
69
+ #if defined(dEmissiveType_instance)
70
+ vEmissive = readFromTexture(tEmissive, aInstance, uEmissiveTexDim).a;
71
+ #elif defined(dEmissiveType_groupInstance)
72
+ vEmissive = readFromTexture(tEmissive, aInstance * float(uGroupCount) + group, uEmissiveTexDim).a;
73
+ #elif defined(dEmissiveType_vertexInstance)
74
+ vEmissive = readFromTexture(tEmissive, int(aInstance) * uVertexCount + VertexID, uEmissiveTexDim).a;
75
+ #elif defined(dEmissiveType_volumeInstance)
76
+ vec3 egridPos = (uEmissiveGridTransform.w * (vModelPosition - uEmissiveGridTransform.xyz)) / uEmissiveGridDim;
77
+ vEmissive = texture3dFrom2dLinear(tEmissiveGrid, egridPos, uEmissiveGridDim, uEmissiveTexDim).a;
78
+ #endif
79
+ vEmissive *= uEmissiveStrength;
80
+ #endif
81
+
82
+ #ifdef dSubstance
83
+ #if defined(dSubstanceType_instance)
84
+ vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);
85
+ #elif defined(dSubstanceType_groupInstance)
86
+ vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);
87
+ #elif defined(dSubstanceType_vertexInstance)
88
+ vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);
89
+ #elif defined(dSubstanceType_volumeInstance)
90
+ vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;
91
+ vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);
92
+ #endif
93
+
94
+ // pre-mix to avoid artifacts due to empty substance
95
+ vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);
96
+ vSubstance *= uSubstanceStrength;
97
+ #endif
98
+ #elif defined(dRenderVariant_emissive)
99
+ #ifdef dEmissive
100
+ #if defined(dEmissiveType_instance)
101
+ vEmissive = readFromTexture(tEmissive, aInstance, uEmissiveTexDim).a;
102
+ #elif defined(dEmissiveType_groupInstance)
103
+ vEmissive = readFromTexture(tEmissive, aInstance * float(uGroupCount) + group, uEmissiveTexDim).a;
104
+ #elif defined(dEmissiveType_vertexInstance)
105
+ vEmissive = readFromTexture(tEmissive, int(aInstance) * uVertexCount + VertexID, uEmissiveTexDim).a;
106
+ #elif defined(dEmissiveType_volumeInstance)
107
+ vec3 egridPos = (uEmissiveGridTransform.w * (vModelPosition - uEmissiveGridTransform.xyz)) / uEmissiveGridDim;
108
+ vEmissive = texture3dFrom2dLinear(tEmissiveGrid, egridPos, uEmissiveGridDim, uEmissiveTexDim).a;
109
+ #endif
110
+ vEmissive *= uEmissiveStrength;
111
+ #endif
112
+ #elif defined(dRenderVariant_pick)
113
+ #ifdef requiredDrawBuffers
114
+ vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);
115
+ vInstance = vec4(packIntToRGB(aInstance), 1.0);
116
+ vGroup = vec4(packIntToRGB(group), 1.0);
117
+ #else
118
+ if (uPickType == 1) {
119
+ vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);
120
+ } else if (uPickType == 2) {
121
+ vColor = vec4(packIntToRGB(aInstance), 1.0);
122
+ } else {
123
+ vColor = vec4(packIntToRGB(group), 1.0);
124
+ }
125
+ #endif
126
+ #endif
127
+
128
+ #ifdef dTransparency
129
+ #if defined(dTransparencyType_instance)
130
+ vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;
131
+ #elif defined(dTransparencyType_groupInstance)
132
+ vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;
133
+ #elif defined(dTransparencyType_vertexInstance)
134
+ vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;
135
+ #elif defined(dTransparencyType_volumeInstance)
136
+ vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;
137
+ vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;
138
+ #endif
139
+ vTransparency *= uTransparencyStrength;
140
+ #endif
141
141
  `;
@@ -1,7 +1,7 @@
1
- export const assign_group = `
2
- #ifdef dGeometryType_textureMesh
3
- float group = unpackRGBToInt(readFromTexture(tGroup, VertexID, uGeoTexDim).rgb);
4
- #else
5
- float group = aGroup;
6
- #endif
1
+ export const assign_group = `
2
+ #ifdef dGeometryType_textureMesh
3
+ float group = unpackRGBToInt(readFromTexture(tGroup, VertexID, uGeoTexDim).rgb);
4
+ #else
5
+ float group = aGroup;
6
+ #endif
7
7
  `;
@@ -1,9 +1,9 @@
1
- export const assign_marker_varying = `
2
- #if defined(dNeedsMarker)
3
- #if defined(dMarkerType_instance)
4
- vMarker = readFromTexture(tMarker, aInstance, uMarkerTexDim).a;
5
- #elif defined(dMarkerType_groupInstance)
6
- vMarker = readFromTexture(tMarker, aInstance * float(uGroupCount) + group, uMarkerTexDim).a;
7
- #endif
8
- #endif
1
+ export const assign_marker_varying = `
2
+ #if defined(dNeedsMarker)
3
+ #if defined(dMarkerType_instance)
4
+ vMarker = readFromTexture(tMarker, aInstance, uMarkerTexDim).a;
5
+ #elif defined(dMarkerType_groupInstance)
6
+ vMarker = readFromTexture(tMarker, aInstance * float(uGroupCount) + group, uMarkerTexDim).a;
7
+ #endif
8
+ #endif
9
9
  `;