cesium 0.13.2 → 0.14.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 (348) hide show
  1. data/app/assets/javascripts/Cesium.js +2 -2
  2. data/app/assets/javascripts/Core/Clock.js +81 -81
  3. data/app/assets/javascripts/Core/ClockRange.js +5 -3
  4. data/app/assets/javascripts/Core/ClockStep.js +7 -1
  5. data/app/assets/javascripts/Core/Event.js +12 -11
  6. data/app/assets/javascripts/Core/JulianDate.js +16 -0
  7. data/app/assets/javascripts/DynamicScene/CompositeDynamicObjectCollection.js +1 -1
  8. data/app/assets/javascripts/DynamicScene/DynamicBillboardVisualizer.js +1 -1
  9. data/app/assets/javascripts/DynamicScene/DynamicConeVisualizer.js +1 -1
  10. data/app/assets/javascripts/DynamicScene/DynamicConeVisualizerUsingCustomSensor.js +1 -1
  11. data/app/assets/javascripts/DynamicScene/DynamicEllipsoidVisualizer.js +1 -1
  12. data/app/assets/javascripts/DynamicScene/DynamicLabelVisualizer.js +1 -1
  13. data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +1 -1
  14. data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +1 -1
  15. data/app/assets/javascripts/DynamicScene/DynamicPolygonVisualizer.js +1 -1
  16. data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +1 -1
  17. data/app/assets/javascripts/DynamicScene/DynamicPyramidVisualizer.js +1 -1
  18. data/app/assets/javascripts/Renderer/ClearCommand.js +1 -1
  19. data/app/assets/javascripts/Renderer/Context.js +23 -0
  20. data/app/assets/javascripts/Renderer/DrawCommand.js +1 -1
  21. data/app/assets/javascripts/Scene/BillboardCollection.js +14 -24
  22. data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +8 -31
  23. data/app/assets/javascripts/Scene/PerformanceDisplay.js +13 -4
  24. data/app/assets/javascripts/Scene/Tile.js +11 -6
  25. data/app/assets/javascripts/Scene/ViewportQuad.js +21 -36
  26. data/app/assets/javascripts/Shaders/BillboardCollectionFS.js +15 -11
  27. data/app/assets/javascripts/Shaders/BillboardCollectionVS.js +47 -27
  28. data/app/assets/javascripts/Shaders/BuiltinFunctions.js +886 -228
  29. data/app/assets/javascripts/Shaders/CentralBodyFS.js +173 -40
  30. data/app/assets/javascripts/Shaders/CentralBodyFSDepth.js +17 -14
  31. data/app/assets/javascripts/Shaders/CentralBodyFSPole.js +25 -19
  32. data/app/assets/javascripts/Shaders/CentralBodyVS.js +61 -31
  33. data/app/assets/javascripts/Shaders/CentralBodyVSDepth.js +5 -4
  34. data/app/assets/javascripts/Shaders/CentralBodyVSPole.js +9 -7
  35. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.js +392 -299
  36. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.js +12 -8
  37. data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.js +836 -530
  38. data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.js +95 -58
  39. data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.js +7 -6
  40. data/app/assets/javascripts/Shaders/EllipsoidFS.js +34 -26
  41. data/app/assets/javascripts/Shaders/EllipsoidVS.js +21 -5
  42. data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.js +19 -11
  43. data/app/assets/javascripts/Shaders/Materials/BlobMaterial.js +13 -9
  44. data/app/assets/javascripts/Shaders/Materials/BrickMaterial.js +33 -22
  45. data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.js +24 -17
  46. data/app/assets/javascripts/Shaders/Materials/CementMaterial.js +14 -10
  47. data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.js +32 -20
  48. data/app/assets/javascripts/Shaders/Materials/DotMaterial.js +11 -6
  49. data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.js +18 -13
  50. data/app/assets/javascripts/Shaders/Materials/FacetMaterial.js +12 -7
  51. data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.js +9 -6
  52. data/app/assets/javascripts/Shaders/Materials/GrassMaterial.js +23 -16
  53. data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.js +14 -11
  54. data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.js +10 -8
  55. data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.js +10 -8
  56. data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.js +12 -7
  57. data/app/assets/javascripts/Shaders/Materials/StripeMaterial.js +21 -12
  58. data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.js +11 -7
  59. data/app/assets/javascripts/Shaders/Materials/Water.js +46 -45
  60. data/app/assets/javascripts/Shaders/Materials/WoodMaterial.js +29 -19
  61. data/app/assets/javascripts/Shaders/Noise.js +408 -173
  62. data/app/assets/javascripts/Shaders/PolygonFS.js +20 -10
  63. data/app/assets/javascripts/Shaders/PolygonFSPick.js +3 -3
  64. data/app/assets/javascripts/Shaders/PolygonVS.js +27 -22
  65. data/app/assets/javascripts/Shaders/PolygonVSPick.js +23 -19
  66. data/app/assets/javascripts/Shaders/PolylineFS.js +3 -3
  67. data/app/assets/javascripts/Shaders/PolylineVS.js +24 -19
  68. data/app/assets/javascripts/Shaders/Ray.js +496 -315
  69. data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.js +16 -6
  70. data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.js +5 -2
  71. data/app/assets/javascripts/Shaders/SensorVolume.js +32 -15
  72. data/app/assets/javascripts/Shaders/SkyAtmosphereFS.js +61 -16
  73. data/app/assets/javascripts/Shaders/SkyAtmosphereVS.js +106 -53
  74. data/app/assets/javascripts/Shaders/SkyBoxFS.js +4 -2
  75. data/app/assets/javascripts/Shaders/SkyBoxVS.js +5 -3
  76. data/app/assets/javascripts/Shaders/ViewportQuadFS.js +14 -10
  77. data/app/assets/javascripts/Shaders/ViewportQuadVS.js +6 -5
  78. data/app/assets/javascripts/ThirdParty/knockout.js +88 -0
  79. data/app/assets/javascripts/Widgets/Animation/Animation.css +141 -0
  80. data/app/assets/javascripts/Widgets/Animation/Animation.js +944 -0
  81. data/app/assets/javascripts/Widgets/Animation/AnimationViewModel.js +503 -0
  82. data/app/assets/javascripts/Widgets/Animation/darker.css +69 -0
  83. data/app/assets/javascripts/Widgets/ClockViewModel.js +167 -0
  84. data/app/assets/javascripts/Widgets/Command.js +33 -0
  85. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.css +54 -77
  86. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.html +6 -27
  87. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +124 -187
  88. data/app/assets/javascripts/Widgets/Fullscreen/FullscreenViewModel.js +88 -0
  89. data/app/assets/javascripts/Widgets/Fullscreen/FullscreenWidget.css +16 -0
  90. data/app/assets/javascripts/Widgets/Fullscreen/FullscreenWidget.js +50 -0
  91. data/app/assets/javascripts/Widgets/Fullscreen/darker.css +14 -0
  92. data/app/assets/javascripts/Widgets/Images/enterFullscreen-darker.svg +18 -0
  93. data/app/assets/javascripts/Widgets/Images/enterFullscreen.svg +18 -0
  94. data/app/assets/javascripts/Widgets/Images/exitFullscreen-darker.svg +18 -0
  95. data/app/assets/javascripts/Widgets/Images/exitFullscreen.svg +18 -0
  96. data/app/assets/javascripts/Widgets/Observable.js +29 -0
  97. data/app/assets/javascripts/Widgets/{Timeline.css → Timeline/Timeline.css} +18 -21
  98. data/app/assets/javascripts/Widgets/{Timeline.js → Timeline/Timeline.js} +12 -7
  99. data/app/assets/javascripts/Widgets/{TimelineHighlightRange.js → Timeline/TimelineHighlightRange.js} +0 -0
  100. data/app/assets/javascripts/Widgets/{TimelineTrack.js → Timeline/TimelineTrack.js} +1 -1
  101. data/app/assets/javascripts/Widgets/Timeline/darker.css +20 -0
  102. data/app/assets/javascripts/Widgets/ToggleButtonViewModel.js +40 -0
  103. data/app/assets/javascripts/Widgets/createCommand.js +41 -0
  104. data/lib/cesium/version.rb +1 -1
  105. data/test/dummy/log/development.log +3300 -0
  106. data/test/dummy/tmp/cache/assets/C0D/D90/sprockets%2F297417de8571859510683b028659bf97 +0 -0
  107. data/test/dummy/tmp/cache/assets/C5E/6E0/sprockets%2F990a847694744e4ac598dc125572a243 +0 -0
  108. data/test/dummy/tmp/cache/assets/C64/470/sprockets%2Fa605a34504c3a61f1e0309374154a4f2 +0 -0
  109. data/test/dummy/tmp/cache/assets/C6C/D20/sprockets%2F8214271b512224e3f7a73a322e85b15c +0 -0
  110. data/test/dummy/tmp/cache/assets/C6E/8C0/sprockets%2F13ad4320ee685ee062033b0806b07756 +0 -0
  111. data/test/dummy/tmp/cache/assets/C71/D40/sprockets%2F191b5a7162930434c9ea09419d2c0c42 +0 -0
  112. data/test/dummy/tmp/cache/assets/C75/FC0/sprockets%2F7100611b808c367104f4537af8b467ca +0 -0
  113. data/test/dummy/tmp/cache/assets/C77/C90/sprockets%2F5c6d277228741022bef80d17b5422c55 +0 -0
  114. data/test/dummy/tmp/cache/assets/C7B/2E0/sprockets%2F049f5400e934154d876d9e7a110d0b72 +0 -0
  115. data/test/dummy/tmp/cache/assets/C7D/290/sprockets%2F07b270a59082157be139ee653b4435b9 +0 -0
  116. data/test/dummy/tmp/cache/assets/C82/860/sprockets%2Fbd185743a7cf9fa41b72715364178414 +0 -0
  117. data/test/dummy/tmp/cache/assets/C83/5B0/sprockets%2F11288f143903cfc5595d8a5771f51f20 +0 -0
  118. data/test/dummy/tmp/cache/assets/C84/210/sprockets%2F5e7c3418b40688a85916fd18512fc213 +0 -0
  119. data/test/dummy/tmp/cache/assets/C85/2A0/sprockets%2F409dfb449462105286e47c6a8c32860e +0 -0
  120. data/test/dummy/tmp/cache/assets/C87/790/sprockets%2F49d9e234d84217773d540a5b4813fc64 +0 -0
  121. data/test/dummy/tmp/cache/assets/C8C/C50/sprockets%2F87a1327314e4aa2a3ea44a33a4730420 +0 -0
  122. data/test/dummy/tmp/cache/assets/C9C/B20/sprockets%2Fc3000c708c2d95253d8a414d6c087d10 +0 -0
  123. data/test/dummy/tmp/cache/assets/C9E/DC0/sprockets%2F2f7b17e380320fe9d0650d3aa4614432 +0 -0
  124. data/test/dummy/tmp/cache/assets/C9F/9B0/sprockets%2Faeb280e1126521372c0bd6660e22969b +0 -0
  125. data/test/dummy/tmp/cache/assets/CA0/9A0/sprockets%2Fc1e9542f7960491862764447bf6d7f9e +0 -0
  126. data/test/dummy/tmp/cache/assets/CA1/C10/sprockets%2F804602800eb2e183aa91825b5f881b0d +0 -0
  127. data/test/dummy/tmp/cache/assets/CA6/DD0/sprockets%2F8b2532b8158e7333d5392bb505ca512f +0 -0
  128. data/test/dummy/tmp/cache/assets/CA8/4C0/sprockets%2Fbe667b320658d0297c210cb43c77b760 +0 -0
  129. data/test/dummy/tmp/cache/assets/CA9/340/sprockets%2Fd3c10509ea49a62e909622f77f4b3220 +0 -0
  130. data/test/dummy/tmp/cache/assets/CA9/430/sprockets%2F68e71052d60ebac0303e9e883c541265 +0 -0
  131. data/test/dummy/tmp/cache/assets/CAB/380/sprockets%2Fc2d6119b9334706b0b40e54f93f431f7 +0 -0
  132. data/test/dummy/tmp/cache/assets/CAC/820/sprockets%2F6b14c16171e49a1128966926eade622b +0 -0
  133. data/test/dummy/tmp/cache/assets/CB2/A60/sprockets%2F5583541ee042c37a846d149d80c8a36d +0 -0
  134. data/test/dummy/tmp/cache/assets/CB2/F30/sprockets%2Fcd4160d432937934435655ca7c56c5fa +0 -0
  135. data/test/dummy/tmp/cache/assets/CB3/280/sprockets%2F7e73589c2b0009c3748f7a068242cc7a +0 -0
  136. data/test/dummy/tmp/cache/assets/CB4/A90/sprockets%2F8fa8411bd1707443dcf02695b9a80776 +0 -0
  137. data/test/dummy/tmp/cache/assets/CB4/F10/sprockets%2F06ee620db145798202a9fd4c1849944b +0 -0
  138. data/test/dummy/tmp/cache/assets/CB8/3B0/sprockets%2Fd03836e3d10fb91125597086f6dcc848 +0 -0
  139. data/test/dummy/tmp/cache/assets/CB9/280/sprockets%2F0e4025fc9a78a70774353617a9b7e96a +0 -0
  140. data/test/dummy/tmp/cache/assets/CBB/3F0/sprockets%2F410c0a86475946a391fc849c9c34e5e4 +0 -0
  141. data/test/dummy/tmp/cache/assets/CBE/B60/sprockets%2F872738245c2698dd11952e55f1d2cd5f +0 -0
  142. data/test/dummy/tmp/cache/assets/CC2/090/sprockets%2F1f4c818e07baa8b05de5987748339952 +0 -0
  143. data/test/dummy/tmp/cache/assets/CC3/D90/sprockets%2Fd7e90e060a9924b61d0b2c6d102c0024 +0 -0
  144. data/test/dummy/tmp/cache/assets/CC8/310/sprockets%2F3d942c768ca693e08155d8a9b2195e99 +0 -0
  145. data/test/dummy/tmp/cache/assets/CC8/9F0/sprockets%2Fbc7ef55837e5097405e3f5097fe35961 +0 -0
  146. data/test/dummy/tmp/cache/assets/CC8/A80/sprockets%2F887a36c292044706f9d58ee02f659eb9 +0 -0
  147. data/test/dummy/tmp/cache/assets/CC8/E20/sprockets%2F27297a29159534cf493ff55576c9faa5 +0 -0
  148. data/test/dummy/tmp/cache/assets/CCD/040/sprockets%2Faf449bc1503080d6262424c20bb97b6d +0 -0
  149. data/test/dummy/tmp/cache/assets/CCD/210/sprockets%2F33c821e4b3b2538af0c79006df1318d0 +0 -0
  150. data/test/dummy/tmp/cache/assets/CCD/8B0/sprockets%2F738651415c65eb022af5ec9230a6b2b1 +0 -0
  151. data/test/dummy/tmp/cache/assets/CCF/180/sprockets%2F39ad17e27f30e3d0080675315bdae602 +0 -0
  152. data/test/dummy/tmp/cache/assets/CD0/CB0/sprockets%2F139767c003a27a8b5da08fc3714c072b +0 -0
  153. data/test/dummy/tmp/cache/assets/CD2/6E0/sprockets%2F161543077a1e9c52a2d577bbc3d41e62 +0 -0
  154. data/test/dummy/tmp/cache/assets/CD3/5A0/sprockets%2F3b02ea5d52854a16dea8336c339c5090 +0 -0
  155. data/test/dummy/tmp/cache/assets/CD5/9F0/sprockets%2F72d2b1b535d37251fb45c4754d62e2a6 +0 -0
  156. data/test/dummy/tmp/cache/assets/CDA/170/sprockets%2Ffae3735873d2d340da1827ee6246500e +0 -0
  157. data/test/dummy/tmp/cache/assets/CDA/C40/sprockets%2F1d06e02833dd2620777ee9818ec61bb0 +0 -0
  158. data/test/dummy/tmp/cache/assets/CDC/080/sprockets%2Fb33c033c645ff28315cc958538cd5b13 +0 -0
  159. data/test/dummy/tmp/cache/assets/CDC/990/sprockets%2F913dd1f104b8b71495b00d798c2922de +0 -0
  160. data/test/dummy/tmp/cache/assets/CDD/090/sprockets%2F62a239aa6b1847f0cd82f6e5b7187303 +0 -0
  161. data/test/dummy/tmp/cache/assets/CDF/E30/sprockets%2F27d4b1eb52518a0667aef8525455b57c +0 -0
  162. data/test/dummy/tmp/cache/assets/CE6/E20/sprockets%2F0c20945489c7228a66bb54fd7cc449f0 +0 -0
  163. data/test/dummy/tmp/cache/assets/CE8/F00/sprockets%2Fd5833932a705129ff7ce6072ee0fb945 +0 -0
  164. data/test/dummy/tmp/cache/assets/CE9/C20/sprockets%2F5c49d701727e703847268f9fffdba020 +0 -0
  165. data/test/dummy/tmp/cache/assets/CED/610/sprockets%2F678ef9639f922616c1ced8f3b1b12931 +0 -0
  166. data/test/dummy/tmp/cache/assets/CEE/300/sprockets%2Fc27f86c561d6e1e8c08d5f852857b025 +0 -0
  167. data/test/dummy/tmp/cache/assets/CEF/B50/sprockets%2F877a93d34cbc7b4cf1837a56398f0185 +0 -0
  168. data/test/dummy/tmp/cache/assets/CF2/6B0/sprockets%2F8c7e5aab44b8703a6379569d887145be +0 -0
  169. data/test/dummy/tmp/cache/assets/CF3/2A0/sprockets%2Fcf7fca385a816577b9a3a8583117696d +0 -0
  170. data/test/dummy/tmp/cache/assets/CF5/5E0/sprockets%2Fdaf7891f7f08019202f8576899bb51ce +0 -0
  171. data/test/dummy/tmp/cache/assets/CF5/F60/sprockets%2Fbf00d9de7199bf7775c55128a295b677 +0 -0
  172. data/test/dummy/tmp/cache/assets/CF6/F60/sprockets%2Fc8e90a0ee2521916c1aa1a41b6463a63 +0 -0
  173. data/test/dummy/tmp/cache/assets/CF8/AB0/sprockets%2F7755643d4dc601cdf47e9886b4f379a5 +0 -0
  174. data/test/dummy/tmp/cache/assets/CF8/FA0/sprockets%2F853bda27091dea80f5121d20a08b53a7 +0 -0
  175. data/test/dummy/tmp/cache/assets/CFC/970/sprockets%2Fbe27af53c78bc90a6113a41620a448e1 +0 -0
  176. data/test/dummy/tmp/cache/assets/D01/160/sprockets%2Fa74c8a20e3158be3fb170499a11093db +0 -0
  177. data/test/dummy/tmp/cache/assets/D01/4A0/sprockets%2F9e53138a5fa453940a6190c1ba3ac36e +0 -0
  178. data/test/dummy/tmp/cache/assets/D09/360/sprockets%2Fe5d09aa6884c385437dbb18ca301e353 +0 -0
  179. data/test/dummy/tmp/cache/assets/D0D/990/sprockets%2F9cbe1835abd85d521b876411a56cb672 +0 -0
  180. data/test/dummy/tmp/cache/assets/D0E/610/sprockets%2F3e14d0cbb1493615f7d23438bf8fd068 +0 -0
  181. data/test/dummy/tmp/cache/assets/D0F/870/sprockets%2F7597efb306ce615354e507d02edd14d4 +0 -0
  182. data/test/dummy/tmp/cache/assets/D10/590/sprockets%2F80386d276f6569b0a12ae1be155f9b3e +0 -0
  183. data/test/dummy/tmp/cache/assets/D11/060/sprockets%2F6d0bee24e84229bd6014301c878ff6d6 +0 -0
  184. data/test/dummy/tmp/cache/assets/D11/6A0/sprockets%2Ff21a9f2e8f4075086e68cda0059b25e2 +0 -0
  185. data/test/dummy/tmp/cache/assets/D11/A30/sprockets%2F210c5ab2fecdef47005c7308685e9297 +0 -0
  186. data/test/dummy/tmp/cache/assets/D12/460/sprockets%2F9c0db7ab725c7c7b15d2450657fe2369 +0 -0
  187. data/test/dummy/tmp/cache/assets/D12/760/sprockets%2F03c39aaab0669a6e9670a29f048db686 +0 -0
  188. data/test/dummy/tmp/cache/assets/D12/A90/sprockets%2F5f4bf0f279ca050491c07688df6d7c02 +0 -0
  189. data/test/dummy/tmp/cache/assets/D14/020/sprockets%2F0c3544de7e7bd74ee6e2040477f04a88 +0 -0
  190. data/test/dummy/tmp/cache/assets/D15/9B0/sprockets%2F015d78bcd557b68b039a7abd33b47679 +0 -0
  191. data/test/dummy/tmp/cache/assets/D19/B40/sprockets%2F1f58b7a260a18bcc697883f96e266a1b +0 -0
  192. data/test/dummy/tmp/cache/assets/D1A/520/sprockets%2Fe32e6a17fb333c5883939fcb234d2f69 +0 -0
  193. data/test/dummy/tmp/cache/assets/D1C/6B0/sprockets%2F3c7df42c4a83942ffb31d85d827595b4 +0 -0
  194. data/test/dummy/tmp/cache/assets/D1C/BD0/sprockets%2Ff389718cb2ba6fe3e0e0c420398f9486 +0 -0
  195. data/test/dummy/tmp/cache/assets/D21/E90/sprockets%2F2fe752c3566ccd57f7ee339086fc3427 +0 -0
  196. data/test/dummy/tmp/cache/assets/D23/CD0/sprockets%2F20f79a5d5570f3efef4de79621355e49 +0 -0
  197. data/test/dummy/tmp/cache/assets/D23/D30/sprockets%2F71867caa2cf28987ed0048cf7d3a7569 +0 -0
  198. data/test/dummy/tmp/cache/assets/D24/EF0/sprockets%2F776d054d84f539061bd8ddffa66906c8 +0 -0
  199. data/test/dummy/tmp/cache/assets/D25/4D0/sprockets%2Fde6d162f5e2a587d9564e88d90c773a3 +0 -0
  200. data/test/dummy/tmp/cache/assets/D27/A90/sprockets%2F1a25693899836d58cad4cbfe8c7a7707 +0 -0
  201. data/test/dummy/tmp/cache/assets/D2D/F30/sprockets%2Fc75a2beb051b582840cf3800d55b26dc +0 -0
  202. data/test/dummy/tmp/cache/assets/D2D/F80/sprockets%2F0293aae3c8d8a4fda11a0883c48b5222 +0 -0
  203. data/test/dummy/tmp/cache/assets/D2E/600/sprockets%2Fda9f7539b9df0aa7d763d14999870d94 +0 -0
  204. data/test/dummy/tmp/cache/assets/D33/040/sprockets%2F6593d8c52e0b617a12ae2c49aa6e3b07 +0 -0
  205. data/test/dummy/tmp/cache/assets/D34/7A0/sprockets%2F4b4a0c9775248b2e49c1bae8a72a05c3 +0 -0
  206. data/test/dummy/tmp/cache/assets/D36/770/sprockets%2F2942b9a5caa50e9107de74eca152619c +0 -0
  207. data/test/dummy/tmp/cache/assets/D37/9C0/sprockets%2Fdfa99409821a9d0d1d6f30b5461b1ae5 +0 -0
  208. data/test/dummy/tmp/cache/assets/D38/930/sprockets%2F1dd724d3466a12a84bb248dc7e6d06c6 +0 -0
  209. data/test/dummy/tmp/cache/assets/D39/7E0/sprockets%2F0a236c2722565068da14f7ecf7b7a8da +0 -0
  210. data/test/dummy/tmp/cache/assets/D3A/420/sprockets%2Fbd47498d7cbba00ab9c8201883915f2a +0 -0
  211. data/test/dummy/tmp/cache/assets/D3B/BB0/sprockets%2Ff533a1adca88a3594ec94233f71eb812 +0 -0
  212. data/test/dummy/tmp/cache/assets/D3B/E20/sprockets%2Fd20320e720f8dc2779b4ec627eb15fb6 +0 -0
  213. data/test/dummy/tmp/cache/assets/D3D/080/sprockets%2F007ac06f3c784668b28baba6902eec76 +0 -0
  214. data/test/dummy/tmp/cache/assets/D3D/D30/sprockets%2F5fa8cd221b97c829234dc81721eea60e +0 -0
  215. data/test/dummy/tmp/cache/assets/D3E/1F0/sprockets%2F6e84e3f3e420bd5ad7f336ce41750d36 +0 -0
  216. data/test/dummy/tmp/cache/assets/D3F/960/sprockets%2F237931317e014eabd96932637ffadddc +0 -0
  217. data/test/dummy/tmp/cache/assets/D42/460/sprockets%2Fb195b37929fa63c85fbfb573aa05d209 +0 -0
  218. data/test/dummy/tmp/cache/assets/D42/F90/sprockets%2F632555653af85b04e418abb9dee238cf +0 -0
  219. data/test/dummy/tmp/cache/assets/D44/400/sprockets%2F3cdc153bbcae4ac07e75193678d61996 +0 -0
  220. data/test/dummy/tmp/cache/assets/D46/D10/sprockets%2F3399d1c2c5dbc7c9e0f2106296d82fd7 +0 -0
  221. data/test/dummy/tmp/cache/assets/D47/A70/sprockets%2F526b1eb3f0c2369b0c16c96ddf775f96 +0 -0
  222. data/test/dummy/tmp/cache/assets/D48/180/sprockets%2Ffce9aa3720b73d2259e644a2e3a99c89 +0 -0
  223. data/test/dummy/tmp/cache/assets/D48/6F0/sprockets%2F7a67d797a92f48d3104ecf5e42b5bc71 +0 -0
  224. data/test/dummy/tmp/cache/assets/D4A/7B0/sprockets%2F8cbd4e8cdea7e3e486565d92b2271561 +0 -0
  225. data/test/dummy/tmp/cache/assets/D4C/2C0/sprockets%2F096baecb9254aaa68d12c0a3c34a2121 +0 -0
  226. data/test/dummy/tmp/cache/assets/D4E/440/sprockets%2F141dfe7665828ab1d5ee647d0e797e5a +0 -0
  227. data/test/dummy/tmp/cache/assets/D4F/D90/sprockets%2F1e4fde9a33bb918796edc96eb0805564 +0 -0
  228. data/test/dummy/tmp/cache/assets/D50/390/sprockets%2F04f3299f7c28fa65842d4bda257df9d5 +0 -0
  229. data/test/dummy/tmp/cache/assets/D51/330/sprockets%2F0e113bb1dc7050041be6f8d28c4ebb41 +0 -0
  230. data/test/dummy/tmp/cache/assets/D57/370/sprockets%2F102e7ebfa287ea2e1b58052b052c1ee2 +0 -0
  231. data/test/dummy/tmp/cache/assets/D57/C50/sprockets%2F28a22bacabfe4b780402b3ca83a54843 +0 -0
  232. data/test/dummy/tmp/cache/assets/D57/D00/sprockets%2Fbb9c7666fe4175a054557fff4ccf5983 +0 -0
  233. data/test/dummy/tmp/cache/assets/D59/E30/sprockets%2Fa8a09c836fc128ee889ce97d72e6444c +0 -0
  234. data/test/dummy/tmp/cache/assets/D5C/800/sprockets%2Fdd1b21cea3433ac792403e3de4f84f11 +0 -0
  235. data/test/dummy/tmp/cache/assets/D5D/140/sprockets%2Ffca988958f2a37ce8eb6b77337e793c0 +0 -0
  236. data/test/dummy/tmp/cache/assets/D5F/630/sprockets%2Ff2df01200f9420db5285f15bbdf4e34e +0 -0
  237. data/test/dummy/tmp/cache/assets/D61/420/sprockets%2F79102ecb63d32f0f43e46f481acab0c7 +0 -0
  238. data/test/dummy/tmp/cache/assets/D61/B10/sprockets%2F56a7f22ca114fc32e60a2ca8e5c946e1 +0 -0
  239. data/test/dummy/tmp/cache/assets/D61/C00/sprockets%2F71ad51ea200867d43de03b8b25eb3e6f +0 -0
  240. data/test/dummy/tmp/cache/assets/D63/400/sprockets%2F30721d1c6698a64ac1cdc7e8d3ad37a0 +0 -0
  241. data/test/dummy/tmp/cache/assets/D65/3D0/sprockets%2Fc70f23593414be8a0daf25149ecb06fd +0 -0
  242. data/test/dummy/tmp/cache/assets/D68/020/sprockets%2Fc393ddcb5c7dbaf1665bc90491523d23 +0 -0
  243. data/test/dummy/tmp/cache/assets/D68/9F0/sprockets%2F0a2eac996cb10aab983963ec21c9d166 +0 -0
  244. data/test/dummy/tmp/cache/assets/D68/FA0/sprockets%2F315d926695d2ababc102ded8362e7c7b +0 -0
  245. data/test/dummy/tmp/cache/assets/D69/810/sprockets%2F8a4fedc6fc72ca37c7403924c01b374d +0 -0
  246. data/test/dummy/tmp/cache/assets/D6A/400/sprockets%2F7797a681a0c8c541bad4febaa526920e +0 -0
  247. data/test/dummy/tmp/cache/assets/D6A/800/sprockets%2F9e3ba44ae81df1dc8c541a05e0239c79 +0 -0
  248. data/test/dummy/tmp/cache/assets/D6B/890/sprockets%2Fdacdb6e192b1709870319bbb0feb3669 +0 -0
  249. data/test/dummy/tmp/cache/assets/D6D/DD0/sprockets%2Ffbfa79e06a10e3016c741fff74c5e652 +0 -0
  250. data/test/dummy/tmp/cache/assets/D6E/540/sprockets%2F1ec9a9013efe375e03b9ba538af9b515 +0 -0
  251. data/test/dummy/tmp/cache/assets/D70/D70/sprockets%2Fd7f6a9d69e31ff706e22c0b283b6a1e4 +0 -0
  252. data/test/dummy/tmp/cache/assets/D70/F70/sprockets%2Ff296c418125b7be0bc89c34eec50e82d +0 -0
  253. data/test/dummy/tmp/cache/assets/D71/6E0/sprockets%2F8c3e23061d8826cf63999adbe4a0d5ba +0 -0
  254. data/test/dummy/tmp/cache/assets/D73/3D0/sprockets%2Fbad4cc5e382119c131bd5947dd7c96e7 +0 -0
  255. data/test/dummy/tmp/cache/assets/D74/9D0/sprockets%2F1893ad2efa07114b729fd1f09ae97f4e +0 -0
  256. data/test/dummy/tmp/cache/assets/D74/EE0/sprockets%2Fe68a01853f554a88bb865bc94ba1bbd9 +0 -0
  257. data/test/dummy/tmp/cache/assets/D75/900/sprockets%2F857ad23ff231bc76bec12fd9a966538a +0 -0
  258. data/test/dummy/tmp/cache/assets/D76/060/sprockets%2Fd80d293a509fdecc872163f94b8fcc13 +0 -0
  259. data/test/dummy/tmp/cache/assets/D76/350/sprockets%2F66508d9698453a0ffabcf1368ca7a1fc +0 -0
  260. data/test/dummy/tmp/cache/assets/D79/820/sprockets%2F99bcacecd3fb76124a968b4b8341e729 +0 -0
  261. data/test/dummy/tmp/cache/assets/D7E/130/sprockets%2F1affef8c994fdc43ba85491b2724627f +0 -0
  262. data/test/dummy/tmp/cache/assets/D7E/C00/sprockets%2F8ed69e6fd77505a244caf6dde36822e3 +0 -0
  263. data/test/dummy/tmp/cache/assets/D80/7A0/sprockets%2F68e74ee988b46d128ff3020bc0e9c7fd +0 -0
  264. data/test/dummy/tmp/cache/assets/D82/800/sprockets%2F9f0d326f40e88f324ff3a367d9b3fc9f +0 -0
  265. data/test/dummy/tmp/cache/assets/D84/650/sprockets%2Fea05e644410721afbbd8fd1a3a7a1c08 +0 -0
  266. data/test/dummy/tmp/cache/assets/D89/3A0/sprockets%2F53ef2870ac0bb142a8322eee9adca207 +0 -0
  267. data/test/dummy/tmp/cache/assets/D8B/240/sprockets%2Faddf06da0d70aa150d16b97b6816d0d6 +0 -0
  268. data/test/dummy/tmp/cache/assets/D8B/3B0/sprockets%2Fd0c134b0b275ea2f800380fcaebc95f5 +0 -0
  269. data/test/dummy/tmp/cache/assets/D8D/F70/sprockets%2F70d5fc5c803f7ba21c3a7374003bfcdd +0 -0
  270. data/test/dummy/tmp/cache/assets/D8F/B90/sprockets%2F5468bccabc20d4cf562bd110508df3d8 +0 -0
  271. data/test/dummy/tmp/cache/assets/D92/3B0/sprockets%2Fc03a95a4b2eb432d9f5ceda3fb082860 +0 -0
  272. data/test/dummy/tmp/cache/assets/D93/FE0/sprockets%2Fac1c5a644564a7fd2861539dbaf2a0fb +0 -0
  273. data/test/dummy/tmp/cache/assets/D95/500/sprockets%2Fa3c0fdf5260f72d128f7cbb2a64fd408 +0 -0
  274. data/test/dummy/tmp/cache/assets/D97/2E0/sprockets%2F93c35b873a3c8ea35f1628e1ad2deb2b +0 -0
  275. data/test/dummy/tmp/cache/assets/D97/4A0/sprockets%2F2fae66f8ad04be7ce8109005c735acf1 +0 -0
  276. data/test/dummy/tmp/cache/assets/D98/E90/sprockets%2F04cdcb52b072efd49452f2cde9721fb4 +0 -0
  277. data/test/dummy/tmp/cache/assets/D9C/E90/sprockets%2F7d2da4bd8ee5b4ff754581d41806aba2 +0 -0
  278. data/test/dummy/tmp/cache/assets/DA0/2C0/sprockets%2F61c0dfd9a973f9891cd3d6b322bc33ea +0 -0
  279. data/test/dummy/tmp/cache/assets/DA0/C70/sprockets%2Ff29a718bce262c8d86f3abe9443b41cb +0 -0
  280. data/test/dummy/tmp/cache/assets/DA3/A00/sprockets%2F7e7df285dbb4694a5f1583fba12ab84d +0 -0
  281. data/test/dummy/tmp/cache/assets/DA3/EC0/sprockets%2F159d528ec53e415cbc9d29be3a2b96fb +0 -0
  282. data/test/dummy/tmp/cache/assets/DA5/170/sprockets%2F6a564a0e1afd718a07d87f069bc48dff +0 -0
  283. data/test/dummy/tmp/cache/assets/DA6/730/sprockets%2F5758d9d4ad2c22c9ffd113a78f6d36bb +0 -0
  284. data/test/dummy/tmp/cache/assets/DA7/6F0/sprockets%2F3e39ce593cda9b3bce9c3c8e014829b5 +0 -0
  285. data/test/dummy/tmp/cache/assets/DA9/0B0/sprockets%2F66e39ce1e6e7adc58cb01550fe58c93d +0 -0
  286. data/test/dummy/tmp/cache/assets/DAD/9D0/sprockets%2Fc99ec7c84f8f79200eda8424c6bda6e1 +0 -0
  287. data/test/dummy/tmp/cache/assets/DAE/B70/sprockets%2F278f525bc64f4ead949d9dfa1f1a37c8 +0 -0
  288. data/test/dummy/tmp/cache/assets/DB3/740/sprockets%2F3fc2be88f7fa50a9992fe961ffc50a83 +0 -0
  289. data/test/dummy/tmp/cache/assets/DB3/770/sprockets%2F47998ff4ce9a2b5383b95bd54ded3c3d +0 -0
  290. data/test/dummy/tmp/cache/assets/DB6/6C0/sprockets%2Fe710d8fbf4ca41d29a742b22a21a0fec +0 -0
  291. data/test/dummy/tmp/cache/assets/DBC/330/sprockets%2Ffc79d797d11878bc435b668cdfbc94cf +0 -0
  292. data/test/dummy/tmp/cache/assets/DBF/270/sprockets%2F820ebc60d1be685f4044d1cb8cabdd17 +0 -0
  293. data/test/dummy/tmp/cache/assets/DBF/E80/sprockets%2F41d82531e91fc1ca0c806beacf0cfc84 +0 -0
  294. data/test/dummy/tmp/cache/assets/DC1/E40/sprockets%2F57aebd4c69abf9331b4770bd3ced100d +0 -0
  295. data/test/dummy/tmp/cache/assets/DC1/FD0/sprockets%2Ff97fb61e211912bbc1eaed82c4ad740c +0 -0
  296. data/test/dummy/tmp/cache/assets/DC2/250/sprockets%2Ffddac1268ff054c12ea32cc6619c46ac +0 -0
  297. data/test/dummy/tmp/cache/assets/DC2/5F0/sprockets%2F68dc2f8cab31bbd8ab65220c685eb15b +0 -0
  298. data/test/dummy/tmp/cache/assets/DC3/7C0/sprockets%2Fa78b7c0aa57b250e05d5ad1e56ac9ed5 +0 -0
  299. data/test/dummy/tmp/cache/assets/DC9/330/sprockets%2Fc5fe138ffe1adb009a407c172fcb9b49 +0 -0
  300. data/test/dummy/tmp/cache/assets/DCC/F10/sprockets%2F4fb860d9bb2c56165fae6ecc193bd1f2 +0 -0
  301. data/test/dummy/tmp/cache/assets/DCE/0E0/sprockets%2Fc1845aeaffa0d9c887108b5cf1a77dc2 +0 -0
  302. data/test/dummy/tmp/cache/assets/DCE/920/sprockets%2F5208ac969dfa6f4dd531ef2d2afb454b +0 -0
  303. data/test/dummy/tmp/cache/assets/DCE/950/sprockets%2F2d0d1caef1b638f88de704d1eb07be88 +0 -0
  304. data/test/dummy/tmp/cache/assets/DCE/9C0/sprockets%2Fc6b7fd0b623a5b66692ed21dafe5ee18 +0 -0
  305. data/test/dummy/tmp/cache/assets/DD2/190/sprockets%2F3662cdc2f2f551c51ec9bddb9177deb7 +0 -0
  306. data/test/dummy/tmp/cache/assets/DD2/C80/sprockets%2Fe94b85ec5d4eeb0616972dd03cadf06f +0 -0
  307. data/test/dummy/tmp/cache/assets/DD3/B30/sprockets%2Ff1eab781d903ebdf7d9379cca92533ba +0 -0
  308. data/test/dummy/tmp/cache/assets/DD5/8F0/sprockets%2F4bfcc6fffb235da87a162efc721985e2 +0 -0
  309. data/test/dummy/tmp/cache/assets/DD6/8B0/sprockets%2F8ab6728b7ab04dbec482fe5fb7ef8604 +0 -0
  310. data/test/dummy/tmp/cache/assets/DD6/E50/sprockets%2F1ce8c04cfee001955cf5fd9ed7d59a52 +0 -0
  311. data/test/dummy/tmp/cache/assets/DD9/D30/sprockets%2F9abfa5c86dbf28fd7be89b650c3d5225 +0 -0
  312. data/test/dummy/tmp/cache/assets/DE7/E30/sprockets%2F18bca0215ecdc63ba01a2ee5cd7c34f8 +0 -0
  313. data/test/dummy/tmp/cache/assets/DE8/C20/sprockets%2Fc91409dc1b447ba1beaa0be9b33ef14d +0 -0
  314. data/test/dummy/tmp/cache/assets/DED/270/sprockets%2Fdee70d8becb01a00e2d7420c6a646dff +0 -0
  315. data/test/dummy/tmp/cache/assets/DF4/2D0/sprockets%2Ffd83bba93ef8ca1a70c63ee4b625a6b0 +0 -0
  316. data/test/dummy/tmp/cache/assets/DF8/E50/sprockets%2Fbb1bdc05e895b8c08cb6ca4491ed51cf +0 -0
  317. data/test/dummy/tmp/cache/assets/DFB/EC0/sprockets%2F94ccf06d9a630eaa4a9865d7e74aaaba +0 -0
  318. data/test/dummy/tmp/cache/assets/DFC/FC0/sprockets%2Fd8badee5b41f9328df1d3fe153eef401 +0 -0
  319. data/test/dummy/tmp/cache/assets/DFD/F30/sprockets%2Fd60da4793bab6bff313a6bfc25985dfb +0 -0
  320. data/test/dummy/tmp/cache/assets/DFE/230/sprockets%2Fd260ce7fb8bf41f914b57c0dde9b0af6 +0 -0
  321. data/test/dummy/tmp/cache/assets/DFE/2E0/sprockets%2F813f277df6cd78babbdb7f5c34f3ab05 +0 -0
  322. data/test/dummy/tmp/cache/assets/DFE/E50/sprockets%2F59b3e0cbbf99e92737aab0bcfc205f5f +0 -0
  323. data/test/dummy/tmp/cache/assets/DFF/9F0/sprockets%2Fb4677ae08ff6f9edaf3b2bcbb115a963 +0 -0
  324. data/test/dummy/tmp/cache/assets/E05/480/sprockets%2F789f3eb9b0ee9d3fb684066acaebd4a1 +0 -0
  325. data/test/dummy/tmp/cache/assets/E08/8A0/sprockets%2F3cb6916a9933fdfd43d6defe3e4a6d1d +0 -0
  326. data/test/dummy/tmp/cache/assets/E09/A00/sprockets%2F77913b88dec083cedb3875beae2efd5a +0 -0
  327. data/test/dummy/tmp/cache/assets/E16/E60/sprockets%2Ffe5e3c5af908e8cc7ff70976fdc14db7 +0 -0
  328. data/test/dummy/tmp/cache/assets/E28/B70/sprockets%2Fb2fa75ae01dda6654abd60c78c8bf5cf +0 -0
  329. data/test/dummy/tmp/cache/assets/E30/8A0/sprockets%2F5d3fccefabad47a78655a5c92adb3c76 +0 -0
  330. data/test/dummy/tmp/cache/assets/E36/9F0/sprockets%2Fb2bdf95afd8ecf06ce9b8407a2f9b1b8 +0 -0
  331. data/test/dummy/tmp/cache/assets/E3E/C60/sprockets%2F8b3bfb5dbc23d849d4f2fc6dd7fe45d9 +0 -0
  332. data/test/dummy/tmp/cache/assets/E3F/B10/sprockets%2F7b1af74e67b27fff762f3cdfebe5f4a7 +0 -0
  333. data/test/dummy/tmp/cache/assets/E50/740/sprockets%2F0578ebbffb5c27d00cc86b1dd7b1eada +0 -0
  334. data/test/dummy/tmp/cache/assets/E50/9F0/sprockets%2Fddfa62aba6a56ed6ab5e44ae36b175ad +0 -0
  335. data/test/dummy/tmp/cache/assets/E5D/160/sprockets%2F44a9be8a9b567fceec2bdc4ab074bbb9 +0 -0
  336. data/test/dummy/tmp/cache/assets/E61/FB0/sprockets%2F97c2b65cafddc7ac59ae4a5e2a18afe8 +0 -0
  337. data/test/dummy/tmp/cache/assets/E73/680/sprockets%2F1a4d0b08b6fdbacbfe0d1cb7df5db251 +0 -0
  338. data/test/dummy/tmp/cache/assets/ED1/C10/sprockets%2Fa9a13ad3bb3a6ccbb6faac3fac0b6c8e +0 -0
  339. data/test/dummy/tmp/cache/assets/EF0/E30/sprockets%2F3ac422b66adec6cffa8edecf9bdea48d +0 -0
  340. data/test/dummy/tmp/pids/server.pid +1 -1
  341. metadata +33 -15
  342. data/app/assets/javascripts/Core/AnimationController.js +0 -148
  343. data/app/assets/javascripts/Scene/ImageryProviderError.js +0 -149
  344. data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.css +0 -1
  345. data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.js +0 -47
  346. data/app/assets/javascripts/Widgets/Images/Bing_Logo_51x19_White.png +0 -0
  347. data/app/assets/javascripts/Widgets/Images/animationBar.png +0 -0
  348. data/app/assets/javascripts/Workers/createVerticesFromExtent.js +0 -24
