15832144755
2022-01-06 7b4c8991dca9cf2a809a95e239d144697d3afb56
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
glTF!.{"accessors":{"accessor_position":{"bufferView":"bufferView_0","byteOffset":960,"byteStride":0,"componentType":5123,"count":240,"type":"VEC3","min":[0,0,0],"max":[65535,65535,65535],"extensions":{"WEB3D_quantized_attributes":{"decodedMin":[-77.1432876586914,-42.96331787109375,-67.52114868164062],"decodedMax":[77.76256561279297,46.61709976196289,72.33715057373047],"decodeMatrix":[0.002363711806996023,0,0,0,0,0.0013669095541780215,0,0,0,0,0.0021341008507724285,0,-77.1432876586914,-42.96331787109375,-67.52114868164062,1]}}},"accessor_normal":{"bufferView":"bufferView_0","byteOffset":2400,"byteStride":0,"componentType":5121,"count":240,"type":"VEC2","min":[26,13],"max":[229,240]},"accessor_uv":{"bufferView":"bufferView_0","byteOffset":0,"byteStride":0,"componentType":5126,"count":240,"type":"SCALAR","min":[0],"max":[16777215]},"accessor_index_0":{"bufferView":"bufferView_1","byteOffset":0,"byteStride":0,"componentType":5123,"count":360,"type":"SCALAR","min":[0],"max":[239]},"accessor_batchId":{"bufferView":"bufferView_batchId","byteOffset":0,"byteStride":0,"componentType":5123,"count":240,"type":"SCALAR","min":[0],"max":[9]}},"asset":{"generator":"3d-tiles-generator","version":"1.0","profile":{"api":"WebGL","version":"1.0"},"premultipliedAlpha":true},"buffers":{"binary_glTF":{"type":"arraybuffer","byteLength":7689,"uri":"data:,"}},"bufferViews":{"bufferView_0":{"buffer":"binary_glTF","byteLength":2880,"byteOffset":0,"target":34962},"bufferView_1":{"buffer":"binary_glTF","byteLength":720,"byteOffset":2880,"target":34963},"bufferView_batchId":{"buffer":"binary_glTF","byteLength":480,"byteOffset":3600,"target":34962},"binary_bufferView0":{"buffer":"binary_glTF","byteLength":2738,"byteOffset":4080},"binary_bufferView1":{"buffer":"binary_glTF","byteLength":871,"byteOffset":6818}},"extensionsUsed":["WEB3D_quantized_attributes","CESIUM_RTC","KHR_binary_glTF"],"images":{},"materials":{"material_0":{"technique":"technique0","values":{"ambient":[0.2,0.2,0.2,1],"diffuse":[1,1,1,1],"emission":[0,0,0,1],"specular":[0,0,0,1],"shininess":0,"transparency":1}}},"meshes":{"mesh":{"primitives":[{"attributes":{"POSITION":"accessor_position","NORMAL":"accessor_normal","TEXCOORD_0":"accessor_uv","_BATCHID":"accessor_batchId"},"indices":"accessor_index_0","material":"material_0","mode":4}]}},"nodes":{"rootNode":{"matrix":[1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1],"meshes":["mesh"],"name":"rootNode","children":[]}},"samplers":{},"scene":"scene","scenes":{"scene":{"nodes":["rootNode"]}},"textures":{},"animations":{},"cameras":{},"programs":{"program0":{"attributes":["a_position","a_normal","a_texcoord_0","a_batchId"],"fragmentShader":"fragmentShader0","vertexShader":"vertexShader0"}},"shaders":{"vertexShader0":{"type":35633,"uri":"data:,","extensions":{"KHR_binary_glTF":{"bufferView":"binary_bufferView0"}}},"fragmentShader0":{"type":35632,"uri":"data:,","extensions":{"KHR_binary_glTF":{"bufferView":"binary_bufferView1"}}}},"skins":{},"techniques":{"technique0":{"attributes":{"a_position":"position","a_normal":"normal","a_texcoord_0":"texcoord_0","a_batchId":"batchId"},"parameters":{"modelViewMatrix":{"semantic":"CESIUM_RTC_MODELVIEW","type":35676},"projectionMatrix":{"semantic":"PROJECTION","type":35676},"normalMatrix":{"semantic":"MODELVIEWINVERSETRANSPOSE","type":35675},"ambient":{"type":35666},"diffuse":{"type":35666,"semantic":"_3DTILESDIFFUSE"},"emission":{"type":35666},"specular":{"type":35666},"shininess":{"type":5126},"transparency":{"type":5126},"position":{"semantic":"POSITION","type":35665},"normal":{"semantic":"NORMAL","type":35667},"texcoord_0":{"semantic":"TEXCOORD_0","type":5126},"batchId":{"semantic":"_BATCHID","type":5123}},"program":"program0","states":{"enable":[2884,2929]},"uniforms":{"u_modelViewMatrix":"modelViewMatrix","u_projectionMatrix":"projectionMatrix","u_normalMatrix":"normalMatrix","u_ambient":"ambient","u_diffuse":"diffuse","u_emission":"emission","u_specular":"specular","u_shininess":"shininess","u_transparency":"transparency"}}},"extensions":{"CESIUM_RTC":{"center":[1214988.419024718,-4736314.722631629,4081609.6544529707]}}}   ðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðEðKÿÿKðEðKðEÿÿKðKÿÿKðEðKðEÿÿKðKðEÿÿKðKÿÿKðE £Êt‰p¯z‰pw­3…Cy{¡âCy,¡ò9i)­C‡9i„«[’ôq‡Ÿ    ôq)­C‡9i„«[’ôqw­3…Cy¯z‰p,¡ò9i‡Ÿ ôq{¡âCy £Êt‰p‡Ÿ   ôq„«[’ôqw­3…Cy{¡âCy,¡ò9i)­C‡9i¯z‰p £Êt‰pª‘Ëþ>4¤$þ>6¡.8ÜN¬Žõ/ÜNŽº0\3¡ó8\3žM:C‘‹äD:C¡ó8\3žM:C6¡.8ÜN4¤$þ>Žº0\3‘‹äD:C¬Žõ/ÜNª‘Ëþ>‘‹äD:CžM:C6¡.8ÜN¬Žõ/ÜNŽº0\3¡ó8\34¤$þ>ª‘Ëþ>}Ý¥¹S”è]¾S”»æ»Ç²›Üò›ÛÕÉT‹¸åŒÎT‹Täê׳’²Ù3Ó³’¸åŒÎT‹Täê׳’»æ»Ç²›è]¾S”ÛÕÉT‹²Ù3Ó³’Üò›}Ý¥¹S”²Ù3Ó³’Täê׳’»æ»Ç²›Üò›ÛÕÉT‹¸åŒÎT‹è]¾S”}Ý¥¹S”]Tè}ƒ›N\nƒ›5[ֈW¡DSP…W¡BQْà3Y_–àXǝ´•)PAš´•3Y_–àXǝ´•5[ֈW¡N\nƒ›BQْà)PAš´•DSP…W¡]Tè}ƒ›)PAš´•Xǝ´•5[ֈW¡DSP…W¡BQْà3Y_–àN\nƒ›]Tè}ƒ›¤ñ ÿÿ^ Jýœgïî=glî°ÇüúK.Z·ëí'ZÇüúK.ZJýœgÿÿ^ lî°·ëí'Zïî=g¤ñ ·ëí'ZúK.ZJýœgïî=glî°Çüÿÿ^ ¤ñ ¼3ñŠ"²†@ž"²f>ðžh½œ1D™h½`0›¡Š¥)=G§Š¥   ;šµÐ°@.î¯Ð°)=G§Š¥   ;šµÐ°f>ðžh½†@ž"²`0›¡Š¥@.î¯Ð°œ1D™h½¼3ñŠ"²@.î¯Ð° ;šµÐ°f>ðžh½œ1D™h½`0›¡Š¥)=G§Š¥†@ž"²¼3ñŠ"²z²…gŽtðÂÒnŽtyÀjœ°xœq®¶‚re羊req¼›š€rû«N“€r羊req¼›š€ryÀjœðÂÒnŽtq®¶‚reû«N“€r°xœz²…gŽtû«N“€rq¼›š€ryÀjœ°xœq®¶‚re羊reðÂÒnŽtz²…gŽt»Ûâó<ãàâóó HðÿÿU ëÿÿIrë&ëç šð&ëž ÿÿC÷ØúC÷ç šð&ëž ÿÿC÷ó Hðÿÿ<ãàâóIrë&ëØúC÷U ëÿÿ»ÛâóØúC÷ž ÿÿC÷ó HðÿÿU ëÿÿIrë&ëç šð&ë<ãàâó»ÛâóÌbO;\«oA\ÂmåM1fã`/H1f¿`!IaTžm×NaTµk·[‚^Ö^V‚^žm×NaTµk·[‚^ÂmåM1f«oA\¿`!IaTÖ^V‚^ã`/H1fÌbO;\Ö^V‚^µk·[‚^ÂmåM1fã`/H1f¿`!IaTžm×NaT«oA\ÌbO;\.«>qr6+Bqr!5Hw=-’DwÆ+vNªiª3öQªiÉ2ÞWPnå*^TPnª3öQªiÉ2ÞWPn!5Hw6+BqrÆ+vNªiå*^TPn=-’Dw.«>qrå*^TPnÉ2ÞWPn!5Hw=-’DwÆ+vNªiª3öQªi6+Bqr.«>qrCCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì CCCC<ð<ð<ð<ðåšåšåšåšeeeer³r³r³r³Ì Ì Ì Ì  
 
   !" "#&%$'&$*)(+*(,-.,./01202365476489:8:;>=<?><BA@CB@DEFDFGHIJHJKNMLONLPQRPRSVUTWVTZYX[ZX\]^\^_`ab`bcfedgfdhijhjknmlonlrqpsrptuvtvwxyzxz{~}|~|€‚€‚ƒ†…„‡†„Љˆ‹ŠˆŒŽŒŽ‘’’“–•”—–”˜™š˜š›žœŸžœ¢¡ £¢ ¤¥¦¤¦§¨©ª¨ª«®­¬¯®¬°±²°²³¶µ´·¶´º¹¸»º¸¼½¾¼¾¿ÀÁÂÀÂÃÆÅÄÇÆÄÈÉÊÈÊËÎÍÌÏÎÌÒÑÐÓÒÐÔÕÖÔÖרÙÚØÚÛÞÝÜßÞÜàáâàâãæåäçæäêéèëêèìíîìîï                                                                      attribute float a_batchId;
 
 
 
 
 
 
 
 
 
 vec2 gltf_decompressTextureCoordinates(float encoded)
 {
    float temp = encoded / 4096.0;
    float xZeroTo4095 = floor(temp);
    float stx = xZeroTo4095 / 4095.0;
    float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0;
    return vec2(stx, sty);
 }
 
 
 
