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
@@ -1,29 +1,29 @@
1
- export const edge_frag = `
2
- precision highp float;
3
- precision highp sampler2D;
4
-
5
- uniform sampler2D tMaskTexture;
6
- uniform vec2 uTexSizeInv;
7
-
8
- void main() {
9
- vec2 coords = gl_FragCoord.xy * uTexSizeInv;
10
- vec4 offset = vec4(float(dEdgeScale), 0.0, 0.0, float(dEdgeScale)) * vec4(uTexSizeInv, uTexSizeInv);
11
- vec4 c0 = texture2D(tMaskTexture, coords);
12
- vec4 c1 = texture2D(tMaskTexture, coords + offset.xy);
13
- vec4 c2 = texture2D(tMaskTexture, coords - offset.xy);
14
- vec4 c3 = texture2D(tMaskTexture, coords + offset.yw);
15
- vec4 c4 = texture2D(tMaskTexture, coords - offset.yw);
16
- float diff1 = (c1.r - c2.r) * 0.5;
17
- float diff2 = (c3.r - c4.r) * 0.5;
18
- float d = length(vec2(diff1, diff2));
19
- if (d <= 0.0)
20
- discard;
21
- float a1 = min(c1.g, c2.g);
22
- float a2 = min(c3.g, c4.g);
23
- float visibility = min(a1, a2) > 0.001 ? 1.0 : 0.0;
24
- float mask = c0.r;
25
- float marker = min(c1.b, min(c2.b, min(c3.b, c4.b)));
26
- float fogAlpha = min(c1.a, min(c2.a, min(c3.a, c4.a)));
27
- gl_FragColor = vec4(visibility, mask, marker, fogAlpha);
28
- }
1
+ export const edge_frag = `
2
+ precision highp float;
3
+ precision highp sampler2D;
4
+
5
+ uniform sampler2D tMaskTexture;
6
+ uniform vec2 uTexSizeInv;
7
+
8
+ void main() {
9
+ vec2 coords = gl_FragCoord.xy * uTexSizeInv;
10
+ vec4 offset = vec4(float(dEdgeScale), 0.0, 0.0, float(dEdgeScale)) * vec4(uTexSizeInv, uTexSizeInv);
11
+ vec4 c0 = texture2D(tMaskTexture, coords);
12
+ vec4 c1 = texture2D(tMaskTexture, coords + offset.xy);
13
+ vec4 c2 = texture2D(tMaskTexture, coords - offset.xy);
14
+ vec4 c3 = texture2D(tMaskTexture, coords + offset.yw);
15
+ vec4 c4 = texture2D(tMaskTexture, coords - offset.yw);
16
+ float diff1 = (c1.r - c2.r) * 0.5;
17
+ float diff2 = (c3.r - c4.r) * 0.5;
18
+ float d = length(vec2(diff1, diff2));
19
+ if (d <= 0.0)
20
+ discard;
21
+ float a1 = min(c1.g, c2.g);
22
+ float a2 = min(c3.g, c4.g);
23
+ float visibility = min(a1, a2) > 0.001 ? 1.0 : 0.0;
24
+ float mask = c0.r;
25
+ float marker = min(c1.b, min(c2.b, min(c3.b, c4.b)));
26
+ float fogAlpha = min(c1.a, min(c2.a, min(c3.a, c4.a)));
27
+ gl_FragColor = vec4(visibility, mask, marker, fogAlpha);
28
+ }
29
29
  `;
@@ -1,27 +1,27 @@
1
- export const overlay_frag = `
2
- precision highp float;
3
- precision highp sampler2D;
4
-
5
- uniform vec2 uTexSizeInv;
6
- uniform sampler2D tEdgeTexture;
7
- uniform vec3 uHighlightEdgeColor;
8
- uniform vec3 uSelectEdgeColor;
9
- uniform float uHighlightEdgeStrength;
10
- uniform float uSelectEdgeStrength;
11
- uniform float uGhostEdgeStrength;
12
- uniform float uInnerEdgeFactor;
13
-
14
- void main() {
15
- vec2 coords = gl_FragCoord.xy * uTexSizeInv;
16
- vec4 edgeValue = texture2D(tEdgeTexture, coords);
17
- if (edgeValue.a > 0.0) {
18
- vec3 edgeColor = edgeValue.b == 1.0 ? uHighlightEdgeColor : uSelectEdgeColor;
19
- gl_FragColor.rgb = edgeValue.g > 0.0 ? edgeColor : edgeColor * uInnerEdgeFactor;
20
- gl_FragColor.a = (edgeValue.r == 1.0 ? uGhostEdgeStrength : 1.0) * edgeValue.a;
21
- float edgeStrength = edgeValue.b == 1.0 ? uHighlightEdgeStrength : uSelectEdgeStrength;
22
- gl_FragColor.a *= edgeStrength;
23
- } else {
24
- gl_FragColor = vec4(0.0);
25
- }
26
- }
1
+ export const overlay_frag = `
2
+ precision highp float;
3
+ precision highp sampler2D;
4
+
5
+ uniform vec2 uTexSizeInv;
6
+ uniform sampler2D tEdgeTexture;
7
+ uniform vec3 uHighlightEdgeColor;
8
+ uniform vec3 uSelectEdgeColor;
9
+ uniform float uHighlightEdgeStrength;
10
+ uniform float uSelectEdgeStrength;
11
+ uniform float uGhostEdgeStrength;
12
+ uniform float uInnerEdgeFactor;
13
+
14
+ void main() {
15
+ vec2 coords = gl_FragCoord.xy * uTexSizeInv;
16
+ vec4 edgeValue = texture2D(tEdgeTexture, coords);
17
+ if (edgeValue.a > 0.0) {
18
+ vec3 edgeColor = edgeValue.b == 1.0 ? uHighlightEdgeColor : uSelectEdgeColor;
19
+ gl_FragColor.rgb = edgeValue.g > 0.0 ? edgeColor : edgeColor * uInnerEdgeFactor;
20
+ gl_FragColor.a = (edgeValue.r == 1.0 ? uGhostEdgeStrength : 1.0) * edgeValue.a;
21
+ float edgeStrength = edgeValue.b == 1.0 ? uHighlightEdgeStrength : uSelectEdgeStrength;
22
+ gl_FragColor.a *= edgeStrength;
23
+ } else {
24
+ gl_FragColor = vec4(0.0);
25
+ }
26
+ }
27
27
  `;