@@ -5,23 +5,30 @@ define(function() {
5
5
  return "uniform sampler2D image;\n\
6
6
  uniform float strength;\n\
7
7
  uniform vec2 repeat;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- vec2 st = materialInput.st;\n\
12
- vec2 centerPixel = fract(repeat * st);\n\
13
- float centerBump = texture2D(image, centerPixel).channel;\n\
14
- float imageWidth = float(imageDimensions.x);\n\
15
- vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0)));\n\
16
- float rightBump = texture2D(image, rightPixel).channel;\n\
17
- float imageHeight = float(imageDimensions.y);\n\
18
- vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight)));\n\
19
- float topBump = texture2D(image, leftPixel).channel;\n\
20
- vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0)));\n\
21
- vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;\n\
22
- material.normal = normalEC;\n\
23
- material.diffuse = vec3(0.01);\n\
24
- return material;\n\
25
- }\n\
26
- ";
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ vec2 st = materialInput.st;\n\
14
+ \n\
15
+ vec2 centerPixel = fract(repeat * st);\n\
16
+ float centerBump = texture2D(image, centerPixel).channel;\n\
17
+ \n\
18
+ float imageWidth = float(imageDimensions.x);\n\
19
+ vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0)));\n\
20
+ float rightBump = texture2D(image, rightPixel).channel;\n\
21
+ \n\
22
+ float imageHeight = float(imageDimensions.y);\n\
23
+ vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight)));\n\
24
+ float topBump = texture2D(image, leftPixel).channel;\n\
25
+ \n\
26
+ vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0)));\n\
27
+ vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;\n\
28
+ \n\
29
+ material.normal = normalEC;\n\
30
+ material.diffuse = vec3(0.01);\n\
31
+ \n\
32
+ return material;\n\
33
+ }";
27
34
  });