#line 0
 
#line 0
attribute float a_texcoord_0;
vec2 gltf_com_a_texcoord_0;
 
 
 
 
 
 
 
 
 
 
float gltf_signNotZero(float value)
{
    return value >= 0.0 ? 1.0 : -1.0;
}
 
vec2 gltf_signNotZero(vec2 value)
{
    return vec2(gltf_signNotZero(value.x), gltf_signNotZero(value.y));
}
 
vec3 gltf_signNotZero(vec3 value)
{
    return vec3(gltf_signNotZero(value.x), gltf_signNotZero(value.y), gltf_signNotZero(value.z));
}
 
vec4 gltf_signNotZero(vec4 value)
{
    return vec4(gltf_signNotZero(value.x), gltf_signNotZero(value.y), gltf_signNotZero(value.z), gltf_signNotZero(value.w));
}
 
 
 
 
 
 
 
 
 
 
 
  vec3 gltf_octDecode(vec2 encoded, float range)
  {
      if (encoded.x == 0.0 && encoded.y == 0.0) {
          return vec3(0.0, 0.0, 0.0);
      }
 
     encoded = encoded / range * 2.0 - 1.0;
     vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y));
     if (v.z < 0.0)
     {
         v.xy = (1.0 - abs(v.yx)) * gltf_signNotZero(v.xy);
     }
 
     return normalize(v);
  }
 
 
 
 
 
 
 
 
 
 
 vec3 gltf_octDecode(vec2 encoded)
 {
    return gltf_octDecode(encoded, 255.0);
 }
 
 
 
 
 
 
 
 
 
 
 vec3 gltf_octDecode(float encoded)
 {
    float temp = encoded / 256.0;
    float x = floor(temp);
    float y = (temp - x) * 256.0;
    return gltf_octDecode(vec2(x, y));
 }
 
 
 
 
 
 
 
 
 
 
 
 
  void gltf_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3)
 {
    float temp = encoded.x / 65536.0;
    float x = floor(temp);
    float encodedFloat1 = (temp - x) * 65536.0;
 
    temp = encoded.y / 65536.0;
    float y = floor(temp);
    float encodedFloat2 = (temp - y) * 65536.0;
 
    vector1 = gltf_octDecode(encodedFloat1);
    vector2 = gltf_octDecode(encodedFloat2);
    vector3 = gltf_octDecode(vec2(x, y));
 }
 
 
 
 
