janusweb 1.5.39 → 1.5.42

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 (243) hide show
  1. package/css/janusweb.css +3 -0
  2. package/media/assets/webui/apps/avatar/avatar.js +25 -8
  3. package/media/assets/webui/apps/buttons/buttons.js +0 -40
  4. package/media/assets/webui/apps/buttons/buttons.json +0 -1
  5. package/media/assets/webui/apps/comms/chat.html +1 -0
  6. package/media/assets/webui/apps/comms/chat_message.html +1 -1
  7. package/media/assets/webui/apps/comms/comms.html +1 -1
  8. package/media/assets/webui/apps/comms/comms.js +34 -12
  9. package/media/assets/webui/apps/comms/external/naf-shim.js +1 -1
  10. package/media/assets/webui/apps/comms/userlist.html +8 -5
  11. package/media/assets/webui/apps/comms/voip.css +20 -0
  12. package/media/assets/webui/apps/comms/voip.js +175 -6
  13. package/media/assets/webui/apps/editor/editor.js +78 -8
  14. package/media/assets/webui/apps/inventory/inventory.css +2 -1
  15. package/media/assets/webui/apps/locomotion/teleporter.js +18 -8
  16. package/media/assets/webui/apps/virtualgamepad/virtualgamepad.js +1 -1
  17. package/media/assets/webui/apps/xrmenu/xrmenu.js +10 -5
  18. package/media/lib/basis/basis_transcoder.js +8 -8
  19. package/media/lib/basis/basis_transcoder.wasm +0 -0
  20. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-fragment.glsl +284 -0
  21. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-vertex.glsl +60 -0
  22. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-fragment.glsl +334 -0
  23. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-vertex.glsl +46 -0
  24. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-fragment.glsl +248 -0
  25. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-vertex.glsl +60 -0
  26. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-MainTex.png +0 -0
  27. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-fragment.glsl +34 -0
  28. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-vertex.glsl +120 -0
  29. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-MainTex.png +0 -0
  30. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-fragment.glsl +89 -0
  31. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-vertex.glsl +60 -0
  32. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-fragment.glsl +69 -0
  33. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-vertex.glsl +60 -0
  34. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-MainTex.png +0 -0
  35. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-fragment.glsl +289 -0
  36. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-vertex.glsl +60 -0
  37. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-MainTex.png +0 -0
  38. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-fragment.glsl +292 -0
  39. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-vertex.glsl +60 -0
  40. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-AlphaMask.png +0 -0
  41. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-MainTex.png +0 -0
  42. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-fragment.glsl +65 -0
  43. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-vertex.glsl +60 -0
  44. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-MainTex.png +0 -0
  45. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-fragment.glsl +481 -0
  46. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-vertex.glsl +57 -0
  47. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +290 -0
  48. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +70 -0
  49. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-MainTex.png +0 -0
  50. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-fragment.glsl +113 -0
  51. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-vertex.glsl +60 -0
  52. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-MainTex.png +0 -0
  53. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-fragment.glsl +35 -0
  54. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-vertex.glsl +120 -0
  55. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-fragment.glsl +286 -0
  56. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-vertex.glsl +54 -0
  57. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-fragment.glsl +81 -0
  58. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-vertex.glsl +54 -0
  59. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-BumpMap.png +0 -0
  60. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-MainTex.png +0 -0
  61. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-fragment.glsl +376 -0
  62. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-vertex.glsl +60 -0
  63. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-BumpMap.png +0 -0
  64. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-MainTex.png +0 -0
  65. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-fragment.glsl +378 -0
  66. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-vertex.glsl +60 -0
  67. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-fragment.glsl +50 -0
  68. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-vertex.glsl +79 -0
  69. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-MainTex.png +0 -0
  70. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-fragment.glsl +32 -0
  71. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-vertex.glsl +152 -0
  72. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-fragment.glsl +288 -0
  73. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-vertex.glsl +47 -0
  74. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-fragment.glsl +288 -0
  75. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-vertex.glsl +50 -0
  76. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-MainTex.png +0 -0
  77. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-fragment.glsl +61 -0
  78. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-vertex.glsl +60 -0
  79. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-fragment.glsl +285 -0
  80. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-vertex.glsl +60 -0
  81. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-fragment.glsl +286 -0
  82. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-vertex.glsl +60 -0
  83. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-fragment.glsl +285 -0
  84. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-vertex.glsl +60 -0
  85. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-MainTex.png +0 -0
  86. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-fragment.glsl +40 -0
  87. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-vertex.glsl +60 -0
  88. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-MainTex.png +0 -0
  89. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-fragment.glsl +33 -0
  90. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-vertex.glsl +60 -0
  91. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-BumpMap.png +0 -0
  92. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-MainTex.png +0 -0
  93. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-fragment.glsl +386 -0
  94. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-vertex.glsl +60 -0
  95. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-BumpMap.png +0 -0
  96. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-MainTex.png +0 -0
  97. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-fragment.glsl +385 -0
  98. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-vertex.glsl +60 -0
  99. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-BumpMap.png +0 -0
  100. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-fragment.glsl +376 -0
  101. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-vertex.glsl +60 -0
  102. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-BumpMap.png +0 -0
  103. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-MainTex.png +0 -0
  104. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-fragment.glsl +376 -0
  105. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-vertex.glsl +60 -0
  106. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-BumpMap.png +0 -0
  107. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-MainTex.png +0 -0
  108. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-fragment.glsl +377 -0
  109. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-vertex.glsl +60 -0
  110. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-BumpMap.png +0 -0
  111. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-MainTex.png +0 -0
  112. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-fragment.glsl +319 -0
  113. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-vertex.glsl +60 -0
  114. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-MainTex.png +0 -0
  115. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-fragment.glsl +47 -0
  116. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-vertex.glsl +60 -0
  117. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-MainTex.png +0 -0
  118. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +330 -0
  119. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +64 -0
  120. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-fragment.glsl +285 -0
  121. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-vertex.glsl +60 -0
  122. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-MainTex.png +0 -0
  123. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-fragment.glsl +87 -0
  124. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-vertex.glsl +60 -0
  125. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-fragment.glsl +285 -0
  126. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-vertex.glsl +60 -0
  127. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-fragment.glsl +267 -0
  128. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-vertex.glsl +60 -0
  129. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-BumpMap.png +0 -0
  130. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-MainTex.png +0 -0
  131. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-fragment.glsl +377 -0
  132. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-vertex.glsl +60 -0
  133. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-BumpMap.png +0 -0
  134. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-MainTex.png +0 -0
  135. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-fragment.glsl +376 -0
  136. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-vertex.glsl +60 -0
  137. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-BumpMap.png +0 -0
  138. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-MainTex.png +0 -0
  139. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-fragment.glsl +377 -0
  140. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-vertex.glsl +60 -0
  141. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-fragment.glsl +370 -0
  142. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-vertex.glsl +48 -0
  143. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-fragment.glsl +374 -0
  144. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-vertex.glsl +48 -0
  145. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-fragment.glsl +367 -0
  146. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-vertex.glsl +60 -0
  147. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-MainTex.png +0 -0
  148. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-fragment.glsl +64 -0
  149. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-vertex.glsl +60 -0
  150. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-fragment.glsl +70 -0
  151. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-vertex.glsl +60 -0
  152. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-fragment.glsl +367 -0
  153. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-vertex.glsl +60 -0
  154. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-MainTex.png +0 -0
  155. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-fragment.glsl +30 -0
  156. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-vertex.glsl +125 -0
  157. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-MainTex.png +0 -0
  158. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-fragment.glsl +31 -0
  159. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-vertex.glsl +143 -0
  160. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-MainTex.png +0 -0
  161. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-fragment.glsl +34 -0
  162. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-vertex.glsl +60 -0
  163. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-fragment.glsl +285 -0
  164. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-vertex.glsl +60 -0
  165. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-MainTex.png +0 -0
  166. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-fragment.glsl +290 -0
  167. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-vertex.glsl +60 -0
  168. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-MainTex.png +0 -0
  169. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-fragment.glsl +291 -0
  170. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-vertex.glsl +60 -0
  171. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-MainTex.png +0 -0
  172. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-fragment.glsl +31 -0
  173. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-vertex.glsl +128 -0
  174. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-MainTex.png +0 -0
  175. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-fragment.glsl +63 -0
  176. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-vertex.glsl +60 -0
  177. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-MainTex.png +0 -0
  178. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-fragment.glsl +113 -0
  179. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-vertex.glsl +62 -0
  180. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-MainTex.png +0 -0
  181. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-fragment.glsl +292 -0
  182. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-vertex.glsl +60 -0
  183. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-MainTex.png +0 -0
  184. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-fragment.glsl +287 -0
  185. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-vertex.glsl +58 -0
  186. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-MainTex.png +0 -0
  187. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-fragment.glsl +113 -0
  188. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-vertex.glsl +60 -0
  189. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-MainTex.png +0 -0
  190. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-fragment.glsl +314 -0
  191. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-vertex.glsl +60 -0
  192. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-BumpMap.png +0 -0
  193. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-MainTex.png +0 -0
  194. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-fragment.glsl +378 -0
  195. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-vertex.glsl +60 -0
  196. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-BumpMap.png +0 -0
  197. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-MainTex.png +0 -0
  198. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-fragment.glsl +380 -0
  199. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-vertex.glsl +58 -0
  200. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +85 -0
  201. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  202. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-fragment.glsl +81 -0
  203. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-vertex.glsl +60 -0
  204. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-MainTex.png +0 -0
  205. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-fragment.glsl +80 -0
  206. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-vertex.glsl +60 -0
  207. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-MainTex.png +0 -0
  208. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-fragment.glsl +82 -0
  209. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-vertex.glsl +55 -0
  210. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-BumpMap.png +0 -0
  211. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-MainTex.png +0 -0
  212. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-fragment.glsl +376 -0
  213. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-vertex.glsl +60 -0
  214. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-BumpMap.png +0 -0
  215. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-MainTex.png +0 -0
  216. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-fragment.glsl +313 -0
  217. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-vertex.glsl +58 -0
  218. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-MainTex.png +0 -0
  219. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-fragment.glsl +377 -0
  220. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-vertex.glsl +60 -0
  221. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-MainTex.png +0 -0
  222. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-fragment.glsl +107 -0
  223. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-vertex.glsl +58 -0
  224. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +75 -0
  225. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  226. package/media/manifest.json +1 -1
  227. package/package.json +1 -1
  228. package/scripts/client.js +19 -2
  229. package/scripts/elements/outliner.js +176 -0
  230. package/scripts/external/JanusFireboxParser.js +2 -1
  231. package/scripts/janusbase.js +3 -2
  232. package/scripts/janusghost.js +32 -10
  233. package/scripts/janusparticle.js +5 -2
  234. package/scripts/janusplayer.js +121 -84
  235. package/scripts/janusweb.js +8 -4
  236. package/scripts/janusxrplayer.js +49 -7
  237. package/scripts/multiplayermanager.js +4 -0
  238. package/scripts/object.js +21 -9
  239. package/scripts/room.js +24 -10
  240. package/scripts/sound.js +8 -3
  241. package/scripts/text.js +2 -0
  242. package/scripts/tracking.js +1 -1
  243. package/scripts/ui/main.js +6 -2