@@ -5,16 +5,20 @@ define(function() {
5
5
  return "uniform vec4 cementColor;\n\
6
6
  uniform float grainScale;\n\
7
7
  uniform float roughness;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- float noise = czm_snoise(materialInput.st / grainScale);\n\
12
- noise = pow(noise, 5.0) * roughness;\n\
13
- vec4 color = cementColor;\n\
14
- color.rgb += noise;\n\
15
- material.diffuse = color.rgb;\n\
16
- material.alpha = color.a;\n\
17
- return material;\n\
18
- }\n\
19
- ";
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ float noise = czm_snoise(materialInput.st / grainScale);\n\
14
+ noise = pow(noise, 5.0) * roughness;\n\
15
+ \n\
16
+ vec4 color = cementColor;\n\
17
+ color.rgb += noise;\n\
18
+ \n\
19
+ material.diffuse = color.rgb;\n\
20
+ material.alpha = color.a;\n\
21
+ \n\
22
+ return material;\n\
23
+ }";
20
24
  });
@@ -5,28 +5,40 @@ define(function() {
5
5
  return "uniform vec4 lightColor;\n\
6
6
  uniform vec4 darkColor;\n\
7
7
  uniform vec2 repeat;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- vec2 st = materialInput.st;\n\
12
- const float fuzz = 0.03;\n\
13
- float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0);\n\
14
- float scaledWidth = fract(repeat.s * st.s);\n\
15
- scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));\n\
16
- float scaledHeight = fract(repeat.t * st.t);\n\
17
- scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));\n\
18
- float value = min(scaledWidth, scaledHeight);\n\
19
- float val1 = clamp(value / fuzz, 0.0, 1.0);\n\
20
- float val2 = clamp((value - 0.5) / fuzz, 0.0, 1.0);\n\
21
- val1 = val1 * (1.0 - val2);\n\
22
- val1 = val1 * val1 * (3.0 - (2.0 * val1));\n\
23
- val1 = pow(val1, 0.5);\n\
24
- vec4 midColor = (lightColor + darkColor) / 2.0;\n\
25
- vec4 currentColor = mix(lightColor, darkColor, b);\n\
26
- vec4 color = mix(midColor, currentColor, val1);\n\
27
- material.diffuse = color.rgb;\n\
28
- material.alpha = color.a;\n\
29
- return material;\n\
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ // Fuzz Factor - Controls blurriness between light and dark colors\n\
14
+ vec2 st = materialInput.st;\n\
15
+ const float fuzz = 0.03;\n\
16
+ \n\
17
+ // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights\n\
18
+ float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0\n\
19
+ \n\
20
+ // Find the distance from the closest separator (region between two colors)\n\
21
+ float scaledWidth = fract(repeat.s * st.s);\n\
22
+ scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));\n\
23
+ float scaledHeight = fract(repeat.t * st.t);\n\
24
+ scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));\n\
25
+ float value = min(scaledWidth, scaledHeight);\n\
26
+ \n\
27
+ //anti-aliasing\n\
28
+ float val1 = clamp(value / fuzz, 0.0, 1.0);\n\
29
+ float val2 = clamp((value - 0.5) / fuzz, 0.0, 1.0);\n\
30
+ val1 = val1 * (1.0 - val2);\n\
31
+ val1 = val1 * val1 * (3.0 - (2.0 * val1));\n\
32
+ val1 = pow(val1, 0.5); //makes the transition nicer\n\
33
+ \n\
34
+ vec4 midColor = (lightColor + darkColor) / 2.0;\n\
35
+ vec4 currentColor = mix(lightColor, darkColor, b);\n\
36
+ \n\
37
+ vec4 color = mix(midColor, currentColor, val1);\n\
38
+ material.diffuse = color.rgb;\n\
39
+ material.alpha = color.a;\n\
40
+ \n\
41
+ return material;\n\
30
42
  }\n\