@@ -3,69 +3,69 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const mesh_frag = `
7
- precision highp float;
8
- precision highp int;
9
-
10
- #define bumpEnabled
11
-
12
- #include common
13
- #include common_frag_params
14
- #include color_frag_params
15
- #include light_frag_params
16
- #include normal_frag_params
17
- #include common_clip
18
-
19
- void main() {
20
- #include fade_lod
21
- #include clip_pixel
22
-
23
- // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)
24
- vec3 fdx = dFdx(vViewPosition);
25
- vec3 fdy = dFdy(vViewPosition);
26
- vec3 faceNormal = normalize(cross(fdx,fdy));
27
- bool frontFacing = dot(vNormal, faceNormal) > 0.0;
28
-
29
- #if defined(dFlipSided)
30
- interior = frontFacing;
31
- #else
32
- interior = !frontFacing;
33
- #endif
34
-
35
- float fragmentDepth = gl_FragCoord.z;
36
- #include assign_material_color
37
- #include check_transparency
38
-
39
- #if defined(dRenderVariant_pick)
40
- #include check_picking_alpha
41
- #ifdef requiredDrawBuffers
42
- gl_FragColor = vObject;
43
- gl_FragData[1] = vInstance;
44
- gl_FragData[2] = vGroup;
45
- gl_FragData[3] = packDepthToRGBA(fragmentDepth);
46
- #else
47
- gl_FragColor = vColor;
48
- #endif
49
- #elif defined(dRenderVariant_depth)
50
- gl_FragColor = material;
51
- #elif defined(dRenderVariant_marking)
52
- gl_FragColor = material;
53
- #elif defined(dRenderVariant_emissive)
54
- gl_FragColor = material;
55
- #elif defined(dRenderVariant_color)
56
- #if defined(dFlatShaded)
57
- vec3 normal = -faceNormal;
58
- #else
59
- vec3 normal = -normalize(vNormal);
60
- if (uDoubleSided) normal *= float(frontFacing) * 2.0 - 1.0;
61
- #endif
62
- #include apply_light_color
63
-
64
- #include apply_interior_color
65
- #include apply_marker_color
66
- #include apply_fog
67
- #include wboit_write
68
- #include dpoit_write
69
- #endif
70
- }
6
+ export const mesh_frag = `
7
+ precision highp float;
8
+ precision highp int;
9
+
10
+ #define bumpEnabled
11
+
12
+ #include common
13
+ #include common_frag_params
14
+ #include color_frag_params
15
+ #include light_frag_params
16
+ #include normal_frag_params
17
+ #include common_clip
18
+
19
+ void main() {
20
+ #include fade_lod
21
+ #include clip_pixel
22
+
23
+ // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)
24
+ vec3 fdx = dFdx(vViewPosition);
25
+ vec3 fdy = dFdy(vViewPosition);
26
+ vec3 faceNormal = normalize(cross(fdx,fdy));
27
+ bool frontFacing = dot(vNormal, faceNormal) > 0.0;
28
+
29
+ #if defined(dFlipSided)
30
+ interior = frontFacing;
31
+ #else
32
+ interior = !frontFacing;
33
+ #endif
34
+
35
+ float fragmentDepth = gl_FragCoord.z;
36
+ #include assign_material_color
37
+ #include check_transparency
38
+
39
+ #if defined(dRenderVariant_pick)
40
+ #include check_picking_alpha
41
+ #ifdef requiredDrawBuffers
42
+ gl_FragColor = vObject;
43
+ gl_FragData[1] = vInstance;
44
+ gl_FragData[2] = vGroup;
45
+ gl_FragData[3] = packDepthToRGBA(fragmentDepth);
46
+ #else
47
+ gl_FragColor = vColor;
48
+ #endif
49
+ #elif defined(dRenderVariant_depth)
50
+ gl_FragColor = material;
51
+ #elif defined(dRenderVariant_marking)
52
+ gl_FragColor = material;
53
+ #elif defined(dRenderVariant_emissive)
54
+ gl_FragColor = material;
55
+ #elif defined(dRenderVariant_color)
56
+ #if defined(dFlatShaded)
57
+ vec3 normal = -faceNormal;
58
+ #else
59
+ vec3 normal = -normalize(vNormal);
60
+ if (uDoubleSided) normal *= float(frontFacing) * 2.0 - 1.0;
61
+ #endif
62
+ #include apply_light_color
63
+
64
+ #include apply_interior_color
65
+ #include apply_marker_color
66
+ #include apply_fog
67
+ #include wboit_write
68
+ #include dpoit_write
69
+ #endif
70
+ }
71
71
  `;
@@ -3,53 +3,53 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const mesh_vert = `
7
- precision highp float;
8
- precision highp int;
9
- precision highp sampler2D;
10
-
11
- #include common
12
- #include read_from_texture
13
- #include common_vert_params
14
- #include color_vert_params
15
- #include common_clip
16
- #include texture3d_from_2d_linear
17
-
18
- #ifdef dGeometryType_textureMesh
19
- uniform vec2 uGeoTexDim;
20
- uniform sampler2D tPosition;
21
- uniform sampler2D tGroup;
22
- uniform sampler2D tNormal;
23
- #else
24
- attribute vec3 aPosition;
25
- attribute float aGroup;
26
- attribute vec3 aNormal;
27
- #endif
28
- attribute mat4 aTransform;
29
- attribute float aInstance;
30
-
31
- varying vec3 vNormal;
32
-
33
- void main(){
34
- #include assign_group
35
- #include assign_marker_varying
36
- #include assign_clipping_varying
37
- #include assign_position
38
- #include assign_color_varying
39
- #include clip_instance
40
-
41
- #ifdef dGeometryType_textureMesh
42
- vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;
43
- #else
44
- vec3 normal = aNormal;
45
- #endif
46
- mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));
47
- vec3 transformedNormal = normalize(normalMatrix * normalize(normal));
48
- #if defined(dFlipSided)
49
- if (!uDoubleSided) { // TODO checking uDoubleSided should not be required, ASR
50
- transformedNormal = -transformedNormal;
51
- }
52
- #endif
53
- vNormal = transformedNormal;
54
- }
6
+ export const mesh_vert = `
7
+ precision highp float;
8
+ precision highp int;
9
+ precision highp sampler2D;
10
+
11
+ #include common
12
+ #include read_from_texture
13
+ #include common_vert_params
14
+ #include color_vert_params
15
+ #include common_clip
16
+ #include texture3d_from_2d_linear
17
+
18
+ #ifdef dGeometryType_textureMesh
19
+ uniform vec2 uGeoTexDim;
20
+ uniform sampler2D tPosition;
21
+ uniform sampler2D tGroup;
22
+ uniform sampler2D tNormal;
23
+ #else
24
+ attribute vec3 aPosition;
25
+ attribute float aGroup;
26
+ attribute vec3 aNormal;
27
+ #endif
28
+ attribute mat4 aTransform;
29
+ attribute float aInstance;
30
+
31
+ varying vec3 vNormal;
32
+
33
+ void main(){
34
+ #include assign_group
35
+ #include assign_marker_varying
36
+ #include assign_clipping_varying
37
+ #include assign_position
38
+ #include assign_color_varying
39
+ #include clip_instance
40
+
41
+ #ifdef dGeometryType_textureMesh
42
+ vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;
43
+ #else
44
+ vec3 normal = aNormal;
45
+ #endif
46
+ mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));
47
+ vec3 transformedNormal = normalize(normalMatrix * normalize(normal));
48
+ #if defined(dFlipSided)
49
+ if (!uDoubleSided) { // TODO checking uDoubleSided should not be required, ASR
50
+ transformedNormal = -transformedNormal;
51
+ }
52
+ #endif
53
+ vNormal = transformedNormal;
54
+ }
55
55
  `;