@@ -0,0 +1,60 @@
1
+ #version 300 es
2
+ // Copyright 2020 The Tilt Brush Authors
3
+ // Updated to OpenGL ES 3.0 by the Icosa Gallery Authors
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+
17
+ // Copyright 2020 The Tilt Brush Authors
18
+ //
19
+ // Licensed under the Apache License, Version 2.0 (the "License");
20
+ // you may not use this file except in compliance with the License.
21
+ // You may obtain a copy of the License at
22
+ //
23
+ // http://www.apache.org/licenses/LICENSE-2.0
24
+ //
25
+ // Unless required by applicable law or agreed to in writing, software
26
+ // distributed under the License is distributed on an "AS IS" BASIS,
27
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
+ // See the License for the specific language governing permissions and
29
+ // limitations under the License.
30
+
31
+ // DefaultVS.glsl
32
+ in vec4 a_position;
33
+ in vec3 a_normal;
34
+ in vec4 a_color;
35
+ in vec2 a_texcoord0;
36
+
37
+ out vec4 v_color;
38
+ out vec3 v_normal; // Camera-space normal.
39
+ out vec3 v_position; // Camera-space position.
40
+ out vec2 v_texcoord0;
41
+ out vec3 v_light_dir_0; // Camera-space light direction, main light.
42
+ out vec3 v_light_dir_1; // Camera-space light direction, other light.
43
+ out float f_fog_coord;
44
+
45
+ uniform mat4 modelViewMatrix;
46
+ uniform mat4 projectionMatrix;
47
+ uniform mat3 normalMatrix;
48
+ uniform mat4 u_SceneLight_0_matrix;
49
+ uniform mat4 u_SceneLight_1_matrix;
50
+
51
+ void main() {
52
+ gl_Position = projectionMatrix * modelViewMatrix * a_position;
53
+ f_fog_coord = gl_Position.z;
54
+ v_normal = normalMatrix * a_normal;
55
+ v_position = (modelViewMatrix * a_position).xyz;
56
+ v_light_dir_0 = mat3(u_SceneLight_0_matrix) * vec3(0, 0, 1);
57
+ v_light_dir_1 = mat3(u_SceneLight_1_matrix) * vec3(0, 0, 1);
58
+ v_color = a_color;
59
+ v_texcoord0 = a_texcoord0;
60
+ }
@@ -0,0 +1,334 @@
1
+ #version 300 es
2
+ // Copyright 2020 The Tilt Brush Authors
3
+ // Updated to OpenGL ES 3.0 by the Icosa Gallery Authors
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ precision mediump float;
17
+
18
+ out vec4 fragColor;
19
+
20
+ uniform vec4 u_ambient_light_color;
21
+ uniform vec4 u_SceneLight_0_color;
22
+ uniform vec4 u_SceneLight_1_color;
23
+ uniform float u_Shininess;
24
+ uniform float u_RimIntensity;
25
+ uniform float u_RimPower;
26
+ uniform vec4 u_Color;
27
+ uniform float u_Frequency;
28
+ uniform float u_Jitter;
29
+
30
+ in vec4 v_color;
31
+ in vec3 v_normal;
32
+ in vec3 v_position;
33
+ in vec3 v_local_position;
34
+ in vec3 v_light_dir_0;
35
+ in vec3 v_light_dir_1;
36
+ in vec2 v_texcoord0;
37
+
38
+ // Copyright 2020 The Tilt Brush Authors
39
+ //
40
+ // Licensed under the Apache License, Version 2.0 (the "License");
41
+ // you may not use this file except in compliance with the License.
42
+ // You may obtain a copy of the License at
43
+ //
44
+ // http://www.apache.org/licenses/LICENSE-2.0
45
+ //
46
+ // Unless required by applicable law or agreed to in writing, software
47
+ // distributed under the License is distributed on an "AS IS" BASIS,
48
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
49
+ // See the License for the specific language governing permissions and
50
+ // limitations under the License.
51
+
52
+ //
53
+ // Standard BRDF Lighting
54
+ //
55
+
56
+ const float PI = 3.141592654;
57
+ const float INV_PI = 0.318309886;
58
+ const vec3 GAMMA_DIELECTRIC_SPEC = vec3(0.220916301, 0.220916301, 0.220916301);
59
+ const float GAMMA_ONE_MINUS_DIELECTRIC = (1.0 - 0.220916301);
60
+
61
+ // The following functions are based on similar ones in the Unity Standard BRDF
62
+ // with minor changes for GLSL and unused #ifdef pruning.
63
+
64
+ float Pow5(float x) {
65
+ return x * x * x * x * x;
66
+ }
67
+
68
+ // https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf
69
+ float DisneyDiffuseTerm(float NdotV, float NdotL, float LdotH,
70
+ float perceptualRoughness) {
71
+ float fd90 = 0.5 + 2.0 * LdotH * LdotH * perceptualRoughness;
72
+ float lightScatter = 1.0 + (fd90 - 1.0) * Pow5(1.0 - NdotL);
73
+ float viewScatter = 1.0 + (fd90 - 1.0) * Pow5(1.0 - NdotV);
74
+ return lightScatter * viewScatter;
75
+ }
76
+
77
+ float SmithJointVisibilityTerm(float NdotL, float NdotV, float roughness) {
78
+ float lambdaV = NdotL * mix(NdotV, 1.0, roughness);
79
+ float lambdaL = NdotV * mix(NdotL, 1.0, roughness);
80
+ return 0.5 / (lambdaV + lambdaL + 1e-5);
81
+ }
82
+
83
+ float GgxDistributionTerm(float NdotH, float roughness) {
84
+ float a2 = roughness * roughness;
85
+ float d = (NdotH * a2 - NdotH) * NdotH + 1.0;
86
+ return INV_PI * a2 / (d * d + 1e-7);
87
+ }
88
+
89
+ // Implements Schlick's approximation to Fresnel. IoR is implied by
90
+ // F0, which contains minimum reflectance values (per RGB color).
91
+ vec3 FresnelTerm (vec3 F0, float cosA) {
92
+ float t = Pow5(1.0 - cosA);
93
+ return F0 + (vec3(1.0) - F0) * t;
94
+ }
95
+
96
+ vec3 SurfaceShaderInternal(
97
+ vec3 normal, // Unit surface normal.
98
+ vec3 lightDir, // Unit vector from shading point to light.
99
+ vec3 eyeDir, // Unit vector from shading point to camera.
100
+ vec3 lightColor, // RGB color of the light.
101
+ vec3 diffuseColor, // Surface diffuse color.
102
+ vec3 specularColor, // Surface specular color, also drives Fresnel.
103
+ float perceptualRoughness) { // Unity's perceptual Roughness, in [0.0, 1.0].
104
+ float NdotL = clamp(dot(normal, lightDir), 0.0, 1.0);
105
+ float NdotV = abs(dot(normal, eyeDir));
106
+
107
+ vec3 halfVector = normalize(lightDir + eyeDir);
108
+ float NdotH = clamp(dot(normal, halfVector), 0.0, 1.0);
109
+ float LdotH = clamp(dot(lightDir, halfVector), 0.0, 1.0);
110
+
111
+ float diffuseTerm = NdotL *
112
+ DisneyDiffuseTerm(NdotV, NdotL, LdotH, perceptualRoughness);
113
+
114
+ if (length(specularColor) < 1e-5) {
115
+ return diffuseColor * (lightColor * diffuseTerm);
116
+ }
117
+
118
+ float roughness = perceptualRoughness * perceptualRoughness;
119
+
120
+ // The V term includes both the traditional G term and the BRDF divisors.
121
+ float V = GgxDistributionTerm(NdotH, roughness);
122
+ float D = SmithJointVisibilityTerm(NdotL, NdotV, roughness);
123
+ float specularTerm = V * D * PI; // RGB-based Fresnel terms applied below.
124
+
125
+ specularTerm = sqrt(max(1e-4, specularTerm)); // For Gamma-space rendering.
126
+ specularTerm *= NdotL;
127
+
128
+ // Treats specularColor as spectral F0 components of Schlick's formula.
129
+ vec3 fresnelColor = FresnelTerm(specularColor, LdotH);
130
+
131
+ return lightColor *
132
+ (diffuseTerm * diffuseColor + specularTerm * fresnelColor);
133
+ }
134
+
135
+ // An emulation of Unity 5.5's Surface shader, minus the global
136
+ // illumination part. Returns a per-light color contribution to the
137
+ // shaded surface. Ambient illumination needs to be added separately.
138
+ vec3 SurfaceShaderSpecularGloss(
139
+ vec3 normal, // Unit surface normal.
140
+ vec3 lightDir, // Unit vector from shading point to light.
141
+ vec3 eyeDir, // Unit vector from shading point to camera.
142
+ vec3 lightColor, // RGB color of the light.
143
+ vec3 albedoColor, // Surface albedo color.
144
+ vec3 specularColor, // Surface specular color, also drives Fresnel.
145
+ float gloss) { // Unity's perceptual smoothness, in [0.0, 1.0].
146
+ float oneMinusSpecularIntensity =
147
+ 1.0 - clamp(max(max(specularColor.r, specularColor.g), specularColor.b), 0., 1.);
148
+ vec3 diffuseColor = albedoColor * oneMinusSpecularIntensity;
149
+ float perceptualRoughness = 1.0 - gloss;
150
+
151
+ return SurfaceShaderInternal(
152
+ normal, lightDir, eyeDir, lightColor, diffuseColor, specularColor, perceptualRoughness);
153
+ }
154
+
155
+ // An emulation of Unity 5.5's Surface shader using MetallicSetup(), minus the global
156
+ // illumination part. Returns a per-light color contribution to the
157
+ // shaded surface. Ambient illumination needs to be added separately.
158
+ vec3 SurfaceShaderMetallicRoughness(
159
+ vec3 normal, // Unit surface normal.
160
+ vec3 lightDir, // Unit vector from shading point to light.
161
+ vec3 eyeDir, // Unit vector from shading point to camera.
162
+ vec3 lightColor, // RGB color of the light.
163
+ vec3 albedoColor, // Surface albedo color.
164
+ float metallic, // Surface metallic value, drives specular color and reflectivity.
165
+ float perceptualRoughness) { // Unity's perceptual Roughness, in [0.0, 1.0], sqrt of roughness.
166
+ vec3 specularColor = mix(GAMMA_DIELECTRIC_SPEC, albedoColor, metallic);
167
+ float oneMinusReflectivity = GAMMA_ONE_MINUS_DIELECTRIC - metallic * GAMMA_ONE_MINUS_DIELECTRIC;
168
+ vec3 diffuseColor = albedoColor * oneMinusReflectivity;
169
+
170
+ return SurfaceShaderInternal(
171
+ normal, lightDir, eyeDir, lightColor, diffuseColor, specularColor, perceptualRoughness);
172
+ }
173
+
174
+ //
175
+ // An Approximation of Unity SH Lighting
176
+ //
177
+
178
+ // SH lighting needs to emulate Unity's SH light behavior.
179
+ // -Diffuse contribution should be roughly 1/2
180
+ // -Specularity should "subtract" from the diffuse contribution becuase
181
+ // the SH Lights in unity are not energy preserving.
182
+
183
+ vec3 ShShaderWithSpec(
184
+ vec3 normal, // Unit surface normal.
185
+ vec3 lightDir, // Unit vector from shading point to light.
186
+ vec3 lightColor, // RGB color of the light.
187
+ vec3 diffuseColor, // Surface diffuse color, i.e. albedo.
188
+ vec3 specularColor) { // Specular color. Used to replicate broken SH lighting
189
+ // in unity which is not energy preserving
190
+ float specularGrayscale = dot(specularColor, vec3(0.3, 0.59, 0.11));
191
+ float NdotL = clamp(dot(normal, lightDir), 0.0, 1.0);
192
+ // Compensate for missing specular contribution
193
+ float shIntensityMultiplier = 1. - specularGrayscale;
194
+ shIntensityMultiplier *= shIntensityMultiplier;
195
+ return diffuseColor * lightColor * NdotL * shIntensityMultiplier;
196
+ }
197
+
198
+ vec3 ShShader(
199
+ vec3 normal, // Unit surface normal.
200
+ vec3 lightDir, // Unit vector from shading point to light.
201
+ vec3 lightColor, // RGB color of the light.
202
+ vec3 diffuseColor) { // Surface diffuse color, i.e. albedo
203
+ return ShShaderWithSpec(normal, lightDir, lightColor, diffuseColor, vec3(0.,0.,0.));
204
+ }
205
+
206
+ //
207
+ // Lambert Lighting
208
+ //
209
+ vec3 LambertShader(
210
+ vec3 normal, // Unit surface normal.
211
+ vec3 lightDir, // Unit vector from shading point to light.
212
+ vec3 lightColor, // RGB color of the light.
213
+ vec3 diffuseColor) { // Surface diffuse color, i.e. albedo.
214
+ float NdotL = clamp(dot(normal, lightDir), 0.0, 1.0);
215
+ return diffuseColor * lightColor * NdotL;
216
+ }
217
+ //
218
+ // Voronoi implementation taken from
219
+ // https://github.com/Scrawk/GPU-Voronoi-Noise
220
+ // (MIT License)
221
+ //
222
+
223
+ //1/7
224
+ #define K 0.142857142857
225
+ //3/7
226
+ #define Ko 0.428571428571
227
+
228
+ #define OCTAVES 1
229
+
230
+ vec3 fmod(vec3 x, float y) { return x - y * floor(x/y); }
231
+ vec2 fmod(vec2 x, float y) { return x - y * floor(x/y); }
232
+
233
+ // Permutation polynomial: (34x^2 + x) mod 289
234
+ vec3 Permutation(vec3 x)
235
+ {
236
+ return mod((34.0 * x + 1.0) * x, 289.0);
237
+ }
238
+
239
+ vec2 inoise(vec3 P, float jitter)
240
+ {
241
+ vec3 Pi = mod(floor(P), 289.0);
242
+ vec3 Pf = fract(P);
243
+ vec3 oi = vec3(-1.0, 0.0, 1.0);
244
+ vec3 of = vec3(-0.5, 0.5, 1.5);
245
+ vec3 px = Permutation(Pi.x + oi);
246
+ vec3 py = Permutation(Pi.y + oi);
247
+
248
+ vec3 p, ox, oy, oz, dx, dy, dz;
249
+ vec2 F = vec2(1e6,1e6);
250
+
251
+ for(int i = 0; i < 3; i++) {
252
+ for(int j = 0; j < 3; j++) {
253
+ p = Permutation(px[i] + py[j] + Pi.z + oi); // pij1, pij2, pij3
254
+
255
+ ox = fract(p*K) - Ko;
256
+ oy = mod(floor(p*K),7.0)*K - Ko;
257
+ p = Permutation(p);
258
+
259
+ oz = fract(p*K) - Ko;
260
+
261
+ dx = Pf.x - of[i] + jitter*ox;
262
+ dy = Pf.y - of[j] + jitter*oy;
263
+ dz = Pf.z - of + jitter*oz;
264
+
265
+ vec3 d = dx * dx + dy * dy + dz * dz; // dij1, dij2 and dij3, squared
266
+
267
+ //Find lowest and second lowest distances
268
+ for(int n = 0; n < 3; n++) {
269
+ if(d[n] < F[0]) {
270
+ F[1] = F[0];
271
+ F[0] = d[n];
272
+ } else if(d[n] < F[1]) {
273
+ F[1] = d[n];
274
+ }
275
+ }
276
+ }
277
+ }
278
+ return F;
279
+ }
280
+
281
+ // fractal sum, range -1.0 - 1.0
282
+ vec2 fBm_F0(vec3 p, int octaves)
283
+ {
284
+ //u_Frequency needs a bit of a boost for the gltf to look right
285
+ float freq = u_Frequency * 4.;
286
+ float amp = 0.5;
287
+ vec2 F = inoise(p * freq, u_Jitter) * amp;
288
+ return F;
289
+ }
290
+
291
+
292
+ // Specular only lighting
293
+ vec3 computeGemReflection() {
294
+ vec3 normal = normalize(v_normal);
295
+
296
+ // Get Voronoi
297
+ vec2 F = fBm_F0(v_local_position, OCTAVES);
298
+ float gem = (F.y - F.x);
299
+
300
+ // Perturb normal with voronoi cells
301
+ float perturbIntensity = 50.; //was 10. in unity. Presumably glsl vs. hlsl is the source of the discrepancy.
302
+ normal.y += dFdy(gem) * perturbIntensity;
303
+ normal.x += dFdx(gem) * perturbIntensity;
304
+ normal = normalize(normal);
305
+
306
+ vec3 lightDir0 = normalize(v_light_dir_0);
307
+ vec3 lightDir1 = normalize(v_light_dir_1);
308
+ vec3 eyeDir = -normalize(v_position);
309
+ vec3 diffuseColor = vec3(0.,0.,0.);
310
+
311
+ // Artifical diffraction highlights to simulate what I see in blocks. Tuned to taste.
312
+ vec3 refl = eyeDir - 2. * dot(eyeDir, normal) * normal + gem;
313
+ vec3 colorRamp = vec3(1.,.3,0)*sin(refl.x * 30.) + vec3(0.,1.,.5)*cos(refl.y * 37.77) + vec3(0.,0.,1.)*sin(refl.z*43.33);
314
+
315
+ // was colorRamp * .1 in unity, but boosting since
316
+ // we don't have an environment map on Poly
317
+ vec3 specularColor = u_Color.rgb + colorRamp * .5;
318
+ float smoothness = u_Shininess;
319
+
320
+ vec3 lightOut0 = SurfaceShaderSpecularGloss(normal, lightDir0, eyeDir, u_SceneLight_0_color.rgb,
321
+ diffuseColor, specularColor, smoothness);
322
+
323
+ // Calculate rim lighting
324
+ float viewAngle = clamp(dot(eyeDir, normal),0.,1.);
325
+ float rim = pow(1. - viewAngle, u_RimPower);
326
+ vec3 rimColor = vec3(rim,rim,rim) * u_RimIntensity;
327
+
328
+ return (lightOut0 + rimColor);
329
+ }
330
+
331
+ void main() {
332
+ fragColor.rgb = computeGemReflection();
333
+ fragColor.a = 1.0;
334
+ }
@@ -0,0 +1,46 @@
1
+ #version 300 es
2
+ // Copyright 2020 The Tilt Brush Authors
3
+ // Updated to OpenGL ES 3.0 by the Icosa Gallery Authors
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+
17
+ // DefaultVS.glsl
18
+ in vec4 a_position;
19
+ in vec3 a_normal;
20
+ in vec4 a_color;
21
+ in vec2 a_texcoord0;
22
+
23
+ out vec4 v_color;
24
+ out vec3 v_normal; // Camera-space normal.
25
+ out vec3 v_position; // Camera-space position.
26
+ out vec3 v_local_position;
27
+ out vec2 v_texcoord0;
28
+ out vec3 v_light_dir_0; // Camera-space light direction, main light.
29
+ out vec3 v_light_dir_1; // Camera-space light direction, other light.
30
+
31
+ uniform mat4 modelViewMatrix;
32
+ uniform mat4 projectionMatrix;
33
+ uniform mat3 normalMatrix;
34
+ uniform mat4 u_SceneLight_0_matrix;
35
+ uniform mat4 u_SceneLight_1_matrix;
36
+
37
+ void main() {
38
+ gl_Position = projectionMatrix * modelViewMatrix * a_position;
39
+ v_normal = normalMatrix * a_normal;
40
+ v_position = (modelViewMatrix * a_position).xyz;
41
+ v_local_position = a_position.xyz;
42
+ v_light_dir_0 = mat3(u_SceneLight_0_matrix) * vec3(0, 0, 1);
43
+ v_light_dir_1 = mat3(u_SceneLight_1_matrix) * vec3(0, 0, 1);
44
+ v_color = a_color;
45
+ v_texcoord0 = a_texcoord0;
46
+ }
@@ -0,0 +1,248 @@
1
+ #version 300 es
2
+ // Copyright 2020 The Tilt Brush Authors
3
+ // Updated to OpenGL ES 3.0 by the Icosa Gallery Authors
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+
17
+ // Brush-specific shader for GlTF web preview, based on Diffuse.glsl
18
+ // generator with parameters: a=0.067.
19
+
20
+ precision mediump float;
21
+
22
+ out vec4 fragColor;
23
+
24
+ uniform vec4 u_ambient_light_color;
25
+ uniform vec4 u_SceneLight_0_color;
26
+ uniform vec4 u_SceneLight_1_color;
27
+ uniform float u_Shininess;
28
+ uniform float u_RimIntensity;
29
+ uniform float u_RimPower;
30
+ uniform vec4 u_Color;
31
+
32
+ in vec4 v_color;
33
+ in vec3 v_normal;
34
+ in vec3 v_position;
35
+ in vec3 v_light_dir_0;
36
+ in vec3 v_light_dir_1;
37
+ in vec2 v_texcoord0;
38
+
39
+ // Copyright 2020 The Tilt Brush Authors
40
+ //
41
+ // Licensed under the Apache License, Version 2.0 (the "License");
42
+ // you may not use this file except in compliance with the License.
43
+ // You may obtain a copy of the License at
44
+ //
45
+ // http://www.apache.org/licenses/LICENSE-2.0
46
+ //
47
+ // Unless required by applicable law or agreed to in writing, software
48
+ // distributed under the License is distributed on an "AS IS" BASIS,
49
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
50
+ // See the License for the specific language governing permissions and
51
+ // limitations under the License.
52
+
53
+ //
54
+ // Standard BRDF Lighting
55
+ //
56
+
57
+ const float PI = 3.141592654;
58
+ const float INV_PI = 0.318309886;
59
+ const vec3 GAMMA_DIELECTRIC_SPEC = vec3(0.220916301, 0.220916301, 0.220916301);
60
+ const float GAMMA_ONE_MINUS_DIELECTRIC = (1.0 - 0.220916301);
61
+
62
+ // The following functions are based on similar ones in the Unity Standard BRDF
63
+ // with minor changes for GLSL and unused #ifdef pruning.
64
+
65
+ float Pow5(float x) {
66
+ return x * x * x * x * x;
67
+ }
68
+
69
+ // https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf
70
+ float DisneyDiffuseTerm(float NdotV, float NdotL, float LdotH,
71
+ float perceptualRoughness) {
72
+ float fd90 = 0.5 + 2.0 * LdotH * LdotH * perceptualRoughness;
73
+ float lightScatter = 1.0 + (fd90 - 1.0) * Pow5(1.0 - NdotL);
74
+ float viewScatter = 1.0 + (fd90 - 1.0) * Pow5(1.0 - NdotV);
75
+ return lightScatter * viewScatter;
76
+ }
77
+
78
+ float SmithJointVisibilityTerm(float NdotL, float NdotV, float roughness) {
79
+ float lambdaV = NdotL * mix(NdotV, 1.0, roughness);
80
+ float lambdaL = NdotV * mix(NdotL, 1.0, roughness);
81
+ return 0.5 / (lambdaV + lambdaL + 1e-5);
82
+ }
83
+
84
+ float GgxDistributionTerm(float NdotH, float roughness) {
85
+ float a2 = roughness * roughness;
86
+ float d = (NdotH * a2 - NdotH) * NdotH + 1.0;
87
+ return INV_PI * a2 / (d * d + 1e-7);
88
+ }
89
+
90
+ // Implements Schlick's approximation to Fresnel. IoR is implied by
91
+ // F0, which contains minimum reflectance values (per RGB color).
92
+ vec3 FresnelTerm (vec3 F0, float cosA) {
93
+ float t = Pow5(1.0 - cosA);
94
+ return F0 + (vec3(1.0) - F0) * t;
95
+ }
96
+
97
+ vec3 SurfaceShaderInternal(
98
+ vec3 normal, // Unit surface normal.
99
+ vec3 lightDir, // Unit vector from shading point to light.
100
+ vec3 eyeDir, // Unit vector from shading point to camera.
101
+ vec3 lightColor, // RGB color of the light.
102
+ vec3 diffuseColor, // Surface diffuse color.
103
+ vec3 specularColor, // Surface specular color, also drives Fresnel.
104
+ float perceptualRoughness) { // Unity's perceptual Roughness, in [0.0, 1.0].
105
+ float NdotL = clamp(dot(normal, lightDir), 0.0, 1.0);
106
+ float NdotV = abs(dot(normal, eyeDir));
107
+
108
+ vec3 halfVector = normalize(lightDir + eyeDir);
109
+ float NdotH = clamp(dot(normal, halfVector), 0.0, 1.0);
110
+ float LdotH = clamp(dot(lightDir, halfVector), 0.0, 1.0);
111
+
112
+ float diffuseTerm = NdotL *
113
+ DisneyDiffuseTerm(NdotV, NdotL, LdotH, perceptualRoughness);
114
+
115
+ if (length(specularColor) < 1e-5) {
116
+ return diffuseColor * (lightColor * diffuseTerm);
117
+ }
118
+
119
+ float roughness = perceptualRoughness * perceptualRoughness;
120
+
121
+ // The V term includes both the traditional G term and the BRDF divisors.
122
+ float V = GgxDistributionTerm(NdotH, roughness);
123
+ float D = SmithJointVisibilityTerm(NdotL, NdotV, roughness);
124
+ float specularTerm = V * D * PI; // RGB-based Fresnel terms applied below.
125
+
126
+ specularTerm = sqrt(max(1e-4, specularTerm)); // For Gamma-space rendering.
127
+ specularTerm *= NdotL;
128
+
129
+ // Treats specularColor as spectral F0 components of Schlick's formula.
130
+ vec3 fresnelColor = FresnelTerm(specularColor, LdotH);
131
+
132
+ return lightColor *
133
+ (diffuseTerm * diffuseColor + specularTerm * fresnelColor);
134
+ }
135
+
136
+ // An emulation of Unity 5.5's Surface shader, minus the global
137
+ // illumination part. Returns a per-light color contribution to the
138
+ // shaded surface. Ambient illumination needs to be added separately.
139
+ vec3 SurfaceShaderSpecularGloss(
140
+ vec3 normal, // Unit surface normal.
141
+ vec3 lightDir, // Unit vector from shading point to light.
142
+ vec3 eyeDir, // Unit vector from shading point to camera.
143
+ vec3 lightColor, // RGB color of the light.
144
+ vec3 albedoColor, // Surface albedo color.
145
+ vec3 specularColor, // Surface specular color, also drives Fresnel.
146
+ float gloss) { // Unity's perceptual smoothness, in [0.0, 1.0].
147
+ float oneMinusSpecularIntensity =
148
+ 1.0 - clamp(max(max(specularColor.r, specularColor.g), specularColor.b), 0., 1.);
149
+ vec3 diffuseColor = albedoColor * oneMinusSpecularIntensity;
150
+ float perceptualRoughness = 1.0 - gloss;
151
+
152
+ return SurfaceShaderInternal(
153
+ normal, lightDir, eyeDir, lightColor, diffuseColor, specularColor, perceptualRoughness);
154
+ }
155
+
156
+ // An emulation of Unity 5.5's Surface shader using MetallicSetup(), minus the global
157
+ // illumination part. Returns a per-light color contribution to the
158
+ // shaded surface. Ambient illumination needs to be added separately.
159
+ vec3 SurfaceShaderMetallicRoughness(
160
+ vec3 normal, // Unit surface normal.
161
+ vec3 lightDir, // Unit vector from shading point to light.
162
+ vec3 eyeDir, // Unit vector from shading point to camera.
163
+ vec3 lightColor, // RGB color of the light.
164
+ vec3 albedoColor, // Surface albedo color.
165
+ float metallic, // Surface metallic value, drives specular color and reflectivity.
166
+ float perceptualRoughness) { // Unity's perceptual Roughness, in [0.0, 1.0], sqrt of roughness.
167
+ vec3 specularColor = mix(GAMMA_DIELECTRIC_SPEC, albedoColor, metallic);
168
+ float oneMinusReflectivity = GAMMA_ONE_MINUS_DIELECTRIC - metallic * GAMMA_ONE_MINUS_DIELECTRIC;
169
+ vec3 diffuseColor = albedoColor * oneMinusReflectivity;
170
+
171
+ return SurfaceShaderInternal(
172
+ normal, lightDir, eyeDir, lightColor, diffuseColor, specularColor, perceptualRoughness);
173
+ }
174
+
175
+ //
176
+ // An Approximation of Unity SH Lighting
177
+ //
178
+
179
+ // SH lighting needs to emulate Unity's SH light behavior.
180
+ // -Diffuse contribution should be roughly 1/2
181
+ // -Specularity should "subtract" from the diffuse contribution becuase
182
+ // the SH Lights in unity are not energy preserving.
183
+
184
+ vec3 ShShaderWithSpec(
185
+ vec3 normal, // Unit surface normal.
186
+ vec3 lightDir, // Unit vector from shading point to light.
187
+ vec3 lightColor, // RGB color of the light.
188
+ vec3 diffuseColor, // Surface diffuse color, i.e. albedo.
189
+ vec3 specularColor) { // Specular color. Used to replicate broken SH lighting
190
+ // in unity which is not energy preserving
191
+ float specularGrayscale = dot(specularColor, vec3(0.3, 0.59, 0.11));
192
+ float NdotL = clamp(dot(normal, lightDir), 0.0, 1.0);
193
+ // Compensate for missing specular contribution
194
+ float shIntensityMultiplier = 1. - specularGrayscale;
195
+ shIntensityMultiplier *= shIntensityMultiplier;
196
+ return diffuseColor * lightColor * NdotL * shIntensityMultiplier;
197
+ }
198
+
199
+ vec3 ShShader(
200
+ vec3 normal, // Unit surface normal.
201
+ vec3 lightDir, // Unit vector from shading point to light.
202
+ vec3 lightColor, // RGB color of the light.
203
+ vec3 diffuseColor) { // Surface diffuse color, i.e. albedo
204
+ return ShShaderWithSpec(normal, lightDir, lightColor, diffuseColor, vec3(0.,0.,0.));
205
+ }
206
+
207
+ //
208
+ // Lambert Lighting
209
+ //
210
+ vec3 LambertShader(
211
+ vec3 normal, // Unit surface normal.
212
+ vec3 lightDir, // Unit vector from shading point to light.
213
+ vec3 lightColor, // RGB color of the light.
214
+ vec3 diffuseColor) { // Surface diffuse color, i.e. albedo.
215
+ float NdotL = clamp(dot(normal, lightDir), 0.0, 1.0);
216
+ return diffuseColor * lightColor * NdotL;
217
+ }
218
+
219
+ // Specular only lighting
220
+ vec3 computeGlassReflection() {
221
+ vec3 normal = normalize(v_normal);
222
+ float backfaceDimming = 1.;
223
+ if (!gl_FrontFacing) {
224
+ // Always use front-facing normal for double-sided surfaces.
225
+ normal *= -1.0;
226
+ backfaceDimming = .25;
227
+ }
228
+ vec3 lightDir0 = normalize(v_light_dir_0);
229
+ vec3 lightDir1 = normalize(v_light_dir_1);
230
+ vec3 eyeDir = -normalize(v_position);
231
+
232
+ vec3 diffuseColor = vec3(0.,0.,0.);
233
+ vec3 specularColor = vec3(u_Color.r, u_Color.g, u_Color.b);
234
+ vec3 lightOut0 = SurfaceShaderSpecularGloss(normal, lightDir0, eyeDir, u_SceneLight_0_color.rgb,
235
+ diffuseColor, specularColor, u_Shininess);
236
+
237
+ // Calculate rim lighting
238
+ float viewAngle = clamp(dot(eyeDir, normal),0.,1.);
239
+ float rim = pow(1. - viewAngle, u_RimPower) * u_RimIntensity;
240
+ vec3 rimColor = vec3(rim,rim,rim);
241
+
242
+ return (lightOut0 + rimColor) * backfaceDimming;
243
+ }
244
+
245
+ void main() {
246
+ fragColor.rgb = computeGlassReflection();
247
+ fragColor.a = 1.0;
248
+ }