31
43
  ";
32
44
  });
@@ -5,14 +5,19 @@ define(function() {
5
5
  return "uniform vec4 lightColor;\n\
6
6
  uniform vec4 darkColor;\n\
7
7
  uniform vec2 repeat;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5));\n\
12
- vec4 color = mix(lightColor, darkColor, b);\n\
13
- material.diffuse = color.rgb;\n\
14
- material.alpha = color.a;\n\
15
- return material;\n\
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights\n\
14
+ float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0\n\
15
+ \n\
16
+ vec4 color = mix(lightColor, darkColor, b);\n\
17
+ material.diffuse = color.rgb;\n\
18
+ material.alpha = color.a;\n\
19
+ \n\
20
+ return material;\n\
16
21
  }\n\
17
22
  ";
18
23
  });
@@ -4,21 +4,26 @@ define(function() {
4
4
  "use strict";
5
5
  return "uniform vec4 color;\n\
6
6
  uniform float time;\n\
7
+ \n\
7
8
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
8
9
  {\n\
9
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
10
- float alpha = 1.0;\n\
11
- if (time != 1.0)\n\
12
- {\n\
13
- float t = 0.5 + (0.5 * czm_snoise(materialInput.str / (1.0 / 10.0)));\n\
14
- if (t > time)\n\
15
- {\n\
16
- alpha = 0.0;\n\
17
- }\n\
18
- }\n\
19
- material.diffuse = color.rgb;\n\
20
- material.alpha = color.a * alpha;\n\
21
- return material;\n\
10
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
+ \n\
12
+ float alpha = 1.0;\n\
13
+ if (time != 1.0)\n\
14
+ {\n\
15
+ float t = 0.5 + (0.5 * czm_snoise(materialInput.str / (1.0 / 10.0))); // Scale [-1, 1] to [0, 1]\n\
16
+ \n\
17
+ if (t > time)\n\
18
+ {\n\
19
+ alpha = 0.0;\n\
20
+ }\n\
21
+ }\n\
22
+ \n\
23
+ material.diffuse = color.rgb;\n\
24
+ material.alpha = color.a * alpha;\n\
25
+ \n\
26
+ return material;\n\
22
27
  }\n\
23
28
  ";
24
29
  });
