WebGPU Voxel Game

temp

j0.lol 2d0197e3 87e0a2a1

+14
Cargo.lock
··· 163 163 "console_error_panic_hook", 164 164 "console_log", 165 165 "env_logger", 166 + "fs_extra", 166 167 "glam", 168 + "glob", 167 169 "image", 168 170 "log", 169 171 "pollster", ··· 551 553 checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 552 554 553 555 [[package]] 556 + name = "fs_extra" 557 + version = "1.3.0" 558 + source = "registry+https://github.com/rust-lang/crates.io-index" 559 + checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" 560 + 561 + [[package]] 554 562 name = "gethostname" 555 563 version = "0.4.3" 556 564 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 590 598 dependencies = [ 591 599 "bytemuck", 592 600 ] 601 + 602 + [[package]] 603 + name = "glob" 604 + version = "0.3.2" 605 + source = "registry+https://github.com/rust-lang/crates.io-index" 606 + checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" 593 607 594 608 [[package]] 595 609 name = "glow"
+4
Cargo.toml
··· 17 17 thiserror = "2.0.11" 18 18 glam = { version = "0.29.2", features = ["bytemuck"] } 19 19 20 + [build-dependencies] 21 + fs_extra = "1.3.0" 22 + glob = "0" 23 + 20 24 [lib] 21 25 crate-type = ["cdylib", "rlib"] 22 26
+16
build.rs
··· 1 + use fs_extra::copy_items; 2 + use fs_extra::dir::CopyOptions; 3 + use std::env; 4 + use std::error::Error; 5 + 6 + fn main() -> Result<(), Box<dyn Error>> { 7 + println!("cargo:rerun-if-changed=res/*"); 8 + 9 + let out_dir = env::var("OUT_DIR")?; 10 + let mut copy_options = CopyOptions::new(); 11 + copy_options.overwrite = true; 12 + let paths_to_copy = vec!["res/"]; 13 + copy_items(&paths_to_copy, out_dir, &copy_options)?; 14 + 15 + Ok(()) 16 + }
res/cube-diffuse.jpg

This is a binary file and will not be displayed.

res/cube-normal.png

This is a binary file and will not be displayed.

