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
i3dmLxˆX{"INSTANCES_LENGTH":25,"POSITION":{"byteOffset":0},"NORMAL_UP":{"byteOffset":300},"NORMAL_RIGHT":{"byteOffset":600}}    )O”I‹Ê-yJ_P”IñАÊ-yJ•Q”I݊Ê-yJËR”IɊÊ-yJT”IµŠÊ-yJöN”IӊÊ§yJ,P”I¿ŠÊ§yJbQ”I«ŠÊ§yJ˜R”I—ŠÊ§yJÎS”I„ŠÊ§yJÃN”I¡ŠÊ"yJùO”IŠÊ"yJ/Q”IzАÊ"yJeR”IfАÊ"yJ›S”IRАÊ"yJN”IoŠÊœyJÆO”I\ŠÊœyJüP”IHŠÊœyJ1R”I4ŠÊœyJgS”I ŠÊœyJ\N”I>АÊ yJ’O”I*АÊ yJÈP”IАÊ yJþQ”IАÊ yJ4S”IÊ yJã6?U© ?‹°)?ñIÿ>2zF?ª}Æ>•Ø>Áè’> (\?ÄÄ>cQô>+zJ?:×û>Î#®>.M?l[>ɘ}?I"ý<r)?`~ô=yr=?õm'?ïË'?Ö]Á>Fwù=öþ=?X·(?¶R7?¬7?]ŠÊ>Qk¡>Øac>B3l?ìx?BÚl>¼¦=®.?áÈ}>–0?‘C?3?T<Î>š†|?š¿>Ãf®=ÇXm?¤òq>ðé”>£GÐ>~­H?>)ð>ú!³>B†?µÕI?‚›>=fl?E0p>žÀ>Ž?N1?©øÐ>d)^?—‘>¨´->כt?,w>œ1~?ëv†<’ƒð=Ž=e)4?žÿ4?ádY?CgF=Bž?–F­>Œ?Q¡=¿[ي>R’>Vk¿#kb¿8ûŸ½bŒë>è·¾î·]?ÈಾükÑ=A@d?ôÙá¾üu?ø©ö½ÿㆾiO9¿i·>‹ó?‰På>Õã<¿®D?‘Ù?ˆ®?Õ{/¿%€Œ>É@¿†?ð-¿„Z? â¼ŸÚÞ<ëÝ~¾™Øw? ¿»¢æ¾>’4?º\?îQX¿îûA=ŸW:=Rf;¿5.?#k>ºx¿ì½j=]¿AÙþ>õ8ª½Úš­>¹U7?,¿Á9ð>0í=*`a¿¡+2?k‰œ>>T&¿H)ˆ>éW<>j?r¿å¯  ?:hì=ÉU¿§—¯½³³¿Ñ€N?Ù=Œì4?ÿê4¿]ò¿‰æ•> -N?{"Height":[20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20]} glTFÔ 0JSON{"accessors":[{"bufferView":3,"byteOffset":0,"componentType":5123,"count":36,"type":"SCALAR","min":[0],"max":[23]},{"bufferView":2,"byteOffset":0,"componentType":5126,"count":24,"min":[-10.000003814697266,-10,-10.000003814697266],"max":[10.000004768371582,10,10.000005722045898],"type":"VEC3"},{"bufferView":2,"byteOffset":288,"componentType":5126,"count":24,"type":"VEC3","min":[-1,-1,-1],"max":[1,1,1]}],"asset":{"generator":"OBJ2GLTF","version":"2.0"},"buffers":[{"byteLength":2184}],"bufferViews":[{"buffer":0,"byteLength":402,"byteOffset":648},{"buffer":0,"byteLength":1134,"byteOffset":1050},{"buffer":0,"byteLength":576,"byteOffset":0,"target":34962,"byteStride":12},{"buffer":0,"byteLength":72,"byteOffset":576,"target":34963}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorFactor":[1,1,1,1]},"emissiveFactor":[0,0,0],"alphaMode":"OPAQUE","doubleSided":false}],"meshes":[{"primitives":[{"attributes":{"POSITION":1,"NORMAL":2},"indices":0,"material":0,"mode":4}]}],"nodes":[{"mesh":0}],"scene":0,"scenes":[{"nodes":[0]}]}   ˆBIN A ÁÿÿÁ A Á A Á ÁþÿAüÿÁ Á Á A AúÿÁÿÿÁ A Á Á AüÿAùÿA A A A ÁÿÿÁ A AúÿÁùÿA A A A Á A A Á AùÿA A A Á AüÿA Á ÁþÿA Á ÁþÿA Á AüÿAÿÿÁ A ÁüÿÁ Á Á A AúÿÁ A ÁÿÿÁüÿÁ Á ÁÿÿÁ A Á€¿€¿€¿€¿€?€€?€€?€€?€€?€?€?€?€€€?€€€?€€€?€€€?€¿€€€¿€€€¿€€€¿€€€¿€¿€¿€¿ 
 
 precision highp float;
uniform mat4 u_modelViewMatrix;
uniform mat4 u_projectionMatrix;
uniform mat3 u_normalMatrix;
attribute vec3 a_position;
varying vec3 v_positionEC;
attribute vec3 a_normal;
varying vec3 v_normal;
void main(void) {
  vec4 pos = u_modelViewMatrix * vec4(a_position,1.0);
  v_positionEC = pos.xyz;
  gl_Position = u_projectionMatrix * pos;
  v_normal = u_normalMatrix * a_normal;
}
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 specular = u_specular.rgb;
  vec3 specularLight = 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 = vec3(0.0, 0.0, 1.0);
  diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal,l), 0.);
  vec3 h = normalize(l + viewDir);
  float specularIntensity = max(0., pow(max(dot(normal, h), 0.), u_shininess));
  specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;
  vec3 color = vec3(0.0, 0.0, 0.0);
  color += diffuse.rgb * diffuseLight;
  color += specular * specularLight;
  color += emission;
  color += ambient * ambientLight;
  gl_FragColor = vec4(color * diffuse.a, diffuse.a * u_transparency);
}