@@ -5,15 +5,20 @@ define(function() {
5
5
  return "uniform vec4 lightColor;\n\
6
6
  uniform vec4 darkColor;\n\
7
7
  uniform float frequency;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- vec2 F = czm_cellular(materialInput.st * frequency);\n\
12
- float t = 0.1 + (F.y - F.x);\n\
13
- vec4 color = mix(lightColor, darkColor, t);\n\
14
- material.diffuse = color.rgb;\n\
15
- material.alpha = color.a;\n\
16
- return material;\n\
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights\n\
14
+ vec2 F = czm_cellular(materialInput.st * frequency);\n\
15
+ float t = 0.1 + (F.y - F.x);\n\
16
+ \n\
17
+ vec4 color = mix(lightColor, darkColor, t);\n\
18
+ material.diffuse = color.rgb;\n\
19
+ material.alpha = color.a;\n\
20
+ \n\
21
+ return material;\n\
17
22
  }\n\
18
23
  ";
19
24
  });
@@ -4,12 +4,15 @@ define(function() {
4
4
  "use strict";
5
5
  return "czm_material czm_getMaterial(czm_materialInput materialInput)\n\
6
6
  {\n\
7
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
8
- vec3 normalWC = normalize(czm_inverseViewRotation * material.normal);\n\
9
- vec3 positionWC = normalize(czm_inverseViewRotation * materialInput.positionToEyeEC);\n\
10
- float cosAngIncidence = max(dot(normalWC, positionWC), 0.0);\n\
11
- material.diffuse = mix(reflection.diffuse, refraction.diffuse, cosAngIncidence);\n\
12
- return material;\n\
7
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
8
+ \n\
9
+ vec3 normalWC = normalize(czm_inverseViewRotation * material.normal);\n\
10
+ vec3 positionWC = normalize(czm_inverseViewRotation * materialInput.positionToEyeEC);\n\
11
+ float cosAngIncidence = max(dot(normalWC, positionWC), 0.0);\n\
12
+ \n\
13
+ material.diffuse = mix(reflection.diffuse, refraction.diffuse, cosAngIncidence);\n\
14
+ \n\
15
+ return material;\n\
13
16
  }\n\
14
17
  ";
15
18
  });