+14
res/cube.mtl
··· 1 + # Blender MTL File: 'cube.blend' 2 + # Material Count: 1 3 + 4 + newmtl Material.001 5 + Ns 323.999994 6 + Ka 1.000000 1.000000 1.000000 7 + Kd 0.800000 0.800000 0.800000 8 + Ks 0.500000 0.500000 0.500000 9 + Ke 0.000000 0.000000 0.000000 10 + Ni 1.450000 11 + d 1.000000 12 + illum 2 13 + map_Bump cube-normal.png 14 + map_Kd cube-diffuse.jpg
+933
res/cube.obj
··· 1 + # Blender v2.82 (sub 7) OBJ File: 'cube.blend' 2 + # www.blender.org 3 + mtllib cube.mtl 4 + o Cube_Finished_Cube.001 5 + v 0.900000 0.900000 -1.000000 6 + v 0.900000 1.000000 -0.900000 7 + v 1.000000 0.900000 -0.900000 8 + v 0.900000 0.930907 -0.995104 9 + v 0.900000 0.958769 -0.980909 10 + v 0.930907 0.900000 -0.995104 11 + v 0.931727 0.931906 -0.989305 12 + v 0.930693 0.957414 -0.975905 13 + v 0.958769 0.900000 -0.980909 14 + v 0.957466 0.930772 -0.975834 15 + v 0.952912 0.952912 -0.966338 16 + v 0.930907 0.995104 -0.900000 17 + v 0.958769 0.980909 -0.900000 18 + v 0.900000 0.995104 -0.930907 19 + v 0.931906 0.989305 -0.931727 20 + v 0.957414 0.975905 -0.930693 21 + v 0.900000 0.980909 -0.958769 22 + v 0.930772 0.975834 -0.957466 23 + v 0.952912 0.966338 -0.952912 24 + v 0.995104 0.900000 -0.930907 25 + v 0.980909 0.900000 -0.958769 26 + v 0.995104 0.930907 -0.900000 27 + v 0.989305 0.931727 -0.931906 28 + v 0.975905 0.930693 -0.957414 29 + v 0.980909 0.958769 -0.900000 30 + v 0.975834 0.957466 -0.930772 31 + v 0.966338 0.952912 -0.952912 32 + v 0.900000 -1.000000 -0.900000 33 + v 0.900000 -0.900000 -1.000000 34 + v 1.000000 -0.900000 -0.900000 35 + v 0.900000 -0.995104 -0.930907 36 + v 0.900000 -0.980909 -0.958769 37 + v 0.930907 -0.995104 -0.900000 38 + v 0.931727 -0.989305 -0.931906 39 + v 0.930693 -0.975905 -0.957414 40 + v 0.958769 -0.980909 -0.900000 41 + v 0.957466 -0.975834 -0.930772 42 + v 0.952912 -0.966338 -0.952912 43 + v 0.930907 -0.900000 -0.995104 44 + v 0.958769 -0.900000 -0.980909 45 + v 0.900000 -0.930907 -0.995104 46 + v 0.931906 -0.931727 -0.989305 47 + v 0.957414 -0.930693 -0.975905 48 + v 0.900000 -0.958769 -0.980909 49 + v 0.930772 -0.957466 -0.975834 50 + v 0.952912 -0.952912 -0.966338 51 + v 0.995104 -0.930907 -0.900000 52 + v 0.980909 -0.958769 -0.900000 53 + v 0.995104 -0.900000 -0.930907 54 + v 0.989305 -0.931906 -0.931727 55 + v 0.975905 -0.957414 -0.930693 56 + v 0.980909 -0.900000 -0.958769 57 + v 0.975834 -0.930772 -0.957466 58 + v 0.966338 -0.952912 -0.952912 59 + v 1.000000 0.900000 0.900000 60 + v 0.900000 1.000000 0.900000 61 + v 0.900000 0.900000 1.000000 62 + v 0.995104 0.930907 0.900000 63 + v 0.980909 0.958769 0.900000 64 + v 0.995104 0.900000 0.930907 65 + v 0.989305 0.931906 0.931727 66 + v 0.975905 0.957414 0.930693 67 + v 0.980909 0.900000 0.958769 68 + v 0.975834 0.930772 0.957466 69 + v 0.966338 0.952912 0.952912 70 + v 0.900000 0.995104 0.930907 71 + v 0.900000 0.980909 0.958769 72 + v 0.930907 0.995104 0.900000 73 + v 0.931727 0.989305 0.931906 74 + v 0.930693 0.975905 0.957414 75 + v 0.958769 0.980909 0.900000 76 + v 0.957466 0.975834 0.930772 77 + v 0.952912 0.966338 0.952912 78 + v 0.930907 0.900000 0.995104 79 + v 0.958769 0.900000 0.980909 80 + v 0.900000 0.930907 0.995104 81 + v 0.931906 0.931727 0.989305 82 + v 0.957414 0.930693 0.975905 83 + v 0.900000 0.958769 0.980909 84 + v 0.930772 0.957466 0.975834 85 + v 0.952912 0.952912 0.966338 86 + v 1.000000 -0.900000 0.900000 87 + v 0.900000 -0.900000 1.000000 88 + v 0.900000 -1.000000 0.900000 89 + v 0.995104 -0.900000 0.930907 90 + v 0.980909 -0.900000 0.958769 91 + v 0.995104 -0.930907 0.900000 92 + v 0.989305 -0.931727 0.931906 93 + v 0.975905 -0.930693 0.957414 94 + v 0.980909 -0.958769 0.900000 95 + v 0.975834 -0.957466 0.930772 96 + v 0.966338 -0.952912 0.952912 97 + v 0.900000 -0.930907 0.995104 98 + v 0.900000 -0.958769 0.980909 99 + v 0.930907 -0.900000 0.995104 100 + v 0.931727 -0.931906 0.989305 101 + v 0.930693 -0.957414 0.975905 102 + v 0.958769 -0.900000 0.980909 103 + v 0.957466 -0.930772 0.975834 104 + v 0.952912 -0.952912 0.966338 105 + v 0.930907 -0.995104 0.900000 106 + v 0.958769 -0.980909 0.900000 107 + v 0.900000 -0.995104 0.930907 108 + v 0.931906 -0.989305 0.931727 109 + v 0.957414 -0.975905 0.930693 110 + v 0.900000 -0.980909 0.958769 111 + v 0.930772 -0.975834 0.957466 112 + v 0.952912 -0.966338 0.952912 113 + v -0.900000 0.900000 -1.000000 114 + v -1.000000 0.900000 -0.900000 115 + v -0.900000 1.000000 -0.900000 116 + v -0.930907 0.900000 -0.995104 117 + v -0.958769 0.900000 -0.980909 118 + v -0.900000 0.930907 -0.995104 119 + v -0.931906 0.931727 -0.989305 120 + v -0.957414 0.930693 -0.975905 121 + v -0.900000 0.958769 -0.980909 122 + v -0.930772 0.957466 -0.975834 123 + v -0.952912 0.952912 -0.966338 124 + v -0.995104 0.930907 -0.900000 125 + v -0.980909 0.958769 -0.900000 126 + v -0.995104 0.900000 -0.930907 127 + v -0.989305 0.931906 -0.931727 128 + v -0.975905 0.957414 -0.930693 129 + v -0.980909 0.900000 -0.958769 130 + v -0.975834 0.930772 -0.957466 131 + v -0.966338 0.952912 -0.952912 132 + v -0.900000 0.995104 -0.930907 133 + v -0.900000 0.980909 -0.958769 134 + v -0.930907 0.995104 -0.900000 135 + v -0.931727 0.989305 -0.931906 136 + v -0.930693 0.975905 -0.957414 137 + v -0.958769 0.980909 -0.900000 138 + v -0.957466 0.975834 -0.930772 139 + v -0.952912 0.966338 -0.952912 140 + v -1.000000 -0.900000 -0.900000 141 + v -0.900000 -0.900000 -1.000000 142 + v -0.900000 -1.000000 -0.900000 143 + v -0.995104 -0.900000 -0.930907 144 + v -0.980909 -0.900000 -0.958769 145 + v -0.995104 -0.930907 -0.900000 146 + v -0.989305 -0.931727 -0.931906 147 + v -0.975905 -0.930693 -0.957414 148 + v -0.980909 -0.958769 -0.900000 149 + v -0.975834 -0.957466 -0.930772 150 + v -0.966338 -0.952912 -0.952912 151 + v -0.900000 -0.930907 -0.995104 152 + v -0.900000 -0.958769 -0.980909 153 + v -0.930907 -0.900000 -0.995104 154 + v -0.931727 -0.931906 -0.989305 155 + v -0.930693 -0.957414 -0.975905 156 + v -0.958769 -0.900000 -0.980909 157 + v -0.957466 -0.930772 -0.975834 158 + v -0.952912 -0.952912 -0.966338 159 + v -0.930907 -0.995104 -0.900000 160 + v -0.958769 -0.980909 -0.900000 161 + v -0.900000 -0.995104 -0.930907 162 + v -0.931906 -0.989305 -0.931727 163 + v -0.957414 -0.975905 -0.930693 164 + v -0.900000 -0.980909 -0.958769 165 + v -0.930772 -0.975834 -0.957466 166 + v -0.952912 -0.966338 -0.952912 167 + v -1.000000 0.900000 0.900000 168 + v -0.900000 0.900000 1.000000 169 + v -0.900000 1.000000 0.900000 170 + v -0.995104 0.900000 0.930907 171 + v -0.980909 0.900000 0.958769 172 + v -0.995104 0.930907 0.900000 173 + v -0.989305 0.931727 0.931906 174 + v -0.975905 0.930693 0.957414 175 + v -0.980909 0.958769 0.900000 176 + v -0.975834 0.957466 0.930772 177 + v -0.966338 0.952912 0.952912 178 + v -0.900000 0.930907 0.995104 179 + v -0.900000 0.958769 0.980909 180 + v -0.930907 0.900000 0.995104 181 + v -0.931727 0.931906 0.989305 182 + v -0.930693 0.957414 0.975905 183 + v -0.958769 0.900000 0.980909 184 + v -0.957466 0.930772 0.975834 185 + v -0.952912 0.952912 0.966338 186 + v -0.930907 0.995104 0.900000 187 + v -0.958769 0.980909 0.900000 188 + v -0.900000 0.995104 0.930907 189 + v -0.931906 0.989305 0.931727 190 + v -0.957414 0.975905 0.930693 191 + v -0.900000 0.980909 0.958769 192 + v -0.930772 0.975834 0.957466 193 + v -0.952912 0.966338 0.952912 194 + v -0.900000 -1.000000 0.900000 195 + v -0.900000 -0.900000 1.000000 196 + v -1.000000 -0.900000 0.900000 197 + v -0.900000 -0.995104 0.930907 198 + v -0.900000 -0.980909 0.958769 199 + v -0.930907 -0.995104 0.900000 200 + v -0.931727 -0.989305 0.931906 201 + v -0.930693 -0.975905 0.957414 202 + v -0.958769 -0.980909 0.900000 203 + v -0.957466 -0.975834 0.930772 204 + v -0.952912 -0.966338 0.952912 205 + v -0.930907 -0.900000 0.995104 206 + v -0.958769 -0.900000 0.980909 207 + v -0.900000 -0.930907 0.995104 208 + v -0.931906 -0.931727 0.989305 209 + v -0.957414 -0.930693 0.975905 210 + v -0.900000 -0.958769 0.980909 211 + v -0.930772 -0.957466 0.975834 212 + v -0.952912 -0.952912 0.966338 213 + v -0.995104 -0.930907 0.900000 214 + v -0.980909 -0.958769 0.900000 215 + v -0.995104 -0.900000 0.930907 216 + v -0.989305 -0.931906 0.931727 217 + v -0.975905 -0.957414 0.930693 218 + v -0.980909 -0.900000 0.958769 219 + v -0.975834 -0.930772 0.957466 220 + v -0.966338 -0.952912 0.952912 221 + vt 0.137500 0.512500 222 + vt 0.362500 0.512500 223 + vt 0.362500 0.737500 224 + vt 0.137500 0.737500 225 + vt 0.387500 0.012500 226 + vt 0.612500 0.012500 227 + vt 0.612500 0.237500 228 + vt 0.387500 0.237500 229 + vt 0.387500 0.762500 230 + vt 0.612500 0.762500 231 + vt 0.612500 0.987500 232 + vt 0.387500 0.987500 233 + vt 0.637500 0.512500 234 + vt 0.862500 0.512500 235 + vt 0.862500 0.737500 236 + vt 0.637500 0.737500 237 + vt 0.387500 0.512500 238 + vt 0.612500 0.512500 239 + vt 0.612500 0.737500 240 + vt 0.387500 0.737500 241 + vt 0.612500 0.487500 242 + vt 0.616363 0.487500 243 + vt 0.616488 0.491466 244 + vt 0.612500 0.491363 245 + vt 0.619846 0.487500 246 + vt 0.619677 0.491337 247 + vt 0.625000 0.487500 248 + vt 0.625000 0.491347 249 + vt 0.616346 0.494683 250 + vt 0.612500 0.494846 251 + vt 0.619114 0.494114 252 + vt 0.625000 0.494114 253 + vt 0.633637 0.512500 254 + vt 0.633512 0.508534 255 + vt 0.637500 0.508637 256 + vt 0.630154 0.512500 257 + vt 0.630323 0.508663 258 + vt 0.619846 0.512500 259 + vt 0.619683 0.508653 260 + vt 0.633654 0.505317 261 + vt 0.637500 0.505154 262 + vt 0.630886 0.505886 263 + vt 0.619114 0.505886 264 + vt 0.612500 0.508637 265 + vt 0.616466 0.508512 266 + vt 0.616363 0.512500 267 + vt 0.612500 0.505154 268 + vt 0.616337 0.505323 269 + vt 0.619114 0.500000 270 + vt 0.362500 0.508637 271 + vt 0.366466 0.508512 272 + vt 0.366363 0.512500 273 + vt 0.362500 0.505154 274 + vt 0.366337 0.505323 275 + vt 0.362500 0.500000 276 + vt 0.366347 0.500000 277 + vt 0.369683 0.508653 278 + vt 0.369846 0.512500 279 + vt 0.369114 0.505886 280 + vt 0.369114 0.500000 281 + vt 0.387500 0.487500 282 + vt 0.387500 0.491363 283 + vt 0.383534 0.491488 284 + vt 0.383637 0.487500 285 + vt 0.387500 0.494846 286 + vt 0.383663 0.494677 287 + vt 0.387500 0.505154 288 + vt 0.383653 0.505317 289 + vt 0.380317 0.491346 290 + vt 0.380154 0.487500 291 + vt 0.380886 0.494114 292 + vt 0.380886 0.505886 293 + vt 0.383637 0.512500 294 + vt 0.383512 0.508534 295 + vt 0.387500 0.508637 296 + vt 0.380154 0.512500 297 + vt 0.380323 0.508663 298 + vt 0.375000 0.505886 299 + vt 0.616363 0.737500 300 + vt 0.616488 0.741466 301 + vt 0.612500 0.741363 302 + vt 0.619846 0.737500 303 + vt 0.619677 0.741337 304 + vt 0.630154 0.737500 305 + vt 0.630317 0.741346 306 + vt 0.616346 0.744683 307 + vt 0.612500 0.744846 308 + vt 0.619114 0.744114 309 + vt 0.630886 0.744114 310 + vt 0.637500 0.741363 311 + vt 0.633534 0.741488 312 + vt 0.633637 0.737500 313 + vt 0.637500 0.744846 314 + vt 0.633664 0.744677 315 + vt 0.637500 0.750000 316 + vt 0.633653 0.750000 317 + vt 0.630886 0.750000 318 + vt 0.612500 0.758637 319 + vt 0.616466 0.758512 320 + vt 0.616363 0.762500 321 + vt 0.612500 0.755154 322 + vt 0.616337 0.755323 323 + vt 0.619683 0.758653 324 + vt 0.619846 0.762500 325 + vt 0.619114 0.755886 326 + vt 0.625000 0.744114 327 + vt 0.619114 0.750000 328 + vt 0.387500 0.741363 329 + vt 0.383534 0.741488 330 + vt 0.383637 0.737500 331 + vt 0.387500 0.744846 332 + vt 0.383663 0.744677 333 + vt 0.387500 0.755154 334 + vt 0.383653 0.755317 335 + vt 0.380317 0.741346 336 + vt 0.380154 0.737500 337 + vt 0.380886 0.744114 338 + vt 0.380886 0.755886 339 + vt 0.383637 0.762500 340 + vt 0.383512 0.758534 341 + vt 0.387500 0.758637 342 + vt 0.380154 0.762500 343 + vt 0.380323 0.758663 344 + vt 0.375000 0.762500 345 + vt 0.375000 0.758654 346 + vt 0.375000 0.755886 347 + vt 0.366363 0.737500 348 + vt 0.366488 0.741466 349 + vt 0.362500 0.741363 350 + vt 0.369846 0.737500 351 + vt 0.369677 0.741337 352 + vt 0.366347 0.744683 353 + vt 0.362500 0.744846 354 + vt 0.369114 0.744114 355 + vt 0.380886 0.750000 356 + vt 0.375000 0.744114 357 + vt 0.612500 0.262500 358 + vt 0.612500 0.258637 359 + vt 0.616466 0.258512 360 + vt 0.616363 0.262500 361 + vt 0.612500 0.255154 362 + vt 0.616337 0.255323 363 + vt 0.612500 0.244846 364 + vt 0.616346 0.244683 365 + vt 0.619683 0.258653 366 + vt 0.619846 0.262500 367 + vt 0.619114 0.255886 368 + vt 0.619114 0.244114 369 + vt 0.616363 0.237500 370 + vt 0.616488 0.241466 371 + vt 0.612500 0.241363 372 + vt 0.619846 0.237500 373 + vt 0.619677 0.241337 374 + vt 0.625000 0.237500 375 + vt 0.625000 0.241347 376 + vt 0.625000 0.244114 377 + vt 0.862500 0.508637 378 + vt 0.866466 0.508512 379 + vt 0.866363 0.512500 380 + vt 0.862500 0.505154 381 + vt 0.866337 0.505323 382 + vt 0.862500 0.500000 383 + vt 0.866347 0.500000 384 + vt 0.869683 0.508653 385 + vt 0.869846 0.512500 386 + vt 0.869114 0.505886 387 + vt 0.869114 0.500000 388 + vt 0.619114 0.250000 389 + vt 0.625000 0.255886 390 + vt 0.387500 0.241363 391 + vt 0.383534 0.241488 392 + vt 0.383637 0.237500 393 + vt 0.387500 0.244846 394 + vt 0.383663 0.244677 395 + vt 0.387500 0.255154 396 + vt 0.383653 0.255317 397 + vt 0.380317 0.241346 398 + vt 0.380154 0.237500 399 + vt 0.380886 0.244114 400 + vt 0.380886 0.255886 401 + vt 0.387500 0.262500 402 + vt 0.383637 0.262500 403 + vt 0.383512 0.258534 404 + vt 0.387500 0.258637 405 + vt 0.380154 0.262500 406 + vt 0.380323 0.258663 407 + vt 0.375000 0.262500 408 + vt 0.375000 0.258653 409 + vt 0.375000 0.255886 410 + vt 0.133637 0.512500 411 + vt 0.133512 0.508534 412 + vt 0.137500 0.508637 413 + vt 0.130154 0.512500 414 + vt 0.130323 0.508663 415 + vt 0.125000 0.512500 416 + vt 0.125000 0.508654 417 + vt 0.133653 0.505317 418 + vt 0.137500 0.505154 419 + vt 0.130886 0.505886 420 + vt 0.125000 0.505886 421 + vt 0.380886 0.250000 422 + vt 0.375000 0.244114 423 + vt 0.612500 0.008637 424 + vt 0.616466 0.008512 425 + vt 0.616363 0.012500 426 + vt 0.612500 0.005154 427 + vt 0.616337 0.005323 428 + vt 0.612500 0.000000 429 + vt 0.616346 0.000000 430 + vt 0.619683 0.008654 431 + vt 0.619846 0.012500 432 + vt 0.619114 0.005886 433 + vt 0.619114 0.000000 434 + vt 0.616363 0.987500 435 + vt 0.616488 0.991466 436 + vt 0.612500 0.991363 437 + vt 0.619846 0.987500 438 + vt 0.619677 0.991337 439 + vt 0.625000 0.987500 440 + vt 0.625000 0.991346 441 + vt 0.616346 0.994683 442 + vt 0.612500 0.994846 443 + vt 0.619114 0.994114 444 + vt 0.625000 0.994114 445 + vt 0.866363 0.737500 446 + vt 0.866488 0.741466 447 + vt 0.862500 0.741363 448 + vt 0.869846 0.737500 449 + vt 0.869677 0.741337 450 + vt 0.875000 0.737500 451 + vt 0.875000 0.741347 452 + vt 0.866346 0.744683 453 + vt 0.862500 0.744846 454 + vt 0.869114 0.744114 455 + vt 0.875000 0.744114 456 + vt 0.625000 0.005886 457 + vt 0.137500 0.741363 458 + vt 0.133534 0.741488 459 + vt 0.133637 0.737500 460 + vt 0.137500 0.744846 461 + vt 0.133663 0.744677 462 + vt 0.137500 0.750000 463 + vt 0.133653 0.750000 464 + vt 0.130317 0.741346 465 + vt 0.130154 0.737500 466 + vt 0.130886 0.744114 467 + vt 0.130886 0.750000 468 + vt 0.387500 0.991363 469 + vt 0.383534 0.991488 470 + vt 0.383637 0.987500 471 + vt 0.387500 0.994846 472 + vt 0.383663 0.994677 473 + vt 0.387500 1.000000 474 + vt 0.383654 1.000000 475 + vt 0.380317 0.991346 476 + vt 0.380154 0.987500 477 + vt 0.380886 0.994114 478 + vt 0.380886 1.000000 479 + vt 0.383637 0.012500 480 + vt 0.383512 0.008534 481 + vt 0.387500 0.008637 482 + vt 0.380154 0.012500 483 + vt 0.380323 0.008663 484 + vt 0.375000 0.012500 485 + vt 0.375000 0.008653 486 + vt 0.383653 0.005317 487 + vt 0.387500 0.005154 488 + vt 0.380886 0.005886 489 + vt 0.375000 0.005886 490 + vt 0.125000 0.744114 491 + vt 0.125000 0.737500 492 + vt 0.137500 0.500000 493 + vt 0.612500 1.000000 494 + vt 0.862500 0.750000 495 + vt 0.362500 0.750000 496 + vt 0.875000 0.512500 497 + vt 0.637500 0.500000 498 + vn -0.0802 -0.9935 -0.0802 499 + vn 0.0802 -0.9935 -0.0802 500 + vn 0.0802 -0.9935 0.0802 501 + vn -0.0802 -0.9935 0.0802 502 + vn -0.9935 -0.0802 0.0802 503 + vn -0.9935 0.0802 0.0802 504 + vn -0.9935 0.0802 -0.0802 505 + vn -0.9935 -0.0802 -0.0802 506 + vn 0.0802 -0.0802 0.9935 507 + vn 0.0802 0.0802 0.9935 508 + vn -0.0802 0.0802 0.9935 509 + vn -0.0802 -0.0802 0.9935 510 + vn 0.0802 0.9935 -0.0802 511 + vn -0.0802 0.9935 -0.0802 512 + vn -0.0802 0.9935 0.0802 513 + vn 0.0802 0.9935 0.0802 514 + vn 0.9935 -0.0802 -0.0802 515 + vn 0.9935 0.0802 -0.0802 516 + vn 0.9935 0.0802 0.0802 517 + vn 0.9935 -0.0802 0.0802 518 + vn 0.0802 0.0802 -0.9935 519 + vn 0.0801 0.3083 -0.9479 520 + vn 0.3068 0.3077 -0.9006 521 + vn 0.3084 0.0804 -0.9478 522 + vn 0.0754 0.5855 -0.8071 523 + vn 0.2854 0.5696 -0.7707 524 + vn 0.0757 0.8072 -0.5853 525 + vn 0.2858 0.7704 -0.5698 526 + vn 0.5698 0.2858 -0.7704 527 + vn 0.5853 0.0757 -0.8072 528 + vn 0.5155 0.5155 -0.6844 529 + vn 0.5155 0.6844 -0.5155 530 + vn 0.3083 0.9479 -0.0801 531 + vn 0.3077 0.9006 -0.3068 532 + vn 0.0804 0.9478 -0.3084 533 + vn 0.5855 0.8071 -0.0754 534 + vn 0.5696 0.7707 -0.2854 535 + vn 0.8072 0.5853 -0.0757 536 + vn 0.7704 0.5698 -0.2858 537 + vn 0.6844 0.5155 -0.5155 538 + vn 0.9479 0.0801 -0.3083 539 + vn 0.9006 0.3068 -0.3077 540 + vn 0.9478 0.3084 -0.0804 541 + vn 0.8071 0.0754 -0.5855 542 + vn 0.7707 0.2854 -0.5696 543 + vn 0.0801 -0.9479 -0.3083 544 + vn 0.3068 -0.9006 -0.3077 545 + vn 0.3084 -0.9478 -0.0804 546 + vn 0.0754 -0.8071 -0.5855 547 + vn 0.2854 -0.7707 -0.5696 548 + vn 0.0757 -0.5853 -0.8072 549 + vn 0.2858 -0.5698 -0.7704 550 + vn 0.5698 -0.7704 -0.2858 551 + vn 0.5853 -0.8072 -0.0757 552 + vn 0.5155 -0.6844 -0.5155 553 + vn 0.5155 -0.5155 -0.6844 554 + vn 0.0802 -0.0802 -0.9935 555 + vn 0.3083 -0.0801 -0.9479 556 + vn 0.3077 -0.3068 -0.9006 557 + vn 0.0804 -0.3084 -0.9478 558 + vn 0.5855 -0.0754 -0.8071 559 + vn 0.5696 -0.2854 -0.7707 560 + vn 0.8072 -0.0757 -0.5853 561 + vn 0.7704 -0.2858 -0.5698 562 + vn 0.6844 -0.5155 -0.5155 563 + vn 0.9479 -0.3083 -0.0801 564 + vn 0.9006 -0.3077 -0.3068 565 + vn 0.9478 -0.0804 -0.3084 566 + vn 0.8071 -0.5855 -0.0754 567 + vn 0.7707 -0.5696 -0.2854 568 + vn 0.9479 0.3083 0.0801 569 + vn 0.9006 0.3077 0.3068 570 + vn 0.9478 0.0804 0.3084 571 + vn 0.8071 0.5855 0.0754 572 + vn 0.7707 0.5696 0.2854 573 + vn 0.5853 0.8072 0.0757 574 + vn 0.5698 0.7704 0.2858 575 + vn 0.7704 0.2858 0.5698 576 + vn 0.8072 0.0757 0.5853 577 + vn 0.6844 0.5155 0.5155 578 + vn 0.5155 0.6844 0.5155 579 + vn 0.0801 0.9479 0.3083 580 + vn 0.3068 0.9006 0.3077 581 + vn 0.3084 0.9478 0.0804 582 + vn 0.0754 0.8071 0.5855 583 + vn 0.2854 0.7707 0.5696 584 + vn 0.0757 0.5853 0.8072 585 + vn 0.2858 0.5698 0.7704 586 + vn 0.5155 0.5155 0.6844 587 + vn 0.3083 0.0801 0.9479 588 + vn 0.3077 0.3068 0.9006 589 + vn 0.0804 0.3084 0.9478 590 + vn 0.5855 0.0754 0.8071 591 + vn 0.5696 0.2854 0.7707 592 + vn 0.9479 -0.0801 0.3083 593 + vn 0.9006 -0.3068 0.3077 594 + vn 0.9478 -0.3084 0.0804 595 + vn 0.8071 -0.0754 0.5855 596 + vn 0.7707 -0.2854 0.5696 597 + vn 0.5853 -0.0757 0.8072 598 + vn 0.5698 -0.2858 0.7704 599 + vn 0.7704 -0.5698 0.2858 600 + vn 0.8072 -0.5853 0.0757 601 + vn 0.6844 -0.5155 0.5155 602 + vn 0.5155 -0.5155 0.6844 603 + vn 0.0801 -0.3083 0.9479 604 + vn 0.3068 -0.3077 0.9006 605 + vn 0.3084 -0.0804 0.9478 606 + vn 0.0754 -0.5855 0.8071 607 + vn 0.2854 -0.5696 0.7707 608 + vn 0.0757 -0.8072 0.5853 609 + vn 0.2858 -0.7704 0.5698 610 + vn 0.5155 -0.6844 0.5155 611 + vn 0.3083 -0.9479 0.0801 612 + vn 0.3077 -0.9006 0.3068 613 + vn 0.0804 -0.9478 0.3084 614 + vn 0.5855 -0.8071 0.0754 615 + vn 0.5696 -0.7707 0.2854 616 + vn -0.0802 0.0802 -0.9935 617 + vn -0.3083 0.0801 -0.9479 618 + vn -0.3077 0.3068 -0.9006 619 + vn -0.0804 0.3084 -0.9478 620 + vn -0.5855 0.0754 -0.8071 621 + vn -0.5696 0.2854 -0.7707 622 + vn -0.8072 0.0757 -0.5853 623 + vn -0.7704 0.2858 -0.5698 624 + vn -0.2858 0.5698 -0.7704 625 + vn -0.0757 0.5853 -0.8072 626 + vn -0.5155 0.5155 -0.6844 627 + vn -0.6844 0.5155 -0.5155 628 + vn -0.9479 0.3083 -0.0801 629 + vn -0.9006 0.3077 -0.3068 630 + vn -0.9478 0.0804 -0.3084 631 + vn -0.8071 0.5855 -0.0754 632 + vn -0.7707 0.5696 -0.2854 633 + vn -0.5853 0.8072 -0.0757 634 + vn -0.5698 0.7704 -0.2858 635 + vn -0.5155 0.6844 -0.5155 636 + vn -0.0801 0.9479 -0.3083 637 + vn -0.3068 0.9006 -0.3077 638 + vn -0.3084 0.9478 -0.0804 639 + vn -0.0754 0.8071 -0.5855 640 + vn -0.2854 0.7707 -0.5696 641 + vn -0.9479 -0.0801 -0.3083 642 + vn -0.9006 -0.3068 -0.3077 643 + vn -0.9478 -0.3084 -0.0804 644 + vn -0.8071 -0.0754 -0.5855 645 + vn -0.7707 -0.2854 -0.5696 646 + vn -0.5853 -0.0757 -0.8072 647 + vn -0.5698 -0.2858 -0.7704 648 + vn -0.7704 -0.5698 -0.2858 649 + vn -0.8072 -0.5853 -0.0757 650 + vn -0.6844 -0.5155 -0.5155 651 + vn -0.5155 -0.5155 -0.6844 652 + vn -0.0802 -0.0802 -0.9935 653 + vn -0.0801 -0.3083 -0.9479 654 + vn -0.3068 -0.3077 -0.9006 655 + vn -0.3084 -0.0804 -0.9478 656 + vn -0.0754 -0.5855 -0.8071 657 + vn -0.2854 -0.5696 -0.7707 658 + vn -0.0757 -0.8072 -0.5853 659 + vn -0.2858 -0.7704 -0.5698 660 + vn -0.5155 -0.6844 -0.5155 661 + vn -0.3083 -0.9479 -0.0801 662 + vn -0.3077 -0.9006 -0.3068 663 + vn -0.0804 -0.9478 -0.3084 664 + vn -0.5855 -0.8071 -0.0754 665 + vn -0.5696 -0.7707 -0.2854 666 + vn -0.9479 0.0801 0.3083 667 + vn -0.9006 0.3068 0.3077 668 + vn -0.9478 0.3084 0.0804 669 + vn -0.8071 0.0754 0.5855 670 + vn -0.7707 0.2854 0.5696 671 + vn -0.5853 0.0757 0.8072 672 + vn -0.5698 0.2858 0.7704 673 + vn -0.7704 0.5698 0.2858 674 + vn -0.8072 0.5853 0.0757 675 + vn -0.6844 0.5155 0.5155 676 + vn -0.5155 0.5155 0.6844 677 + vn -0.0801 0.3083 0.9479 678 + vn -0.3068 0.3077 0.9006 679 + vn -0.3084 0.0804 0.9478 680 + vn -0.0754 0.5855 0.8071 681 + vn -0.2854 0.5696 0.7707 682 + vn -0.0757 0.8072 0.5853 683 + vn -0.2858 0.7704 0.5698 684 + vn -0.5155 0.6844 0.5155 685 + vn -0.3083 0.9479 0.0801 686 + vn -0.3077 0.9006 0.3068 687 + vn -0.0804 0.9478 0.3084 688 + vn -0.5855 0.8071 0.0754 689 + vn -0.5696 0.7707 0.2854 690 + vn -0.0801 -0.9479 0.3083 691 + vn -0.3068 -0.9006 0.3077 692 + vn -0.3084 -0.9478 0.0804 693 + vn -0.0754 -0.8071 0.5855 694 + vn -0.2854 -0.7707 0.5696 695 + vn -0.0757 -0.5853 0.8072 696 + vn -0.2858 -0.5698 0.7704 697 + vn -0.5698 -0.7704 0.2858 698 + vn -0.5853 -0.8072 0.0757 699 + vn -0.5155 -0.6844 0.5155 700 + vn -0.5155 -0.5155 0.6844 701 + vn -0.3083 -0.0801 0.9479 702 + vn -0.3077 -0.3068 0.9006 703 + vn -0.0804 -0.3084 0.9478 704 + vn -0.5855 -0.0754 0.8071 705 + vn -0.5696 -0.2854 0.7707 706 + vn -0.8072 -0.0757 0.5853 707 + vn -0.7704 -0.2858 0.5698 708 + vn -0.6844 -0.5155 0.5155 709 + vn -0.9479 -0.3083 0.0801 710 + vn -0.9006 -0.3077 0.3068 711 + vn -0.9478 -0.0804 0.3084 712 + vn -0.8071 -0.5855 0.0754 713 + vn -0.7707 -0.5696 0.2854 714 + usemtl Material.001 715 + s 1 716 + f 138/1/1 28/2/2 84/3/3 190/4/4 717 + f 192/5/5 163/6/6 110/7/7 136/8/8 718 + f 83/9/9 57/10/10 164/11/11 191/12/12 719 + f 2/13/13 111/14/14 165/15/15 56/16/16 720 + f 30/17/17 3/18/18 55/19/19 82/20/20 721 + f 1/21/21 4/22/22 7/23/23 6/24/24 722 + f 4/22/22 5/25/25 8/26/26 7/23/23 723 + f 5/25/25 17/27/27 18/28/28 8/26/26 724 + f 6/24/24 7/23/23 10/29/29 9/30/30 725 + f 7/23/23 8/26/26 11/31/31 10/29/29 726 + f 8/26/26 18/28/28 19/32/32 11/31/31 727 + f 2/13/13 12/33/33 15/34/34 14/35/35 728 + f 12/33/33 13/36/36 16/37/37 15/34/34 729 + f 13/36/36 25/38/38 26/39/39 16/37/37 730 + f 14/35/35 15/34/34 18/40/28 17/41/27 731 + f 15/34/34 16/37/37 19/42/32 18/40/28 732 + f 16/37/37 26/39/39 27/43/40 19/42/32 733 + f 3/18/18 20/44/41 23/45/42 22/46/43 734 + f 20/44/41 21/47/44 24/48/45 23/45/42 735 + f 21/47/44 9/30/30 10/29/29 24/48/45 736 + f 22/46/43 23/45/42 26/39/39 25/38/38 737 + f 23/45/42 24/48/45 27/43/40 26/39/39 738 + f 24/48/45 10/29/29 11/31/31 27/43/40 739 + f 11/31/31 19/32/32 27/49/40 740 + f 28/2/2 31/50/46 34/51/47 33/52/48 741 + f 31/50/46 32/53/49 35/54/50 34/51/47 742 + f 32/53/49 44/55/51 45/56/52 35/54/50 743 + f 33/52/48 34/51/47 37/57/53 36/58/54 744 + f 34/51/47 35/54/50 38/59/55 37/57/53 745 + f 35/54/50 45/56/52 46/60/56 38/59/55 746 + f 29/61/57 39/62/58 42/63/59 41/64/60 747 + f 39/62/58 40/65/61 43/66/62 42/63/59 748 + f 40/65/61 52/67/63 53/68/64 43/66/62 749 + f 41/64/60 42/63/59 45/69/52 44/70/51 750 + f 42/63/59 43/66/62 46/71/56 45/69/52 751 + f 43/66/62 53/68/64 54/72/65 46/71/56 752 + f 30/17/17 47/73/66 50/74/67 49/75/68 753 + f 47/73/66 48/76/69 51/77/70 50/74/67 754 + f 48/76/69 36/58/54 37/57/53 51/77/70 755 + f 49/75/68 50/74/67 53/68/64 52/67/63 756 + f 50/74/67 51/77/70 54/72/65 53/68/64 757 + f 51/77/70 37/57/53 38/59/55 54/72/65 758 + f 38/59/55 46/60/56 54/78/65 759 + f 55/19/19 58/79/71 61/80/72 60/81/73 760 + f 58/79/71 59/82/74 62/83/75 61/80/72 761 + f 59/82/74 71/84/76 72/85/77 62/83/75 762 + f 60/81/73 61/80/72 64/86/78 63/87/79 763 + f 61/80/72 62/83/75 65/88/80 64/86/78 764 + f 62/83/75 72/85/77 73/89/81 65/88/80 765 + f 56/16/16 66/90/82 69/91/83 68/92/84 766 + f 66/90/82 67/93/85 70/94/86 69/91/83 767 + f 67/93/85 79/95/87 80/96/88 70/94/86 768 + f 68/92/84 69/91/83 72/85/77 71/84/76 769 + f 69/91/83 70/94/86 73/89/81 72/85/77 770 + f 70/94/86 80/96/88 81/97/89 73/89/81 771 + f 57/10/10 74/98/90 77/99/91 76/100/92 772 + f 74/98/90 75/101/93 78/102/94 77/99/91 773 + f 75/101/93 63/87/79 64/86/78 78/102/94 774 + f 76/100/92 77/99/91 80/103/88 79/104/87 775 + f 77/99/91 78/102/94 81/105/89 80/103/88 776 + f 78/102/94 64/86/78 65/88/80 81/105/89 777 + f 65/88/80 73/106/81 81/107/89 778 + f 82/20/20 85/108/95 88/109/96 87/110/97 779 + f 85/108/95 86/111/98 89/112/99 88/109/96 780 + f 86/111/98 98/113/100 99/114/101 89/112/99 781 + f 87/110/97 88/109/96 91/115/102 90/116/103 782 + f 88/109/96 89/112/99 92/117/104 91/115/102 783 + f 89/112/99 99/114/101 100/118/105 92/117/104 784 + f 83/9/9 93/119/106 96/120/107 95/121/108 785 + f 93/119/106 94/122/109 97/123/110 96/120/107 786 + f 94/122/109 106/124/111 107/125/112 97/123/110 787 + f 95/121/108 96/120/107 99/114/101 98/113/100 788 + f 96/120/107 97/123/110 100/118/105 99/114/101 789 + f 97/123/110 107/125/112 108/126/113 100/118/105 790 + f 84/3/3 101/127/114 104/128/115 103/129/116 791 + f 101/127/114 102/130/117 105/131/118 104/128/115 792 + f 102/130/117 90/116/103 91/115/102 105/131/118 793 + f 103/129/116 104/128/115 107/132/112 106/133/111 794 + f 104/128/115 105/131/118 108/134/113 107/132/112 795 + f 105/131/118 91/115/102 92/117/104 108/134/113 796 + f 92/117/104 100/135/105 108/136/113 797 + f 109/137/119 112/138/120 115/139/121 114/140/122 798 + f 112/138/120 113/141/123 116/142/124 115/139/121 799 + f 113/141/123 125/143/125 126/144/126 116/142/124 800 + f 114/140/122 115/139/121 118/145/127 117/146/128 801 + f 115/139/121 116/142/124 119/147/129 118/145/127 802 + f 116/142/124 126/144/126 127/148/130 119/147/129 803 + f 110/7/7 120/149/131 123/150/132 122/151/133 804 + f 120/149/131 121/152/134 124/153/135 123/150/132 805 + f 121/152/134 133/154/136 134/155/137 124/153/135 806 + f 122/151/133 123/150/132 126/144/126 125/143/125 807 + f 123/150/132 124/153/135 127/148/130 126/144/126 808 + f 124/153/135 134/155/137 135/156/138 127/148/130 809 + f 111/14/14 128/157/139 131/158/140 130/159/141 810 + f 128/157/139 129/160/142 132/161/143 131/158/140 811 + f 129/160/142 117/162/128 118/163/127 132/161/143 812 + f 130/159/141 131/158/140 134/164/137 133/165/136 813 + f 131/158/140 132/161/143 135/166/138 134/164/137 814 + f 132/161/143 118/163/127 119/167/129 135/166/138 815 + f 119/147/129 127/168/130 135/169/138 816 + f 136/8/8 139/170/144 142/171/145 141/172/146 817 + f 139/170/144 140/173/147 143/174/148 142/171/145 818 + f 140/173/147 152/175/149 153/176/150 143/174/148 819 + f 141/172/146 142/171/145 145/177/151 144/178/152 820 + f 142/171/145 143/174/148 146/179/153 145/177/151 821 + f 143/174/148 153/176/150 154/180/154 146/179/153 822 + f 137/181/155 147/182/156 150/183/157 149/184/158 823 + f 147/182/156 148/185/159 151/186/160 150/183/157 824 + f 148/185/159 160/187/161 161/188/162 151/186/160 825 + f 149/184/158 150/183/157 153/176/150 152/175/149 826 + f 150/183/157 151/186/160 154/180/154 153/176/150 827 + f 151/186/160 161/188/162 162/189/163 154/180/154 828 + f 138/1/1 155/190/164 158/191/165 157/192/166 829 + f 155/190/164 156/193/167 159/194/168 158/191/165 830 + f 156/193/167 144/195/152 145/196/151 159/194/168 831 + f 157/192/166 158/191/165 161/197/162 160/198/161 832 + f 158/191/165 159/194/168 162/199/163 161/197/162 833 + f 159/194/168 145/196/151 146/200/153 162/199/163 834 + f 146/179/153 154/201/154 162/202/163 835 + f 163/6/6 166/203/169 169/204/170 168/205/171 836 + f 166/203/169 167/206/172 170/207/173 169/204/170 837 + f 167/206/172 179/208/174 180/209/175 170/207/173 838 + f 168/205/171 169/204/170 172/210/176 171/211/177 839 + f 169/204/170 170/207/173 173/212/178 172/210/176 840 + f 170/207/173 180/209/175 181/213/179 173/212/178 841 + f 164/11/11 174/214/180 177/215/181 176/216/182 842 + f 174/214/180 175/217/183 178/218/184 177/215/181 843 + f 175/217/183 187/219/185 188/220/186 178/218/184 844 + f 176/216/182 177/215/181 180/221/175 179/222/174 845 + f 177/215/181 178/218/184 181/223/179 180/221/175 846 + f 178/218/184 188/220/186 189/224/187 181/223/179 847 + f 165/15/15 182/225/188 185/226/189 184/227/190 848 + f 182/225/188 183/228/191 186/229/192 185/226/189 849 + f 183/228/191 171/230/177 172/231/176 186/229/192 850 + f 184/227/190 185/226/189 188/232/186 187/233/185 851 + f 185/226/189 186/229/192 189/234/187 188/232/186 852 + f 186/229/192 172/231/176 173/235/178 189/234/187 853 + f 173/212/178 181/213/179 189/236/187 854 + f 190/4/4 193/237/193 196/238/194 195/239/195 855 + f 193/237/193 194/240/196 197/241/197 196/238/194 856 + f 194/240/196 206/242/198 207/243/199 197/241/197 857 + f 195/239/195 196/238/194 199/244/200 198/245/201 858 + f 196/238/194 197/241/197 200/246/202 199/244/200 859 + f 197/241/197 207/243/199 208/247/203 200/246/202 860 + f 191/12/12 201/248/204 204/249/205 203/250/206 861 + f 201/248/204 202/251/207 205/252/208 204/249/205 862 + f 202/251/207 214/253/209 215/254/210 205/252/208 863 + f 203/250/206 204/249/205 207/255/199 206/256/198 864 + f 204/249/205 205/252/208 208/257/203 207/255/199 865 + f 205/252/208 215/254/210 216/258/211 208/257/203 866 + f 192/5/5 209/259/212 212/260/213 211/261/214 867 + f 209/259/212 210/262/215 213/263/216 212/260/213 868 + f 210/262/215 198/264/201 199/265/200 213/263/216 869 + f 211/261/214 212/260/213 215/266/210 214/267/209 870 + f 212/260/213 213/263/216 216/268/211 215/266/210 871 + f 213/263/216 199/265/200 200/269/202 216/268/211 872 + f 200/246/202 208/247/203 216/270/211 873 + f 138/1/1 190/4/4 195/239/195 155/190/164 874 + f 155/190/164 195/239/195 198/245/201 156/193/167 875 + f 156/193/167 198/245/201 210/271/215 144/195/152 876 + f 144/178/152 210/262/215 209/259/212 141/172/146 877 + f 141/172/146 209/259/212 192/5/5 136/8/8 878 + f 28/2/2 138/1/1 157/192/166 31/50/46 879 + f 31/50/46 157/192/166 160/198/161 32/53/49 880 + f 32/53/49 160/198/161 148/272/159 44/55/51 881 + f 44/70/51 148/185/159 147/182/156 41/64/60 882 + f 41/64/60 147/182/156 137/181/155 29/61/57 883 + f 3/18/18 30/17/17 49/75/68 20/44/41 884 + f 20/44/41 49/75/68 52/67/63 21/47/44 885 + f 21/47/44 52/67/63 40/65/61 9/30/30 886 + f 9/30/30 40/65/61 39/62/58 6/24/24 887 + f 6/24/24 39/62/58 29/61/57 1/21/21 888 + f 191/12/12 164/11/11 176/216/182 201/248/204 889 + f 201/248/204 176/216/182 179/222/174 202/251/207 890 + f 202/251/207 179/222/174 167/273/172 214/253/209 891 + f 214/267/209 167/206/172 166/203/169 211/261/214 892 + f 211/261/214 166/203/169 163/6/6 192/5/5 893 + f 57/10/10 83/9/9 95/121/108 74/98/90 894 + f 74/98/90 95/121/108 98/113/100 75/101/93 895 + f 75/101/93 98/113/100 86/111/98 63/87/79 896 + f 63/87/79 86/111/98 85/108/95 60/81/73 897 + f 60/81/73 85/108/95 82/20/20 55/19/19 898 + f 109/137/119 137/181/155 149/184/158 112/138/120 899 + f 112/138/120 149/184/158 152/175/149 113/141/123 900 + f 113/141/123 152/175/149 140/173/147 125/143/125 901 + f 125/143/125 140/173/147 139/170/144 122/151/133 902 + f 122/151/133 139/170/144 136/8/8 110/7/7 903 + f 56/16/16 165/15/15 184/227/190 66/90/82 904 + f 66/90/82 184/227/190 187/233/185 67/93/85 905 + f 67/93/85 187/233/185 175/274/183 79/95/87 906 + f 79/104/87 175/217/183 174/214/180 76/100/92 907 + f 76/100/92 174/214/180 164/11/11 57/10/10 908 + f 2/13/13 56/16/16 68/92/84 12/33/33 909 + f 12/33/33 68/92/84 71/84/76 13/36/36 910 + f 13/36/36 71/84/76 59/82/74 25/38/38 911 + f 25/38/38 59/82/74 58/79/71 22/46/43 912 + f 22/46/43 58/79/71 55/19/19 3/18/18 913 + f 190/4/4 84/3/3 103/129/116 193/237/193 914 + f 193/237/193 103/129/116 106/133/111 194/240/196 915 + f 194/240/196 106/133/111 94/275/109 206/242/198 916 + f 206/256/198 94/122/109 93/119/106 203/250/206 917 + f 203/250/206 93/119/106 83/9/9 191/12/12 918 + f 165/15/15 111/14/14 130/159/141 182/225/188 919 + f 182/225/188 130/159/141 133/165/136 183/228/191 920 + f 183/228/191 133/165/136 121/276/134 171/230/177 921 + f 171/211/177 121/152/134 120/149/131 168/205/171 922 + f 168/205/171 120/149/131 110/7/7 163/6/6 923 + f 111/14/14 2/13/13 14/35/35 128/157/139 924 + f 128/157/139 14/35/35 17/41/27 129/160/142 925 + f 129/160/142 17/41/27 5/277/25 117/162/128 926 + f 117/146/128 5/25/25 4/22/22 114/140/122 927 + f 114/140/122 4/22/22 1/21/21 109/137/119 928 + f 84/3/3 28/2/2 33/52/48 101/127/114 929 + f 101/127/114 33/52/48 36/58/54 102/130/117 930 + f 102/130/117 36/58/54 48/76/69 90/116/103 931 + f 90/116/103 48/76/69 47/73/66 87/110/97 932 + f 87/110/97 47/73/66 30/17/17 82/20/20 933 + f 137/181/155 109/137/119 1/21/21 29/61/57
+4 -58
src/lib.rs
··· 2 2 3 3 mod camera; 4 4 mod texture; 5 + mod model; 6 + mod resources; 5 7 8 + use model::Vertex; 6 9 use wgpu::util::DeviceExt; 7 10 use winit::{ 8 11 event::*, ··· 13 16 14 17 #[cfg(target_arch = "wasm32")] 15 18 use wasm_bindgen::prelude::*; 16 - 17 - #[repr(C)] 18 - #[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)] 19 - struct Vertex { 20 - position: [f32; 3], 21 - tex_coords: [f32; 2], 22 - } 23 - 24 - impl Vertex { 25 - fn desc() -> wgpu::VertexBufferLayout<'static> { 26 - wgpu::VertexBufferLayout { 27 - array_stride: std::mem::size_of::<Vertex>() as wgpu::BufferAddress, 28 - step_mode: wgpu::VertexStepMode::Vertex, 29 - attributes: &[ 30 - wgpu::VertexAttribute { 31 - offset: 0, 32 - shader_location: 0, 33 - format: wgpu::VertexFormat::Float32x3, 34 - }, 35 - wgpu::VertexAttribute { 36 - offset: std::mem::size_of::<[f32; 3]>() as wgpu::BufferAddress, 37 - shader_location: 1, 38 - format: wgpu::VertexFormat::Float32x2, 39 - }, 40 - ], 41 - } 42 - } 43 - } 44 - 45 - const VERTICES: &[Vertex] = &[ 46 - Vertex { 47 - position: [-0.0868241, 0.49240386, 0.0], 48 - tex_coords: [0.4131759, 0.00759614], 49 - }, // A 50 - Vertex { 51 - position: [-0.49513406, 0.06958647, 0.0], 52 - tex_coords: [0.0048659444, 0.43041354], 53 - }, // B 54 - Vertex { 55 - position: [-0.21918549, -0.44939706, 0.0], 56 - tex_coords: [0.28081453, 0.949397], 57 - }, // C 58 - Vertex { 59 - position: [0.35966998, -0.3473291, 0.0], 60 - tex_coords: [0.85967, 0.84732914], 61 - }, // D 62 - Vertex { 63 - position: [0.44147372, 0.2347359, 0.0], 64 - tex_coords: [0.9414737, 0.2652641], 65 - }, // E 66 - ]; 67 19 68 20 const INDICES: &[u16] = &[0, 1, 4, 1, 2, 4, 2, 3, 4]; 69 21 ··· 136 88 config: wgpu::SurfaceConfiguration, 137 89 size: winit::dpi::PhysicalSize<u32>, 138 90 render_pipeline: wgpu::RenderPipeline, 139 - vertex_buffer: wgpu::Buffer, 140 - index_buffer: wgpu::Buffer, 141 - num_indices: u32, 142 91 diffuse_bind_group: wgpu::BindGroup, 143 92 diffuse_texture: texture::Texture, 144 93 depth_texture: texture::Texture, ··· 371 320 vertex: wgpu::VertexState { 372 321 module: &shader, 373 322 entry_point: "vs_main", 374 - buffers: &[Vertex::desc(), InstanceRaw::desc()], 323 + buffers: &[model::ModelVertex::desc(), InstanceRaw::desc()], 375 324 compilation_options: wgpu::PipelineCompilationOptions::default(), 376 325 }, 377 326 fragment: Some(wgpu::FragmentState { ··· 431 380 config, 432 381 size, 433 382 render_pipeline, 434 - vertex_buffer, 435 - index_buffer, 436 - num_indices, 437 383 diffuse_bind_group, 438 384 diffuse_texture, 439 385 camera,
+39
src/model.rs
··· 1 + pub trait Vertex { 2 + fn desc() -> wgpu::VertexBufferLayout<'static>; 3 + } 4 + 5 + #[repr(C)] 6 + #[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)] 7 + pub struct ModelVertex { 8 + pub position: [f32; 3], 9 + pub tex_coords: [f32; 2], 10 + pub normal: [f32; 3], 11 + } 12 + 13 + impl Vertex for ModelVertex { 14 + fn desc() -> wgpu::VertexBufferLayout<'static> { 15 + use std::mem; 16 + 17 + wgpu::VertexBufferLayout { 18 + array_stride: mem::size_of::<ModelVertex>() as wgpu::BufferAddress, 19 + step_mode: wgpu::VertexStepMode::Vertex, 20 + attributes: &[ 21 + wgpu::VertexAttribute { 22 + offset: 0, 23 + shader_location: 0, 24 + format: wgpu::VertexFormat::Float32x3, 25 + }, 26 + wgpu::VertexAttribute { 27 + offset: mem::size_of::<[f32; 3]>() as wgpu::BufferAddress, 28 + shader_location: 1, 29 + format: wgpu::VertexFormat::Float32x2, 30 + }, 31 + wgpu::VertexAttribute { 32 + offset: mem::size_of::<[f32; 5]>() as wgpu::BufferAddress, 33 + shader_location: 2, 34 + format: wgpu::VertexFormat::Float32x3, 35 + }, 36 + ] 37 + } 38 + } 39 + }
+19
src/resources.rs
··· 1 + 2 + 3 + #[cfg(target_arch = "wasm32")] 4 + fn format_url(file_name: &str) -> reqwest::Url { 5 + let window = web_sys::window().unwrap(); 6 + let location = window.location(); 7 + let mut origin = location.origin().unwrap(); 8 + if !origin.ends_with("learn-wgpu") { 9 + origin = format!("{}/learn-wgpu", origin); 10 + } 11 + let base = reqwest::Url::parse(&format!("{}/", origin)).unwrap(); 12 + base.join(file_name).unwrap() 13 + } 14 + 15 + pub async fn load_string(file_name: &str) -> Result<String, Box<dyn Error>> { 16 + cfg_if! { 17 + if #[c] 18 + } 19 + }