@@ -4,99 +4,99 @@
4
4
  * @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
7
- export const outlines_frag = `
8
- precision highp float;
9
- precision highp int;
10
- precision highp sampler2D;
11
-
12
- uniform sampler2D tDepthOpaque;
13
- uniform sampler2D tDepthTransparent;
14
- uniform vec2 uTexSize;
15
-
16
- uniform float uNear;
17
- uniform float uFar;
18
- uniform mat4 uInvProjection;
19
-
20
- uniform float uOutlineThreshold;
21
-
22
- #include common
23
-
24
- float getViewZ(const in float depth) {
25
- #if dOrthographic == 1
26
- return orthographicDepthToViewZ(depth, uNear, uFar);
27
- #else
28
- return perspectiveDepthToViewZ(depth, uNear, uFar);
29
- #endif
30
- }
31
-
32
- float getDepthOpaque(const in vec2 coords) {
33
- #ifdef depthTextureSupport
34
- return texture2D(tDepthOpaque, coords).r;
35
- #else
36
- return unpackRGBAToDepth(texture2D(tDepthOpaque, coords));
37
- #endif
38
- }
39
-
40
- float getDepthTransparent(const in vec2 coords) {
41
- #ifdef dTransparentOutline
42
- return unpackRGBAToDepth(texture2D(tDepthTransparent, coords));
43
- #else
44
- return 1.0;
45
- #endif
46
- }
47
-
48
- bool isBackground(const in float depth) {
49
- return depth == 1.0;
50
- }
51
-
52
- float getPixelSize(const in vec2 coords, const in float depth) {
53
- vec3 viewPos0 = screenSpaceToViewSpace(vec3(coords, depth), uInvProjection);
54
- vec3 viewPos1 = screenSpaceToViewSpace(vec3(coords + vec2(1.0, 0.0) / uTexSize, depth), uInvProjection);
55
- return distance(viewPos0, viewPos1);
56
- }
57
-
58
- void main(void) {
59
- float backgroundViewZ = 2.0 * uFar;
60
-
61
- vec2 coords = gl_FragCoord.xy / uTexSize;
62
- vec2 invTexSize = 1.0 / uTexSize;
63
-
64
- float selfDepthOpaque = getDepthOpaque(coords);
65
- float selfViewZOpaque = isBackground(selfDepthOpaque) ? backgroundViewZ : getViewZ(selfDepthOpaque);
66
- float pixelSizeOpaque = getPixelSize(coords, selfDepthOpaque) * uOutlineThreshold;
67
-
68
- float selfDepthTransparent = getDepthTransparent(coords);
69
- float selfViewZTransparent = isBackground(selfDepthTransparent) ? backgroundViewZ : getViewZ(selfDepthTransparent);
70
- float pixelSizeTransparent = getPixelSize(coords, selfDepthTransparent) * uOutlineThreshold;
71
-
72
- float outline = 1.0;
73
- float bestDepth = 1.0;
74
- float transparentFlag = 0.0;
75
-
76
- for (int y = -1; y <= 1; y++) {
77
- for (int x = -1; x <= 1; x++) {
78
- vec2 sampleCoords = coords + vec2(float(x), float(y)) * invTexSize;
79
-
80
- float sampleDepthOpaque = getDepthOpaque(sampleCoords);
81
- float sampleDepthTransparent = getDepthTransparent(sampleCoords);
82
-
83
- float sampleViewZOpaque = isBackground(sampleDepthOpaque) ? backgroundViewZ : getViewZ(sampleDepthOpaque);
84
- if (abs(selfViewZOpaque - sampleViewZOpaque) > pixelSizeOpaque && selfDepthOpaque > sampleDepthOpaque && sampleDepthOpaque <= bestDepth) {
85
- outline = 0.0;
86
- bestDepth = sampleDepthOpaque;
87
- }
88
-
89
- if (sampleDepthTransparent < sampleDepthOpaque) {
90
- float sampleViewZTransparent = isBackground(sampleDepthTransparent) ? backgroundViewZ : getViewZ(sampleDepthTransparent);
91
- if (abs(selfViewZTransparent - sampleViewZTransparent) > pixelSizeTransparent && selfDepthTransparent > sampleDepthTransparent && sampleDepthTransparent <= bestDepth) {
92
- outline = 0.0;
93
- bestDepth = sampleDepthTransparent;
94
- transparentFlag = 1.0;
95
- }
96
- }
97
- }
98
- }
99
-
100
- gl_FragColor = vec4(outline, packUnitIntervalToRG(bestDepth), transparentFlag);
101
- }
7
+ export const outlines_frag = `
8
+ precision highp float;
9
+ precision highp int;
10
+ precision highp sampler2D;
11
+
12
+ uniform sampler2D tDepthOpaque;
13
+ uniform sampler2D tDepthTransparent;
14
+ uniform vec2 uTexSize;
15
+
16
+ uniform float uNear;
17
+ uniform float uFar;
18
+ uniform mat4 uInvProjection;
19
+
20
+ uniform float uOutlineThreshold;
21
+
22
+ #include common
23
+
24
+ float getViewZ(const in float depth) {
25
+ #if dOrthographic == 1
26
+ return orthographicDepthToViewZ(depth, uNear, uFar);
27
+ #else
28
+ return perspectiveDepthToViewZ(depth, uNear, uFar);
29
+ #endif
30
+ }
31
+
32
+ float getDepthOpaque(const in vec2 coords) {
33
+ #ifdef depthTextureSupport
34
+ return texture2D(tDepthOpaque, coords).r;
35
+ #else
36
+ return unpackRGBAToDepth(texture2D(tDepthOpaque, coords));
37
+ #endif
38
+ }
39
+
40
+ float getDepthTransparent(const in vec2 coords) {
41
+ #ifdef dTransparentOutline
42
+ return unpackRGBAToDepth(texture2D(tDepthTransparent, coords));
43
+ #else
44
+ return 1.0;
45
+ #endif
46
+ }
47
+
48
+ bool isBackground(const in float depth) {
49
+ return depth == 1.0;
50
+ }
51
+
52
+ float getPixelSize(const in vec2 coords, const in float depth) {
53
+ vec3 viewPos0 = screenSpaceToViewSpace(vec3(coords, depth), uInvProjection);
54
+ vec3 viewPos1 = screenSpaceToViewSpace(vec3(coords + vec2(1.0, 0.0) / uTexSize, depth), uInvProjection);
55
+ return distance(viewPos0, viewPos1);
56
+ }
57
+
58
+ void main(void) {
59
+ float backgroundViewZ = 2.0 * uFar;
60
+
61
+ vec2 coords = gl_FragCoord.xy / uTexSize;
62
+ vec2 invTexSize = 1.0 / uTexSize;
63
+
64
+ float selfDepthOpaque = getDepthOpaque(coords);
65
+ float selfViewZOpaque = isBackground(selfDepthOpaque) ? backgroundViewZ : getViewZ(selfDepthOpaque);
66
+ float pixelSizeOpaque = getPixelSize(coords, selfDepthOpaque) * uOutlineThreshold;
67
+
68
+ float selfDepthTransparent = getDepthTransparent(coords);
69
+ float selfViewZTransparent = isBackground(selfDepthTransparent) ? backgroundViewZ : getViewZ(selfDepthTransparent);
70
+ float pixelSizeTransparent = getPixelSize(coords, selfDepthTransparent) * uOutlineThreshold;
71
+
72
+ float outline = 1.0;
73
+ float bestDepth = 1.0;
74
+ float transparentFlag = 0.0;
75
+
76
+ for (int y = -1; y <= 1; y++) {
77
+ for (int x = -1; x <= 1; x++) {
78
+ vec2 sampleCoords = coords + vec2(float(x), float(y)) * invTexSize;
79
+
80
+ float sampleDepthOpaque = getDepthOpaque(sampleCoords);
81
+ float sampleDepthTransparent = getDepthTransparent(sampleCoords);
82
+
83
+ float sampleViewZOpaque = isBackground(sampleDepthOpaque) ? backgroundViewZ : getViewZ(sampleDepthOpaque);
84
+ if (abs(selfViewZOpaque - sampleViewZOpaque) > pixelSizeOpaque && selfDepthOpaque > sampleDepthOpaque && sampleDepthOpaque <= bestDepth) {
85
+ outline = 0.0;
86
+ bestDepth = sampleDepthOpaque;
87
+ }
88
+
89
+ if (sampleDepthTransparent < sampleDepthOpaque) {
90
+ float sampleViewZTransparent = isBackground(sampleDepthTransparent) ? backgroundViewZ : getViewZ(sampleDepthTransparent);
91
+ if (abs(selfViewZTransparent - sampleViewZTransparent) > pixelSizeTransparent && selfDepthTransparent > sampleDepthTransparent && sampleDepthTransparent <= bestDepth) {
92
+ outline = 0.0;
93
+ bestDepth = sampleDepthTransparent;
94
+ transparentFlag = 1.0;
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ gl_FragColor = vec4(outline, packUnitIntervalToRG(bestDepth), transparentFlag);
101
+ }
102
102
  `;
@@ -3,63 +3,63 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const points_frag = `
7
- precision highp float;
8
- precision highp int;
9
-
10
- #include common
11
- #include common_frag_params
12
- #include color_frag_params
13
- #include common_clip
14
-
15
- const vec2 center = vec2(0.5);
16
- const float radius = 0.5;
17
-
18
- void main(){
19
- #include fade_lod
20
- #include clip_pixel
21
-
22
- float fragmentDepth = gl_FragCoord.z;
23
- #include assign_material_color
24
-
25
- #if defined(dPointStyle_circle)
26
- float dist = distance(gl_PointCoord, center);
27
- if (dist > radius) discard;
28
- #elif defined(dPointStyle_fuzzy)
29
- float dist = distance(gl_PointCoord, center);
30
- float fuzzyAlpha = 1.0 - smoothstep(0.0, radius, dist);
31
- if (fuzzyAlpha < 0.0001) discard;
32
- #endif
33
-
34
- #if defined(dPointStyle_fuzzy) && defined(dRenderVariant_color)
35
- material.a *= fuzzyAlpha;
36
- #endif
37
-
38
- #include check_transparency
39
-
40
- #if defined(dRenderVariant_pick)
41
- #include check_picking_alpha
42
- #ifdef requiredDrawBuffers
43
- gl_FragColor = vObject;
44
- gl_FragData[1] = vInstance;
45
- gl_FragData[2] = vGroup;
46
- gl_FragData[3] = packDepthToRGBA(fragmentDepth);
47
- #else
48
- gl_FragColor = vColor;
49
- #endif
50
- #elif defined(dRenderVariant_depth)
51
- gl_FragColor = material;
52
- #elif defined(dRenderVariant_marking)
53
- gl_FragColor = material;
54
- #elif defined(dRenderVariant_emissive)
55
- gl_FragColor = material;
56
- #elif defined(dRenderVariant_color)
57
- gl_FragColor = material;
58
-
59
- #include apply_marker_color
60
- #include apply_fog
61
- #include wboit_write
62
- #include dpoit_write
63
- #endif
64
- }
6
+ export const points_frag = `
7
+ precision highp float;
8
+ precision highp int;
9
+
10
+ #include common
11
+ #include common_frag_params
12
+ #include color_frag_params
13
+ #include common_clip
14
+
15
+ const vec2 center = vec2(0.5);
16
+ const float radius = 0.5;
17
+
18
+ void main(){
19
+ #include fade_lod
20
+ #include clip_pixel
21
+
22
+ float fragmentDepth = gl_FragCoord.z;
23
+ #include assign_material_color
24
+
25
+ #if defined(dPointStyle_circle)
26
+ float dist = distance(gl_PointCoord, center);
27
+ if (dist > radius) discard;
28
+ #elif defined(dPointStyle_fuzzy)
29
+ float dist = distance(gl_PointCoord, center);
30
+ float fuzzyAlpha = 1.0 - smoothstep(0.0, radius, dist);
31
+ if (fuzzyAlpha < 0.0001) discard;
32
+ #endif
33
+
34
+ #if defined(dPointStyle_fuzzy) && defined(dRenderVariant_color)
35
+ material.a *= fuzzyAlpha;
36
+ #endif
37
+
38
+ #include check_transparency
39
+
40
+ #if defined(dRenderVariant_pick)
41
+ #include check_picking_alpha
42
+ #ifdef requiredDrawBuffers
43
+ gl_FragColor = vObject;
44
+ gl_FragData[1] = vInstance;
45
+ gl_FragData[2] = vGroup;
46
+ gl_FragData[3] = packDepthToRGBA(fragmentDepth);
47
+ #else
48
+ gl_FragColor = vColor;
49
+ #endif
50
+ #elif defined(dRenderVariant_depth)
51
+ gl_FragColor = material;
52
+ #elif defined(dRenderVariant_marking)
53
+ gl_FragColor = material;
54
+ #elif defined(dRenderVariant_emissive)
55
+ gl_FragColor = material;
56
+ #elif defined(dRenderVariant_color)
57
+ gl_FragColor = material;
58
+
59
+ #include apply_marker_color
60
+ #include apply_fog
61
+ #include wboit_write
62
+ #include dpoit_write
63
+ #endif
64
+ }
65
65
  `;