@@ -5,22 +5,29 @@ define(function() {
5
5
  return "uniform vec4 grassColor;\n\
6
6
  uniform vec4 dirtColor;\n\
7
7
  uniform float patchiness;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- vec2 st = materialInput.st;\n\
12
- float noise1 = (czm_snoise(st * patchiness * 1.0)) * 1.0;\n\
13
- float noise2 = (czm_snoise(st * patchiness * 2.0)) * 0.5;\n\
14
- float noise3 = (czm_snoise(st * patchiness * 4.0)) * 0.25;\n\
15
- float noise = sin(noise1 + noise2 + noise3) * 0.1;\n\
16
- vec4 color = mix(grassColor, dirtColor, noise);\n\
17
- float verticalNoise = czm_snoise(vec2(st.x * 100.0, st.y * 20.0)) * 0.02;\n\
18
- float horizontalNoise = czm_snoise(vec2(st.x * 20.0, st.y * 100.0)) * 0.02;\n\
19
- float stripeNoise = min(verticalNoise, horizontalNoise);\n\
20
- color.rgb += stripeNoise;\n\
21
- material.diffuse = color.rgb;\n\
22
- material.alpha = color.a;\n\
23
- return material;\n\
24
- }\n\
25
- ";
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ vec2 st = materialInput.st;\n\
14
+ float noise1 = (czm_snoise(st * patchiness * 1.0)) * 1.0;\n\
15
+ float noise2 = (czm_snoise(st * patchiness * 2.0)) * 0.5;\n\
16
+ float noise3 = (czm_snoise(st * patchiness * 4.0)) * 0.25;\n\
17
+ float noise = sin(noise1 + noise2 + noise3) * 0.1;\n\
18
+ \n\
19
+ vec4 color = mix(grassColor, dirtColor, noise);\n\
20
+ \n\
21
+ //Make thatch patterns\n\
22
+ float verticalNoise = czm_snoise(vec2(st.x * 100.0, st.y * 20.0)) * 0.02;\n\
23
+ float horizontalNoise = czm_snoise(vec2(st.x * 20.0, st.y * 100.0)) * 0.02;\n\
24
+ float stripeNoise = min(verticalNoise, horizontalNoise);\n\
25
+ \n\
26
+ color.rgb += stripeNoise;\n\
27
+ \n\
28
+ material.diffuse = color.rgb;\n\
29
+ material.alpha = color.a;\n\
30
+ \n\
31
+ return material;\n\
32
+ }";
26
33
  });