#line 0
 
#line 0
attribute vec2 a_normal;
vec3 gltf_oct_dec_a_normal;
 
 
uniform mat4 u_modelViewMatrix;
uniform mat4 u_projectionMatrix;
uniform mat3 u_normalMatrix;
attribute vec3 a_position;
varying vec3 v_positionEC;
 
varying vec3 v_normal;
void gltf_oct_dec_normal() {
  vec4 pos = u_modelViewMatrix * vec4(a_position,1.0);
  v_positionEC = pos.xyz;
  gl_Position = u_projectionMatrix * pos;
  v_normal = u_normalMatrix * gltf_oct_dec_a_normal;
}
 
void gltf_com_texcoord_a_texcoord_0() {
    gltf_oct_dec_a_normal = gltf_octDecode(a_normal);
    gltf_oct_dec_normal();
}
 
void main() {
    gltf_com_a_texcoord_0 = gltf_decompressTextureCoordinates(a_texcoord_0);
    gltf_com_texcoord_a_texcoord_0();
}
precision highp float;
uniform vec4 u_ambient;
uniform vec4 u_diffuse;
uniform vec4 u_emission;
uniform vec4 u_specular;
uniform float u_shininess;
uniform float u_transparency;
varying vec3 v_positionEC;
varying vec3 v_normal;
void main(void) {
  vec3 normal = normalize(v_normal);
  vec4 diffuse = u_diffuse;
  vec3 diffuseLight = vec3(0.0, 0.0, 0.0);
  vec3 emission = u_emission.rgb;
  vec3 ambient = u_ambient.rgb;
  vec3 viewDir = -normalize(v_positionEC);
  vec3 ambientLight = vec3(0.0, 0.0, 0.0);
  ambientLight += vec3(0.2, 0.2, 0.2);
  vec3 l = normalize(czm_sunDirectionEC);
  diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal,l), 0.);
  vec3 color = vec3(0.0, 0.0, 0.0);
  color += diffuse.rgb * diffuseLight;
  color += emission;
  color += ambient * ambientLight;
  gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);
}