@@ -5,17 +5,20 @@ define(function() {
5
5
  return "uniform sampler2D image;\n\
6
6
  uniform float strength;\n\
7
7
  uniform vec2 repeat;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- vec4 textureValue = texture2D(image, fract(repeat * materialInput.st));\n\
12
- vec3 normalTangentSpace = textureValue.channels;\n\
13
- normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0;\n\
14
- normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0);\n\
15
- normalTangentSpace = normalize(normalTangentSpace);\n\
16
- vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;\n\
17
- material.normal = normalEC;\n\
18
- return material;\n\
19
- }\n\
20
- ";
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ vec4 textureValue = texture2D(image, fract(repeat * materialInput.st));\n\
14
+ vec3 normalTangentSpace = textureValue.channels;\n\
15
+ normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0;\n\
16
+ normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0);\n\
17
+ normalTangentSpace = normalize(normalTangentSpace);\n\
18
+ vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;\n\
19
+ \n\
20
+ material.normal = normalEC;\n\
21
+ \n\
22
+ return material;\n\
23
+ }";
21
24
  });
@@ -3,14 +3,16 @@
3
3
  define(function() {
4
4
  "use strict";
5
5
  return "uniform samplerCube cubeMap;\n\
6
+ \n\
6
7
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
7
8
  {\n\
8
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
9
- vec3 normalWC = normalize(czm_inverseViewRotation * material.normal);\n\
10
- vec3 positionWC = normalize(czm_inverseViewRotation * materialInput.positionToEyeEC);\n\
11
- vec3 reflectedWC = reflect(positionWC, normalWC);\n\
12
- material.diffuse = textureCube(cubeMap, reflectedWC).channels;\n\
13
- return material;\n\
14
- }\n\
15
- ";
9
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
10
+ \n\
11
+ vec3 normalWC = normalize(czm_inverseViewRotation * material.normal);\n\
12
+ vec3 positionWC = normalize(czm_inverseViewRotation * materialInput.positionToEyeEC);\n\
13
+ vec3 reflectedWC = reflect(positionWC, normalWC);\n\
14
+ material.diffuse = textureCube(cubeMap, reflectedWC).channels;\n\
15
+ \n\
16
+ return material;\n\
17
+ }";
16
18
  });
@@ -4,14 +4,16 @@ define(function() {
4
4
  "use strict";
5
5
  return "uniform samplerCube cubeMap;\n\
6
6
  uniform float indexOfRefractionRatio;\n\
7
+ \n\
7
8
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
8
9
  {\n\
9
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
10
- vec3 normalWC = normalize(czm_inverseViewRotation * material.normal);\n\
11
- vec3 positionWC = normalize(czm_inverseViewRotation * materialInput.positionToEyeEC);\n\
12
- vec3 refractedWC = refract(positionWC, -normalWC, indexOfRefractionRatio);\n\
13
- material.diffuse = textureCube(cubeMap, refractedWC).channels;\n\
14
- return material;\n\
15
- }\n\
16
- ";
10
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
+ \n\
12
+ vec3 normalWC = normalize(czm_inverseViewRotation * material.normal);\n\
13
+ vec3 positionWC = normalize(czm_inverseViewRotation * materialInput.positionToEyeEC);\n\
14
+ vec3 refractedWC = refract(positionWC, -normalWC, indexOfRefractionRatio);\n\
15
+ material.diffuse = textureCube(cubeMap, refractedWC).channels;\n\
16
+ \n\
17
+ return material;\n\
18
+ }";
17
19
  });
@@ -5,15 +5,20 @@ define(function() {
5
5
  return "uniform vec4 color;\n\
6
6
  uniform vec4 rimColor;\n\
7
7
  uniform float width;\n\
8
+ \n\
8
9
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
9
10
  {\n\
10
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
11
- float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC));\n\
12
- float s = smoothstep(1.0 - width, 1.0, d);\n\
13
- material.diffuse = color.rgb;\n\
14
- material.emission = rimColor.rgb * s;\n\
15
- material.alpha = mix(color.a, rimColor.a, s);\n\
16
- return material;\n\
11
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
12
+ \n\
13
+ // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html\n\
14
+ float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC));\n\
15
+ float s = smoothstep(1.0 - width, 1.0, d);\n\
16
+ \n\
17
+ material.diffuse = color.rgb;\n\
18
+ material.emission = rimColor.rgb * s; \n\
19
+ material.alpha = mix(color.a, rimColor.a, s);\n\
20
+ \n\
21
+ return material;\n\
17
22
  }\n\
18
23
  ";
19
24
  });
@@ -7,20 +7,29 @@ uniform vec4 darkColor;\n\
7
7
  uniform float offset;\n\
8
8
  uniform float repeat;\n\
9
9
  uniform bool horizontal;\n\
10
+ \n\
10
11
  czm_material czm_getMaterial(czm_materialInput materialInput)\n\
11
12
  {\n\
12
- czm_material material = czm_getDefaultMaterial(materialInput);\n\
13
- const float fuzz = 0.1;\n\
14
- float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal));\n\
15
- float value = fract((coord - offset) * (repeat * 0.5));\n\
16
- float val1 = clamp(value / fuzz, 0.0, 1.0);\n\
17
- float val2 = clamp((value - 0.5) / fuzz, 0.0, 1.0);\n\
18
- val1 = val1 * (1.0 - val2);\n\
19
- val1 = val1 * val1 * (3.0 - (2.0 * val1));\n\
20
- vec4 color = mix(lightColor, darkColor, val1);\n\
21
- material.diffuse = color.rgb;\n\
22
- material.alpha = color.a;\n\
23
- return material;\n\
13
+ czm_material material = czm_getDefaultMaterial(materialInput);\n\
14
+ \n\
15
+ // Based on the Stripes Fragment Shader in the Orange Book (11.1.2)\n\
16
+ // Fuzz Factor - Controls blurriness between light and dark colors\n\
17
+ const float fuzz = 0.1;\n\
18
+ \n\
19
+ float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal));\n\
20
+ float value = fract((coord - offset) * (repeat * 0.5));\n\
21
+ \n\
22
+ //anti-aliasing\n\
23
+ float val1 = clamp(value / fuzz, 0.0, 1.0);\n\
24
+ float val2 = clamp((value - 0.5) / fuzz, 0.0, 1.0);\n\
25
+ val1 = val1 * (1.0 - val2);\n\
26
+ val1 = val1 * val1 * (3.0 - (2.0 * val1));\n\
27
+ \n\
28
+ vec4 color = mix(lightColor, darkColor, val1);\n\
29
+ material.diffuse = color.rgb;\n\
30
+ material.alpha = color.a;\n\
31
+ \n\
32
+ return material;\n\
24
33
  }\n\
25
34
  ";
26
35
  });