From a19dc0d6aa982d138f46305cdea6443cb45a5fd3 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 16 Apr 2010 03:08:48 +0200 Subject: [PATCH] Added more models and render with perspective transform now --- .gitignore | 1 + model/bullet.blend | Bin 0 -> 145396 bytes model/bullet.obj | 657 +++++++++++++++++++++++++++++++++++++++++++++ model/cube.blend | Bin 0 -> 138032 bytes model/cube.mtl | 11 + model/cube.obj | 427 +++++++++++++++++++++++++++++ src/GLX.hs | 9 +- src/HTanks.hs | 8 +- src/Model.hs | 4 +- src/Render.hs | 76 ++++-- 10 files changed, 1156 insertions(+), 37 deletions(-) create mode 100644 model/bullet.blend create mode 100644 model/bullet.obj create mode 100644 model/cube.blend create mode 100644 model/cube.mtl create mode 100644 model/cube.obj diff --git a/.gitignore b/.gitignore index 733412c..b203cf3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *~ dist +*.blend1 diff --git a/model/bullet.blend b/model/bullet.blend new file mode 100644 index 0000000000000000000000000000000000000000..de0814342a763d746b480794601748b538697b0c GIT binary patch literal 145396 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 Oxl?8p7ZRb*zyAZ@9lV7A literal 0 HcmV?d00001 diff --git a/model/bullet.obj b/model/bullet.obj new file mode 100644 index 0000000..7e8de49 --- /dev/null +++ b/model/bullet.obj @@ -0,0 +1,657 @@ +# Blender3D v249 OBJ File: bullet.blend +# www.blender3d.org +o Circle +v 0.035355 -0.000000 -0.035355 +v 0.046194 -0.000000 -0.019134 +v 0.050000 0.000000 0.000000 +v 0.046194 0.000000 0.019134 +v 0.035355 0.000000 0.035355 +v 0.019134 0.000000 0.046194 +v 0.000000 0.000000 0.050000 +v -0.019134 0.000000 0.046194 +v -0.035355 0.000000 0.035355 +v -0.046194 0.000000 0.019134 +v -0.050000 -0.000000 -0.000000 +v -0.046194 -0.000000 -0.019134 +v -0.035355 -0.000000 -0.035355 +v -0.019134 -0.000000 -0.046194 +v 0.000000 -0.000000 -0.050000 +v 0.019134 -0.000000 -0.046194 +v 0.035355 0.019620 -0.035355 +v 0.046194 0.019620 -0.019134 +v 0.050000 0.019620 0.000000 +v 0.046194 0.019620 0.019134 +v 0.035355 0.019620 0.035355 +v 0.019134 0.019620 0.046194 +v 0.000000 0.019620 0.050000 +v -0.019134 0.019620 0.046194 +v -0.035355 0.019620 0.035355 +v -0.046194 0.019620 0.019134 +v -0.050000 0.019620 -0.000000 +v -0.046194 0.019620 -0.019134 +v -0.035355 0.019620 -0.035355 +v -0.019134 0.019620 -0.046194 +v 0.000000 0.019620 -0.050000 +v 0.019134 0.019620 -0.046194 +v 0.028321 0.019620 -0.028321 +v 0.037004 0.019620 -0.015327 +v 0.040053 0.019620 0.000000 +v 0.037004 0.019620 0.015327 +v 0.028321 0.019620 0.028321 +v 0.015327 0.019620 0.037004 +v 0.000000 0.019620 0.040053 +v -0.015327 0.019620 0.037004 +v -0.028321 0.019620 0.028321 +v -0.037004 0.019620 0.015327 +v -0.040053 0.019620 -0.000000 +v -0.037004 0.019620 -0.015327 +v -0.028321 0.019620 -0.028321 +v -0.015327 0.019620 -0.037004 +v 0.000000 0.019620 -0.040053 +v 0.015327 0.019620 -0.037004 +v 0.037004 0.036977 -0.015327 +v 0.028321 0.036977 -0.028321 +v 0.040053 0.036977 0.000000 +v 0.037004 0.036977 0.015327 +v 0.028321 0.036977 0.028321 +v 0.015327 0.036977 0.037004 +v 0.000000 0.036977 0.040053 +v -0.015327 0.036977 0.037004 +v -0.028321 0.036977 0.028321 +v -0.037004 0.036977 0.015327 +v -0.040053 0.036977 -0.000000 +v -0.037004 0.036977 -0.015327 +v -0.028321 0.036977 -0.028321 +v -0.015327 0.036977 -0.037004 +v 0.000000 0.036977 -0.040053 +v 0.015327 0.036977 -0.037004 +v 0.036574 0.036977 -0.036574 +v 0.047786 0.036977 -0.019794 +v 0.051723 0.036977 0.000000 +v 0.047786 0.036977 0.019794 +v 0.036574 0.036977 0.036574 +v 0.019794 0.036977 0.047786 +v 0.000000 0.036977 0.051723 +v -0.019794 0.036977 0.047786 +v -0.036574 0.036977 0.036574 +v -0.047786 0.036977 0.019794 +v -0.051723 0.036977 -0.000000 +v -0.047786 0.036977 -0.019794 +v -0.036574 0.036977 -0.036574 +v -0.019794 0.036977 -0.047786 +v 0.000000 0.036977 -0.051723 +v 0.019794 0.036977 -0.047786 +v 0.047786 0.131305 -0.019794 +v 0.036574 0.131305 -0.036574 +v 0.051723 0.131305 -0.000000 +v 0.047786 0.131305 0.019794 +v 0.036574 0.131305 0.036574 +v 0.019794 0.131305 0.047786 +v 0.000000 0.131305 0.051723 +v -0.019794 0.131305 0.047786 +v -0.036574 0.131305 0.036574 +v -0.047786 0.131305 0.019794 +v -0.051723 0.131305 -0.000000 +v -0.047786 0.131305 -0.019794 +v -0.036574 0.131305 -0.036574 +v -0.019794 0.131305 -0.047786 +v 0.000000 0.131305 -0.051723 +v 0.019794 0.131305 -0.047786 +v 0.029520 0.156208 -0.029520 +v 0.038570 0.156208 -0.015976 +v 0.041747 0.156208 -0.000000 +v 0.038570 0.156208 0.015976 +v 0.029520 0.156208 0.029520 +v 0.015976 0.156208 0.038570 +v 0.000000 0.156208 0.041747 +v -0.015976 0.156208 0.038570 +v -0.029520 0.156208 0.029520 +v -0.038570 0.156208 0.015976 +v -0.041747 0.156208 -0.000000 +v -0.038570 0.156208 -0.015976 +v -0.029520 0.156208 -0.029520 +v -0.015976 0.156208 -0.038570 +v 0.000000 0.156208 -0.041747 +v 0.015976 0.156208 -0.038570 +v 0.016971 0.174319 -0.016971 +v 0.022174 0.174319 -0.009185 +v 0.024001 0.174319 -0.000000 +v 0.022174 0.174319 0.009185 +v 0.016971 0.174319 0.016971 +v 0.009185 0.174319 0.022174 +v 0.000000 0.174319 0.024001 +v -0.009185 0.174319 0.022174 +v -0.016971 0.174319 0.016971 +v -0.022174 0.174319 0.009185 +v -0.024001 0.174319 -0.000000 +v -0.022174 0.174319 -0.009185 +v -0.016971 0.174319 -0.016971 +v -0.009185 0.174319 -0.022174 +v 0.000000 0.174319 -0.024001 +v 0.009185 0.174319 -0.022174 +v 0.000000 0.182620 -0.000000 +v 0.000000 0.000000 0.000000 +vt 0.442348 0.723517 +vt 0.486308 0.831276 +vt 0.418328 0.734761 +vt 0.395167 0.750823 +vt 0.373643 0.774765 +vt 0.355531 0.806014 +vt 0.344085 0.847527 +vt 0.345069 0.900493 +vt 0.631555 0.864578 +vt 0.625044 0.921431 +vt 0.622930 0.819506 +vt 0.606315 0.784119 +vt 0.585782 0.758952 +vt 0.563073 0.740060 +vt 0.539419 0.727158 +vt 0.515323 0.719335 +vt 0.490992 0.716078 +vt 0.466625 0.717152 +vt 0.435373 0.277216 +vt 0.403973 0.264260 +vt 0.500079 0.097230 +vt 0.370265 0.246237 +vt 0.335730 0.219943 +vt 0.300081 0.182134 +vt 0.262476 0.125117 +vt 0.216974 0.025934 +vt 0.778332 0.030350 +vt 0.738758 0.123675 +vt 0.701168 0.180870 +vt 0.664816 0.219670 +vt 0.629820 0.246695 +vt 0.596015 0.265220 +vt 0.563142 0.277262 +vt 0.530889 0.284061 +vt 0.498888 0.286402 +vt 0.466847 0.284667 +vt 0.459076 0.657593 +vt 0.425050 0.662927 +vt 0.492525 0.656254 +vt 0.526268 0.659145 +vt 0.560395 0.666499 +vt 0.595895 0.678983 +vt 0.633372 0.697880 +vt 0.672738 0.726412 +vt 0.715266 0.766419 +vt 0.758543 0.827819 +vt 0.799890 0.921453 +vt 0.187806 0.885604 +vt 0.230129 0.805500 +vt 0.272531 0.751734 +vt 0.313481 0.714767 +vt 0.352656 0.690394 +vt 0.389517 0.673219 +vt 0.454967 0.604740 +vt 0.415050 0.607973 +vt 0.493828 0.603607 +vt 0.532820 0.605524 +vt 0.573377 0.611385 +vt 0.616082 0.620340 +vt 0.662800 0.633827 +vt 0.716953 0.655882 +vt 0.778810 0.684490 +vt 0.857426 0.732283 +vt 0.960309 0.806764 +vt 0.057122 0.775946 +vt 0.144127 0.716184 +vt 0.215313 0.674136 +vt 0.275173 0.645576 +vt 0.325884 0.628063 +vt 0.372403 0.614745 +vt 0.454414 0.411584 +vt 0.410358 0.408623 +vt 0.497682 0.413327 +vt 0.541389 0.413677 +vt 0.586156 0.410672 +vt 0.633149 0.407708 +vt 0.685877 0.402631 +vt 0.746282 0.392320 +vt 0.815042 0.377662 +vt 0.895950 0.356644 +vt 0.995142 0.323746 +vt 0.011842 0.328297 +vt 0.111950 0.356544 +vt 0.190537 0.373008 +vt 0.257165 0.387893 +vt 0.313761 0.396372 +vt 0.364103 0.403965 +vt 0.456937 0.383080 +vt 0.413987 0.379535 +vt 0.498747 0.385110 +vt 0.540505 0.383766 +vt 0.583838 0.382503 +vt 0.629454 0.375367 +vt 0.679524 0.364508 +vt 0.736206 0.351371 +vt 0.800809 0.330810 +vt 0.875776 0.303252 +vt 0.958165 0.266489 +vt 0.046418 0.264682 +vt 0.129767 0.300477 +vt 0.203269 0.329077 +vt 0.266294 0.346593 +vt 0.320660 0.364084 +vt 0.369024 0.373744 +vt 0.460561 0.338929 +vt 0.422574 0.332644 +vt 0.498173 0.341211 +vt 0.536405 0.339836 +vt 0.575642 0.334995 +vt 0.616907 0.325682 +vt 0.661410 0.311265 +vt 0.711247 0.291253 +vt 0.764908 0.259158 +vt 0.827888 0.217071 +vt 0.907128 0.167677 +vt 0.091213 0.167936 +vt 0.169329 0.215271 +vt 0.235118 0.254654 +vt 0.288750 0.286234 +vt 0.336602 0.308830 +vt 0.380534 0.325355 +vt 0.462452 0.318040 +vt 0.426722 0.312070 +vt 0.497797 0.320014 +vt 0.533811 0.318275 +vt 0.570605 0.312568 +vt 0.608932 0.302035 +vt 0.649660 0.285578 +vt 0.693702 0.261242 +vt 0.743464 0.226984 +vt 0.800880 0.178871 +vt 0.884225 0.108849 +vt 0.118541 0.109644 +vt 0.198644 0.175916 +vt 0.254967 0.224836 +vt 0.303820 0.258704 +vt 0.347531 0.283186 +vt 0.388815 0.300133 +vn 0.384594 0.819025 -0.425703 +vn 0.000000 1.000000 0.000000 +vn 0.553056 0.801019 -0.229072 +vn 0.534013 0.845454 0.000000 +vn 0.553056 0.801019 0.229072 +vn 0.384594 0.819025 0.425703 +vn 0.192419 0.819025 0.540483 +vn -0.029054 0.819025 0.572985 +vn -0.246101 0.819025 0.518235 +vn -0.425703 0.819025 0.384594 +vn -0.540483 0.819025 0.192419 +vn -0.572985 0.819025 -0.029054 +vn -0.518235 0.819025 -0.246101 +vn -0.384594 0.819025 -0.425703 +vn -0.192419 0.819025 -0.540483 +vn 0.029054 0.819025 -0.572985 +vn 0.204352 0.845454 -0.493362 +vn 0.622639 -0.561296 -0.545183 +vn 0.646901 -0.713920 -0.267953 +vn 0.000000 -1.000000 0.000000 +vn 0.825770 -0.561296 -0.054750 +vn 0.783868 -0.561296 0.265419 +vn 0.622639 -0.561296 0.545183 +vn 0.366588 -0.561296 0.741966 +vn 0.054750 -0.561296 0.825770 +vn -0.265419 -0.561296 0.783868 +vn -0.545183 -0.561296 0.622639 +vn -0.741966 -0.561296 0.366588 +vn -0.825770 -0.561296 0.054750 +vn -0.783868 -0.561296 -0.265419 +vn -0.622608 -0.561296 -0.545183 +vn -0.366588 -0.561296 -0.741966 +vn -0.054750 -0.561296 -0.825770 +vn 0.340922 -0.454176 -0.823084 +vn 0.305734 0.601337 -0.738151 +vn 0.586932 0.546983 -0.596881 +vn 0.007019 0.546983 -0.837092 +vn -0.313822 0.546983 -0.776055 +vn -0.586932 0.546983 -0.596881 +vn -0.770653 0.546983 -0.326853 +vn -0.837092 0.546983 -0.007019 +vn -0.776055 0.546983 0.313822 +vn -0.596881 0.546983 0.586932 +vn -0.326853 0.546983 0.770653 +vn -0.007019 0.546983 0.837092 +vn 0.313822 0.546983 0.776055 +vn 0.586932 0.546983 0.596881 +vn 0.805261 0.490127 0.333537 +vn 0.798975 0.601337 0.000000 +vn 0.805261 0.490127 -0.333537 +vn 0.370312 0.252174 -0.894009 +vn 0.692618 0.189581 -0.695914 +vn 0.002319 0.189581 -0.981842 +vn -0.373577 0.189581 -0.907987 +vn -0.692618 0.189581 -0.695914 +vn -0.906217 0.189581 -0.377880 +vn -0.981842 0.189581 -0.002319 +vn -0.907987 0.189581 0.373577 +vn -0.695914 0.189581 0.692618 +vn -0.377880 0.189581 0.906217 +vn -0.002319 0.189581 0.981842 +vn 0.373577 0.189581 0.907987 +vn 0.692618 0.189581 0.695914 +vn 0.896969 0.151463 0.415265 +vn 0.975829 0.216468 0.028871 +vn 0.916471 0.126194 -0.379620 +vn 0.527360 -0.713157 -0.461776 +vn -0.039247 -0.804895 -0.592059 +vn -0.527360 -0.713157 -0.461776 +vn -0.663961 -0.713157 -0.224799 +vn -0.699454 -0.713157 0.046358 +vn -0.628468 -0.713157 0.310495 +vn -0.461776 -0.713157 0.527360 +vn -0.224799 -0.713157 0.663961 +vn 0.046358 -0.713157 0.699454 +vn 0.310495 -0.713157 0.628468 +vn 0.527360 -0.713157 0.461776 +vn 0.663961 -0.713157 0.224799 +vn 0.592059 -0.804895 -0.039247 +vn 0.505570 -0.836940 -0.209418 +vn 0.168493 -0.897824 -0.406781 +vn 0.461776 -0.713157 -0.527360 +vn 0.054750 -0.561296 -0.825770 +vn -0.190283 -0.804895 -0.562029 +vn -0.461776 -0.713157 -0.527360 +vn -0.628468 -0.713157 -0.310495 +vn -0.699454 -0.713157 -0.046358 +vn -0.663961 -0.713157 0.224799 +vn -0.527360 -0.713157 0.461776 +vn -0.310495 -0.713157 0.628468 +vn -0.046358 -0.713157 0.699454 +vn 0.224799 -0.713157 0.663961 +vn 0.461776 -0.713157 0.527360 +vn 0.628468 -0.713157 0.310495 +vn 0.825770 -0.561296 0.054750 +vn 0.733879 -0.607440 -0.303964 +vn 0.340922 0.454176 -0.823084 +vn 0.527360 0.713157 -0.461776 +vn -0.046358 0.713157 -0.699454 +vn -0.310495 0.713157 -0.628468 +vn -0.527360 0.713157 -0.461776 +vn -0.663961 0.713157 -0.224799 +vn -0.699454 0.713157 0.046358 +vn -0.628468 0.713157 0.310495 +vn -0.461776 0.713157 0.527360 +vn -0.224799 0.713157 0.663961 +vn 0.046358 0.713157 0.699454 +vn 0.310495 0.713157 0.628468 +vn 0.527360 0.713157 0.461776 +vn 0.663961 0.713157 0.224799 +vn 0.699454 0.713157 -0.046358 +vn 0.406781 0.897824 -0.168493 +vn 0.168493 0.897824 -0.406781 +vn 0.461776 0.713157 -0.527360 +vn 0.046358 0.713157 -0.699454 +vn -0.224799 0.713157 -0.663961 +vn -0.461776 0.713157 -0.527360 +vn -0.628468 0.713157 -0.310495 +vn -0.699454 0.713157 -0.046358 +vn -0.663961 0.713157 0.224799 +vn -0.527360 0.713157 0.461776 +vn -0.310495 0.713157 0.628468 +vn -0.046358 0.713157 0.699454 +vn 0.224799 0.713157 0.663961 +vn 0.461776 0.713157 0.527360 +vn 0.628468 0.713157 0.310495 +vn 0.699454 0.713157 0.046358 +vn 0.823084 0.454176 -0.340922 +usemtl None_Untitled +s 1 +f 113/1/1 129/2/2 114/3/3 +f 115/4/4 114/3/3 129/2/2 +f 116/5/5 115/4/4 129/2/2 +f 117/6/6 116/5/5 129/2/2 +f 118/7/7 117/6/6 129/2/2 +f 119/8/8 118/7/7 129/2/2 +f 120/9/9 119/10/8 129/2/2 +f 121/11/10 120/9/9 129/2/2 +f 122/12/11 121/11/10 129/2/2 +f 123/13/12 122/12/11 129/2/2 +f 124/14/13 123/13/12 129/2/2 +f 125/15/14 124/14/13 129/2/2 +f 126/16/15 125/15/14 129/2/2 +f 127/17/16 126/16/15 129/2/2 +f 128/18/17 127/17/16 129/2/2 +f 128/18/17 129/2/2 113/1/1 +f 1/19/18 2/20/19 130/21/20 +f 2/20/19 3/22/21 130/21/20 +f 3/22/21 4/23/22 130/21/20 +f 4/23/22 5/24/23 130/21/20 +f 5/24/23 6/25/24 130/21/20 +f 6/25/24 7/26/25 130/21/20 +f 7/27/25 8/28/26 130/21/20 +f 8/28/26 9/29/27 130/21/20 +f 9/29/27 10/30/28 130/21/20 +f 10/30/28 11/31/29 130/21/20 +f 11/31/29 12/32/30 130/21/20 +f 12/32/30 13/33/31 130/21/20 +f 13/33/31 14/34/32 130/21/20 +f 14/34/32 15/35/33 130/21/20 +f 15/35/33 16/36/34 130/21/20 +f 16/36/34 1/19/18 130/21/20 +f 112/37/35 128/18/17 113/1/1 +f 112/37/35 113/1/1 97/38/36 +f 112/37/35 111/39/37 127/17/16 +f 112/37/35 127/17/16 128/18/17 +f 111/39/37 110/40/38 126/16/15 +f 111/39/37 126/16/15 127/17/16 +f 110/40/38 109/41/39 125/15/14 +f 110/40/38 125/15/14 126/16/15 +f 109/41/39 108/42/40 124/14/13 +f 109/41/39 124/14/13 125/15/14 +f 108/42/40 107/43/41 123/13/12 +f 108/42/40 123/13/12 124/14/13 +f 107/43/41 106/44/42 122/12/11 +f 107/43/41 122/12/11 123/13/12 +f 106/44/42 105/45/43 121/11/10 +f 106/44/42 121/11/10 122/12/11 +f 105/45/43 104/46/44 120/9/9 +f 105/45/43 120/9/9 121/11/10 +f 104/46/44 103/47/45 119/10/8 +f 104/46/44 119/10/8 120/9/9 +f 103/48/45 102/49/46 118/7/7 +f 103/48/45 118/7/7 119/8/8 +f 102/49/46 101/50/47 117/6/6 +f 102/49/46 117/6/6 118/7/7 +f 101/50/47 100/51/48 116/5/5 +f 101/50/47 116/5/5 117/6/6 +f 100/51/48 99/52/49 116/5/5 +f 99/52/49 115/4/4 116/5/5 +f 99/52/49 98/53/50 114/3/3 +f 99/52/49 114/3/3 115/4/4 +f 97/38/36 113/1/1 114/3/3 +f 97/38/36 114/3/3 98/53/50 +f 96/54/51 112/37/35 97/38/36 +f 96/54/51 97/38/36 82/55/52 +f 96/54/51 95/56/53 111/39/37 +f 96/54/51 111/39/37 112/37/35 +f 95/56/53 94/57/54 110/40/38 +f 95/56/53 110/40/38 111/39/37 +f 94/57/54 93/58/55 109/41/39 +f 94/57/54 109/41/39 110/40/38 +f 93/58/55 92/59/56 108/42/40 +f 93/58/55 108/42/40 109/41/39 +f 92/59/56 91/60/57 107/43/41 +f 92/59/56 107/43/41 108/42/40 +f 91/60/57 90/61/58 106/44/42 +f 91/60/57 106/44/42 107/43/41 +f 90/61/58 89/62/59 105/45/43 +f 90/61/58 105/45/43 106/44/42 +f 89/62/59 88/63/60 104/46/44 +f 89/62/59 104/46/44 105/45/43 +f 88/63/60 87/64/61 103/47/45 +f 88/63/60 103/47/45 104/46/44 +f 87/65/61 86/66/62 102/49/46 +f 87/65/61 102/49/46 103/48/45 +f 86/66/62 85/67/63 101/50/47 +f 86/66/62 101/50/47 102/49/46 +f 85/67/63 84/68/64 100/51/48 +f 85/67/63 100/51/48 101/50/47 +f 84/68/64 83/69/65 100/51/48 +f 83/69/65 99/52/49 100/51/48 +f 83/69/65 81/70/66 98/53/50 +f 83/69/65 98/53/50 99/52/49 +f 82/55/52 97/38/36 98/53/50 +f 82/55/52 98/53/50 81/70/66 +f 80/71/34 96/54/51 82/55/52 +f 80/71/34 82/55/52 65/72/67 +f 80/71/34 79/73/68 95/56/53 +f 80/71/34 95/56/53 96/54/51 +f 79/73/68 78/74/32 94/57/54 +f 79/73/68 94/57/54 95/56/53 +f 78/74/32 77/75/69 93/58/55 +f 78/74/32 93/58/55 94/57/54 +f 77/75/69 76/76/70 92/59/56 +f 77/75/69 92/59/56 93/58/55 +f 76/76/70 75/77/71 91/60/57 +f 76/76/70 91/60/57 92/59/56 +f 75/77/71 74/78/72 90/61/58 +f 75/77/71 90/61/58 91/60/57 +f 74/78/72 73/79/73 89/62/59 +f 74/78/72 89/62/59 90/61/58 +f 73/79/73 72/80/74 88/63/60 +f 73/79/73 88/63/60 89/62/59 +f 72/80/74 71/81/75 87/64/61 +f 72/80/74 87/64/61 88/63/60 +f 71/82/75 70/83/76 86/66/62 +f 71/82/75 86/66/62 87/65/61 +f 70/83/76 69/84/77 85/67/63 +f 70/83/76 85/67/63 86/66/62 +f 69/84/77 68/85/78 84/68/64 +f 69/84/77 84/68/64 85/67/63 +f 68/85/78 67/86/79 83/69/65 +f 68/85/78 83/69/65 84/68/64 +f 67/86/79 66/87/80 81/70/66 +f 67/86/79 81/70/66 83/69/65 +f 65/72/67 82/55/52 81/70/66 +f 65/72/67 81/70/66 66/87/80 +f 64/88/81 80/71/34 65/72/67 +f 64/88/81 65/72/67 50/89/82 +f 64/88/81 63/90/83 79/73/68 +f 64/88/81 79/73/68 80/71/34 +f 63/90/83 62/91/84 79/73/68 +f 62/91/84 78/74/32 79/73/68 +f 62/91/84 61/92/85 77/75/69 +f 62/91/84 77/75/69 78/74/32 +f 61/92/85 60/93/86 76/76/70 +f 61/92/85 76/76/70 77/75/69 +f 60/93/86 59/94/87 75/77/71 +f 60/93/86 75/77/71 76/76/70 +f 59/94/87 58/95/88 74/78/72 +f 59/94/87 74/78/72 75/77/71 +f 58/95/88 57/96/89 73/79/73 +f 58/95/88 73/79/73 74/78/72 +f 57/96/89 56/97/90 72/80/74 +f 57/96/89 72/80/74 73/79/73 +f 56/97/90 55/98/91 71/81/75 +f 56/97/90 71/81/75 72/80/74 +f 55/99/91 54/100/92 70/83/76 +f 55/99/91 70/83/76 71/82/75 +f 54/100/92 53/101/93 69/84/77 +f 54/100/92 69/84/77 70/83/76 +f 53/101/93 52/102/94 68/85/78 +f 53/101/93 68/85/78 69/84/77 +f 52/102/94 51/103/95 67/86/79 +f 52/102/94 67/86/79 68/85/78 +f 51/103/95 49/104/96 67/86/79 +f 49/104/96 66/87/80 67/86/79 +f 50/89/82 65/72/67 66/87/80 +f 50/89/82 66/87/80 49/104/96 +f 48/105/97 64/88/81 50/89/82 +f 48/105/97 50/89/82 33/106/98 +f 48/105/97 47/107/99 63/90/83 +f 48/105/97 63/90/83 64/88/81 +f 47/107/99 46/108/100 62/91/84 +f 47/107/99 62/91/84 63/90/83 +f 46/108/100 45/109/101 61/92/85 +f 46/108/100 61/92/85 62/91/84 +f 45/109/101 44/110/102 60/93/86 +f 45/109/101 60/93/86 61/92/85 +f 44/110/102 43/111/103 59/94/87 +f 44/110/102 59/94/87 60/93/86 +f 43/111/103 42/112/104 58/95/88 +f 43/111/103 58/95/88 59/94/87 +f 42/112/104 41/113/105 57/96/89 +f 42/112/104 57/96/89 58/95/88 +f 41/113/105 40/114/106 56/97/90 +f 41/113/105 56/97/90 57/96/89 +f 40/114/106 39/115/107 55/98/91 +f 40/114/106 55/98/91 56/97/90 +f 39/116/107 38/117/108 54/100/92 +f 39/116/107 54/100/92 55/99/91 +f 38/117/108 37/118/109 53/101/93 +f 38/117/108 53/101/93 54/100/92 +f 37/118/109 36/119/110 52/102/94 +f 37/118/109 52/102/94 53/101/93 +f 36/119/110 35/120/111 51/103/95 +f 36/119/110 51/103/95 52/102/94 +f 35/120/111 34/121/112 49/104/96 +f 35/120/111 49/104/96 51/103/95 +f 33/106/98 50/89/82 49/104/96 +f 33/106/98 49/104/96 34/121/112 +f 32/122/113 48/105/97 33/106/98 +f 32/122/113 33/106/98 17/123/114 +f 32/122/113 31/124/115 47/107/99 +f 32/122/113 47/107/99 48/105/97 +f 31/124/115 30/125/116 46/108/100 +f 31/124/115 46/108/100 47/107/99 +f 30/125/116 29/126/117 45/109/101 +f 30/125/116 45/109/101 46/108/100 +f 29/126/117 28/127/118 44/110/102 +f 29/126/117 44/110/102 45/109/101 +f 28/127/118 27/128/119 43/111/103 +f 28/127/118 43/111/103 44/110/102 +f 27/128/119 26/129/120 42/112/104 +f 27/128/119 42/112/104 43/111/103 +f 26/129/120 25/130/121 41/113/105 +f 26/129/120 41/113/105 42/112/104 +f 25/130/121 24/131/122 40/114/106 +f 25/130/121 40/114/106 41/113/105 +f 24/131/122 23/132/123 39/115/107 +f 24/131/122 39/115/107 40/114/106 +f 23/133/123 22/134/124 38/117/108 +f 23/133/123 38/117/108 39/116/107 +f 22/134/124 21/135/125 37/118/109 +f 22/134/124 37/118/109 38/117/108 +f 21/135/125 20/136/126 36/119/110 +f 21/135/125 36/119/110 37/118/109 +f 20/136/126 19/137/127 35/120/111 +f 20/136/126 35/120/111 36/119/110 +f 19/137/127 18/138/128 34/121/112 +f 19/137/127 34/121/112 35/120/111 +f 17/123/114 33/106/98 34/121/112 +f 17/123/114 34/121/112 18/138/128 +f 17/123/114 1/19/18 16/36/34 +f 17/123/114 16/36/34 32/122/113 +f 16/36/34 15/35/33 31/124/115 +f 16/36/34 31/124/115 32/122/113 +f 15/35/33 14/34/32 30/125/116 +f 15/35/33 30/125/116 31/124/115 +f 14/34/32 13/33/31 29/126/117 +f 14/34/32 29/126/117 30/125/116 +f 13/33/31 12/32/30 28/127/118 +f 13/33/31 28/127/118 29/126/117 +f 12/32/30 11/31/29 27/128/119 +f 12/32/30 27/128/119 28/127/118 +f 11/31/29 10/30/28 26/129/120 +f 11/31/29 26/129/120 27/128/119 +f 10/30/28 9/29/27 25/130/121 +f 10/30/28 25/130/121 26/129/120 +f 9/29/27 8/28/26 24/131/122 +f 9/29/27 24/131/122 25/130/121 +f 8/28/26 7/27/25 23/132/123 +f 8/28/26 23/132/123 24/131/122 +f 7/26/25 6/25/24 22/134/124 +f 7/26/25 22/134/124 23/133/123 +f 6/25/24 5/24/23 21/135/125 +f 6/25/24 21/135/125 22/134/124 +f 5/24/23 4/23/22 20/136/126 +f 5/24/23 20/136/126 21/135/125 +f 4/23/22 3/22/21 19/137/127 +f 4/23/22 19/137/127 20/136/126 +f 3/22/21 2/20/19 18/138/128 +f 3/22/21 18/138/128 19/137/127 +f 1/19/18 17/123/114 18/138/128 +f 1/19/18 18/138/128 2/20/19 diff --git a/model/cube.blend b/model/cube.blend new file mode 100644 index 0000000000000000000000000000000000000000..af529d02127a7afc05b3d796fe02dea2da88c0f9 GIT binary patch literal 138032 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 literal 0 HcmV?d00001 diff --git a/model/cube.mtl b/model/cube.mtl new file mode 100644 index 0000000..5bc3a52 --- /dev/null +++ b/model/cube.mtl @@ -0,0 +1,11 @@ +# Material Count: 1 +newmtl Material +Ns 96.078431 +Ka 0.000000 0.000000 0.000000 +Kd 0.483062 0.483062 0.483062 +Ks 0.500000 0.500000 0.500000 +Ni 1.000000 +d 1.000000 +illum 2 + + diff --git a/model/cube.obj b/model/cube.obj new file mode 100644 index 0000000..838f922 --- /dev/null +++ b/model/cube.obj @@ -0,0 +1,427 @@ +# Blender3D v249 OBJ File: cube.blend +# www.blender3d.org +o Cube +v -0.445003 -0.500000 0.445003 +v -0.445003 -0.500000 -0.445003 +v 0.445003 -0.500000 -0.445003 +v 0.445003 -0.500000 0.445003 +v -0.445003 0.500000 0.445003 +v 0.445003 0.500000 0.445003 +v 0.445003 0.500000 -0.445003 +v -0.445003 0.500000 -0.445003 +v 0.500000 0.445003 0.445003 +v 0.500000 -0.445003 0.445003 +v 0.500000 -0.445003 -0.445003 +v 0.500000 0.445003 -0.445003 +v -0.445003 0.445003 0.500000 +v -0.445003 -0.445003 0.500000 +v 0.445003 -0.445003 0.500000 +v 0.445003 0.445003 0.500000 +v -0.500000 0.445003 -0.445003 +v -0.500000 -0.445003 -0.445003 +v -0.500000 -0.445003 0.445003 +v -0.500000 0.445003 0.445003 +v -0.445003 -0.445003 -0.500000 +v -0.445003 0.445003 -0.500000 +v 0.445003 0.445003 -0.500000 +v 0.445003 -0.445003 -0.500000 +v 0.490850 -0.467094 0.445003 +v 0.467094 -0.490850 0.445003 +v 0.467094 -0.490850 -0.445003 +v 0.490850 -0.467094 -0.445003 +v -0.445003 -0.467094 0.490850 +v -0.445003 -0.490850 0.467094 +v 0.445003 -0.490850 0.467094 +v 0.445003 -0.467094 0.490850 +v -0.445003 -0.490850 -0.467094 +v -0.445003 -0.467094 -0.490850 +v 0.445003 -0.467094 -0.490850 +v 0.445003 -0.490850 -0.467094 +v -0.490850 -0.467094 -0.445003 +v -0.467094 -0.490850 -0.445003 +v -0.467094 -0.490850 0.445003 +v -0.490850 -0.467094 0.445003 +v -0.445003 0.467094 -0.490850 +v -0.445003 0.490850 -0.467094 +v 0.445003 0.490850 -0.467093 +v 0.445003 0.467094 -0.490849 +v -0.467094 0.490850 -0.445003 +v -0.490850 0.467094 -0.445003 +v -0.490850 0.467094 0.445003 +v -0.467094 0.490850 0.445003 +v 0.467093 0.490850 0.445003 +v 0.490849 0.467094 0.445003 +v 0.490850 0.467094 -0.445003 +v 0.467094 0.490850 -0.445003 +v -0.445003 0.490850 0.467094 +v -0.445003 0.467094 0.490850 +v 0.445003 0.467094 0.490850 +v 0.445003 0.490850 0.467094 +v 0.467094 0.445003 -0.490849 +v 0.490850 0.445003 -0.467094 +v 0.490850 -0.445003 -0.467094 +v 0.467094 -0.445003 -0.490850 +v 0.490849 0.445003 0.467094 +v 0.467093 0.445003 0.490850 +v 0.467094 -0.445003 0.490850 +v 0.490850 -0.445003 0.467094 +v -0.467094 0.445003 0.490850 +v -0.490850 0.445003 0.467094 +v -0.490850 -0.445003 0.467094 +v -0.467094 -0.445003 0.490850 +v -0.490850 0.445003 -0.467094 +v -0.467094 0.445003 -0.490850 +v -0.467094 -0.445003 -0.490850 +v -0.490850 -0.445003 -0.467094 +v 0.468509 -0.478868 -0.468509 +v 0.468509 -0.468509 -0.478868 +v 0.478868 -0.468509 -0.468509 +v 0.468509 -0.478868 0.468509 +v 0.478868 -0.468509 0.468509 +v 0.468509 -0.468509 0.478868 +v -0.468509 -0.478868 0.468509 +v -0.468509 -0.468509 0.478868 +v -0.478868 -0.468509 0.468509 +v -0.468509 -0.478868 -0.468509 +v -0.478868 -0.468509 -0.468509 +v -0.468509 -0.468509 -0.478868 +v 0.468509 0.478868 -0.468509 +v 0.478868 0.468509 -0.468509 +v 0.468509 0.468509 -0.478868 +v 0.468509 0.478868 0.468510 +v 0.468509 0.468509 0.478869 +v 0.478868 0.468509 0.468510 +v -0.468509 0.478868 0.468509 +v -0.478868 0.468509 0.468509 +v -0.468509 0.468509 0.478868 +v -0.468509 0.478868 -0.468509 +v -0.468509 0.468509 -0.478868 +v -0.478868 0.468509 -0.468509 +vt 0.968509 0.978868 +vt 0.978868 0.968509 +vt 0.968509 0.968509 +vt 0.031491 0.031491 +vt 0.021132 0.031491 +vt 0.031491 0.021132 +vt 0.021132 0.968509 +vt 0.031491 0.978868 +vt 0.031491 0.968509 +vt 0.968509 0.021131 +vt 0.978868 0.031490 +vt 0.968509 0.031490 +vt 0.054997 0.945003 +vt 0.032906 0.945003 +vt 0.054997 0.967094 +vt 0.054997 0.032906 +vt 0.032906 0.054997 +vt 0.054997 0.054997 +vt 0.945003 0.054997 +vt 0.967094 0.054997 +vt 0.945003 0.032906 +vt 0.968509 0.031491 +vt 0.945003 0.967094 +vt 0.967094 0.945003 +vt 0.945003 0.945003 +vt 0.967093 0.945003 +vt 0.031490 0.968509 +vt 0.967093 0.054997 +vt 0.945003 0.967093 +vt 0.009150 0.054997 +vt 0.009150 0.945003 +vt 0.990849 0.945003 +vt 0.978868 0.031491 +vt 0.990850 0.054997 +vt 0.990850 0.945003 +vt 0.945003 0.009150 +vt 0.054997 0.009150 +vt 0.990849 0.054997 +vt 0.945003 0.990849 +vt 0.054997 0.990850 +vt 0.945003 0.990850 +vt 0.968509 0.021132 +vn 0.539140 -0.462966 -0.703513 +vn 0.703513 -0.539140 -0.462966 +vn 0.462966 -0.703513 -0.539140 +vn 0.703513 -0.462966 0.539140 +vn 0.462966 -0.539140 0.703513 +vn 0.539140 -0.703513 0.462966 +vn -0.539140 -0.462966 0.703513 +vn -0.703513 -0.539140 0.462966 +vn -0.462966 -0.703513 0.539140 +vn -0.703513 -0.462966 -0.539140 +vn -0.462966 -0.539140 -0.703513 +vn -0.539140 -0.703513 -0.462966 +vn 0.703513 0.462966 -0.539140 +vn 0.462966 0.539140 -0.703513 +vn 0.539140 0.703513 -0.462966 +vn 0.539140 0.462966 0.703513 +vn 0.703513 0.539140 0.462966 +vn 0.462966 0.703513 0.539140 +vn -0.703513 0.462966 0.539140 +vn -0.462966 0.539140 0.703513 +vn -0.539140 0.703513 0.462966 +vn -0.539140 0.462966 -0.703513 +vn -0.703513 0.539140 -0.462966 +vn -0.462966 0.703513 -0.539140 +vn -0.153356 0.232643 -0.960387 +vn -0.499557 0.182134 -0.846889 +vn -0.200720 0.575213 -0.792962 +vn -0.182134 -0.499557 -0.846889 +vn -0.575213 -0.200720 -0.792962 +vn -0.193823 -0.127750 -0.972655 +vn 0.153356 -0.232643 -0.960387 +vn 0.499557 -0.182134 -0.846889 +vn 0.200720 -0.575213 -0.792962 +vn 0.182134 0.499557 -0.846889 +vn 0.575213 0.200720 -0.792962 +vn 0.193823 0.127750 -0.972655 +vn -0.960387 -0.232643 -0.153356 +vn -0.846889 -0.182134 -0.499557 +vn -0.792962 -0.575213 -0.200720 +vn -0.846889 0.499557 -0.182134 +vn -0.792962 0.200720 -0.575213 +vn -0.972655 0.127750 -0.193823 +vn -0.960387 0.232643 0.153356 +vn -0.846889 0.182134 0.499557 +vn -0.792962 0.575213 0.200720 +vn -0.846889 -0.499557 0.182134 +vn -0.792962 -0.200720 0.575213 +vn -0.972655 -0.127750 0.193823 +vn -0.127750 -0.193823 0.972655 +vn -0.499557 -0.182134 0.846889 +vn -0.200720 -0.575213 0.792962 +vn -0.182134 0.499557 0.846889 +vn -0.575213 0.200720 0.792962 +vn -0.232643 0.153356 0.960387 +vn 0.127750 0.193823 0.972655 +vn 0.499557 0.182134 0.846889 +vn 0.200720 0.575213 0.792962 +vn 0.182134 -0.499557 0.846889 +vn 0.575213 -0.200720 0.792962 +vn 0.232643 -0.153356 0.960387 +vn 0.976165 -0.153356 0.153356 +vn 0.846889 -0.182134 0.499557 +vn 0.814112 -0.553423 0.175848 +vn 0.846889 0.499557 0.182134 +vn 0.792962 0.200720 0.575213 +vn 0.960387 0.153356 0.232643 +vn 0.972655 0.193823 -0.127750 +vn 0.846889 0.182134 -0.499557 +vn 0.792962 0.575213 -0.200720 +vn 0.825434 -0.520432 -0.218574 +vn 0.792962 -0.200720 -0.575213 +vn 0.961516 -0.194220 -0.194220 +vn 0.232643 0.960387 0.153356 +vn 0.182134 0.846889 0.499557 +vn 0.575213 0.792962 0.200720 +vn -0.499557 0.846889 0.182134 +vn -0.200720 0.792962 0.575213 +vn -0.127750 0.972655 0.193823 +vn -0.182134 0.846889 -0.499557 +vn -0.575213 0.792962 -0.200720 +vn -0.232643 0.960387 -0.153356 +vn 0.127750 0.972655 -0.193823 +vn 0.499557 0.846889 -0.182134 +vn 0.200720 0.792962 -0.575213 +vn -0.194220 -0.961516 -0.194220 +vn -0.520432 -0.825434 -0.218574 +vn -0.200720 -0.792962 -0.575213 +vn -0.553423 -0.814112 0.175848 +vn -0.153356 -0.976165 0.153356 +vn -0.182134 -0.846889 0.499557 +vn 0.499557 -0.846889 0.182134 +vn 0.200720 -0.792962 0.575213 +vn 0.153356 -0.960387 0.232643 +vn 0.193823 -0.972655 -0.127750 +vn 0.182134 -0.846889 -0.499557 +vn 0.575213 -0.792962 -0.200720 +usemtl Material +s 1 +f 74/1/1 75/2/2 73/3/3 +f 77/4/4 78/5/5 76/6/6 +f 80/6/7 81/5/8 79/4/9 +f 83/7/10 84/8/11 82/9/12 +f 86/2/13 87/1/14 85/3/15 +f 89/10/16 90/11/17 88/12/18 +f 92/5/19 93/6/20 91/4/21 +f 95/8/22 96/7/23 94/9/24 +f 22/13/25 70/14/26 41/15/27 +f 70/14/26 95/9/22 41/15/27 +f 34/16/28 84/4/11 71/17/29 +f 34/16/28 71/17/29 21/18/30 +f 24/19/31 60/20/32 35/21/33 +f 60/20/32 74/22/1 35/21/33 +f 44/23/34 87/3/14 57/24/35 +f 44/23/34 57/24/35 23/25/36 +f 18/19/37 72/20/38 37/21/39 +f 72/20/38 83/22/10 37/21/39 +f 46/23/40 96/3/23 69/24/41 +f 46/23/40 69/24/41 17/25/42 +f 20/13/43 66/14/44 47/15/45 +f 66/14/44 92/9/19 47/15/45 +f 40/16/46 81/4/8 67/17/47 +f 40/16/46 67/17/47 19/18/48 +f 14/18/49 68/17/50 29/16/51 +f 68/17/50 80/4/7 29/16/51 +f 54/15/52 93/9/20 65/14/53 +f 54/15/52 65/14/53 13/13/54 +f 16/25/55 62/26/56 55/23/57 +f 62/26/56 89/3/16 55/23/57 +f 32/21/58 78/22/5 63/20/59 +f 32/21/58 63/20/59 15/19/60 +f 10/18/61 64/17/62 25/16/63 +f 64/17/62 77/4/4 25/16/63 +f 50/15/64 90/27/17 61/14/65 +f 50/15/64 61/14/65 9/13/66 +f 12/25/67 58/26/68 51/23/69 +f 58/26/68 86/3/13 51/23/69 +f 28/21/70 75/22/2 59/20/71 +f 28/21/70 59/20/71 11/19/72 +f 6/19/73 56/21/74 49/28/75 +f 56/21/74 88/12/18 49/28/75 +f 48/17/76 91/4/21 53/16/77 +f 48/17/76 53/16/77 5/18/78 +f 42/15/79 94/9/24 45/14/80 +f 42/15/79 45/14/80 8/13/81 +f 7/25/82 52/24/83 43/29/84 +f 52/24/83 85/3/15 43/29/84 +f 2/13/85 38/14/86 33/15/87 +f 38/14/86 82/9/12 33/15/87 +f 39/17/88 1/18/89 30/16/90 +f 39/17/88 30/16/90 79/4/9 +f 26/20/91 76/22/6 31/21/92 +f 26/20/91 31/21/92 4/19/93 +f 3/25/94 36/23/95 27/24/96 +f 36/23/95 73/3/3 27/24/96 +f 71/17/29 84/4/11 83/5/10 +f 71/17/29 83/5/10 72/30/38 +f 95/9/22 70/14/26 69/31/41 +f 95/9/22 69/31/41 96/7/23 +f 67/30/47 81/5/8 80/4/7 +f 67/30/47 80/4/7 68/17/50 +f 92/9/19 66/14/44 65/31/53 +f 92/9/19 65/31/53 93/7/20 +f 63/30/59 78/5/5 77/4/4 +f 63/30/59 77/4/4 64/17/62 +f 89/3/16 62/26/56 61/32/65 +f 89/3/16 61/32/65 90/2/17 +f 74/33/1 60/34/32 59/20/71 +f 74/33/1 59/20/71 75/22/2 +f 57/24/35 87/3/14 86/2/13 +f 57/24/35 86/2/13 58/35/68 +f 55/36/57 89/10/16 88/12/18 +f 55/36/57 88/12/18 56/21/74 +f 93/6/20 54/37/52 53/16/77 +f 93/6/20 53/16/77 91/4/21 +f 51/35/69 86/2/13 85/3/15 +f 51/35/69 85/3/15 52/24/83 +f 90/11/17 50/38/64 49/28/75 +f 90/11/17 49/28/75 88/12/18 +f 47/30/45 92/5/19 91/4/21 +f 47/30/45 91/4/21 48/17/76 +f 96/7/23 46/31/40 45/14/80 +f 96/7/23 45/14/80 94/9/24 +f 87/1/14 44/39/34 43/29/84 +f 87/1/14 43/29/84 85/3/15 +f 41/40/27 95/8/22 94/9/24 +f 41/40/27 94/9/24 42/15/79 +f 81/5/8 40/30/46 39/17/88 +f 81/5/8 39/17/88 79/4/9 +f 37/31/39 83/7/10 82/9/12 +f 37/31/39 82/9/12 38/14/86 +f 35/41/33 74/1/1 73/3/3 +f 35/41/33 73/3/3 36/23/95 +f 84/8/11 34/40/28 33/15/87 +f 84/8/11 33/15/87 82/9/12 +f 78/42/5 32/36/58 31/21/92 +f 78/42/5 31/21/92 76/22/6 +f 29/37/51 80/6/7 79/4/9 +f 29/37/51 79/4/9 30/16/90 +f 75/2/2 28/35/70 27/24/96 +f 75/2/2 27/24/96 73/3/3 +f 25/16/63 77/4/4 76/6/6 +f 25/16/63 76/6/6 26/37/91 +f 60/20/32 24/19/31 23/25/36 +f 60/20/32 23/25/36 57/24/35 +f 34/16/28 21/18/30 24/19/31 +f 34/16/28 24/19/31 35/21/33 +f 22/13/25 41/15/27 44/23/34 +f 22/13/25 44/23/34 23/25/36 +f 70/14/26 22/13/25 21/18/30 +f 70/14/26 21/18/30 71/17/29 +f 66/14/44 20/13/43 19/18/48 +f 66/14/44 19/18/48 67/17/47 +f 46/23/40 17/25/42 20/13/43 +f 46/23/40 20/13/43 47/15/45 +f 18/19/37 37/21/39 40/16/46 +f 18/19/37 40/16/46 19/18/48 +f 72/20/38 18/19/37 17/25/42 +f 72/20/38 17/25/42 69/24/41 +f 62/26/56 16/25/55 15/19/60 +f 62/26/56 15/19/60 63/20/59 +f 54/15/52 13/13/54 16/25/55 +f 54/15/52 16/25/55 55/23/57 +f 14/18/49 29/16/51 32/21/58 +f 14/18/49 32/21/58 15/19/60 +f 68/17/50 14/18/49 13/13/54 +f 68/17/50 13/13/54 65/14/53 +f 58/26/68 12/25/67 11/19/72 +f 58/26/68 11/19/72 59/20/71 +f 50/15/64 9/13/66 12/25/67 +f 50/15/64 12/25/67 51/23/69 +f 10/18/61 25/16/63 11/19/72 +f 25/16/63 28/21/70 11/19/72 +f 64/17/62 10/18/61 9/13/66 +f 64/17/62 9/13/66 61/14/65 +f 42/15/79 8/13/81 7/25/82 +f 42/15/79 7/25/82 43/29/84 +f 48/17/76 5/18/78 8/13/81 +f 48/17/76 8/13/81 45/14/80 +f 6/19/73 49/28/75 52/24/83 +f 6/19/73 52/24/83 7/25/82 +f 56/21/74 6/19/73 5/18/78 +f 56/21/74 5/18/78 53/16/77 +f 26/20/91 4/19/93 3/25/94 +f 26/20/91 3/25/94 27/24/96 +f 30/16/90 1/18/89 4/19/93 +f 30/16/90 4/19/93 31/21/92 +f 2/13/85 33/15/87 36/23/95 +f 2/13/85 36/23/95 3/25/94 +f 1/18/89 39/17/88 2/13/85 +f 39/17/88 38/14/86 2/13/85 +f 71/17/29 72/30/38 69/31/41 +f 71/17/29 69/31/41 70/14/26 +f 67/30/47 68/17/50 65/14/53 +f 67/30/47 65/14/53 66/31/44 +f 63/20/59 64/34/62 61/32/65 +f 63/20/59 61/32/65 62/26/56 +f 59/20/71 60/34/32 57/32/35 +f 59/20/71 57/32/35 58/26/68 +f 55/23/57 56/41/74 53/40/77 +f 55/23/57 53/40/77 54/15/52 +f 51/23/69 52/41/83 49/40/75 +f 51/23/69 49/40/75 50/15/64 +f 47/30/45 48/17/76 45/14/80 +f 47/30/45 45/14/80 46/31/40 +f 43/29/84 44/39/34 41/40/27 +f 43/29/84 41/40/27 42/15/79 +f 39/17/88 40/30/46 37/31/39 +f 39/17/88 37/31/39 38/14/86 +f 35/41/33 36/23/95 33/15/87 +f 35/41/33 33/15/87 34/40/28 +f 31/21/92 32/36/58 29/37/51 +f 31/21/92 29/37/51 30/16/90 +f 27/24/96 28/35/70 25/34/63 +f 27/24/96 25/34/63 26/20/91 +f 23/25/36 24/19/31 21/18/30 +f 23/25/36 21/18/30 22/13/25 +f 19/18/48 20/13/43 17/25/42 +f 19/18/48 17/25/42 18/19/37 +f 15/19/60 16/25/55 14/18/49 +f 16/25/55 13/13/54 14/18/49 +f 11/19/72 12/25/67 10/18/61 +f 12/25/67 9/13/66 10/18/61 +f 7/25/82 8/13/81 5/18/78 +f 7/25/82 5/18/78 6/19/73 +f 1/18/89 2/13/85 3/25/94 +f 1/18/89 3/25/94 4/19/93 diff --git a/src/GLX.hs b/src/GLX.hs index 9ad6392..8dbca6a 100644 --- a/src/GLX.hs +++ b/src/GLX.hs @@ -11,7 +11,7 @@ import Data.Maybe (isJust) import Data.Ratio import Graphics.Rendering.OpenGL.GL (($=), GLdouble, GLfloat, Vector3(..), Capability(..)) -import Graphics.Rendering.OpenGL.GL.CoordTrans (matrixMode, MatrixMode(..), viewport, Position(..), Size(..), loadIdentity, ortho, translate, scale, rotate) +import Graphics.Rendering.OpenGL.GL.CoordTrans (matrixMode, MatrixMode(..), viewport, Position(..), Size(..), loadIdentity, ortho, translate, scale, rotate, frustum) import Graphics.X11.Types import Graphics.X11.Xlib.Atom (internAtom) @@ -205,10 +205,11 @@ resize lw lh w h = do matrixMode $= Projection loadIdentity - ortho (-sf*aspectf) (sf*aspectf) (-sf) sf (-1) 1 - scale 1 1 (0.1 :: GLfloat) + --ortho (-sf*aspectf) (sf*aspectf) (-sf) sf (-1) 1 + --scale 1 1 (0.1 :: GLfloat) + frustum (-sf*aspectf) (sf*aspectf) (-sf) sf 10 100 rotate (-30) $ Vector3 1 0 (0 :: GLfloat) - translate $ Vector3 (-(fromIntegral lw)/2) (-(fromIntegral lh)/2) (0 :: GLfloat) + translate $ Vector3 (-(fromIntegral lw)/2) ((fromIntegral lh)/2) (-11 :: GLfloat) matrixMode $= Modelview 0 diff --git a/src/HTanks.hs b/src/HTanks.hs index 82338a4..2fd2148 100644 --- a/src/HTanks.hs +++ b/src/HTanks.hs @@ -33,12 +33,14 @@ main = do when (initialized gl) $ do currentTime <- getCurrentTime - let gamestate = GameState {level = theLevel, tanks = [ Tank 5.0 5.0 0 0 1.5 270 False 3 1 5 1 - , Tank 5.0 3.5 0 0 1.5 270 False 3 1 5 1 + let gamestate = GameState {level = theLevel, tanks = [ Tank 7.0 4.0 0 0 1.5 270 False 3 1 5 1 + , Tank 4.0 4.0 0 0 1.5 270 False 3 1 5 1 + , Tank 10.0 4.0 0 0 1.5 270 False 3 1 5 1 ], bullets = []} mainstate = MainState {run = True, driver = SomeDriver gl, time = currentTime, players = [ SomePlayer humanPlayer - , SomePlayer $ CPUPlayer 0 + , SomePlayer $ CPUPlayer (-90) + , SomePlayer $ CPUPlayer 90 ], textures = M.empty, models = M.empty, gameState = gamestate} runMain mainstate $ do diff --git a/src/Model.hs b/src/Model.hs index 0c273e9..e2c045a 100644 --- a/src/Model.hs +++ b/src/Model.hs @@ -6,10 +6,12 @@ module Model ( Model(..) import Paths_htanks import Data.Obj3D.GL (InterleavedObj) -data Model = ModelTank +data Model = ModelTank | ModelBullet | ModelBlock deriving (Eq, Ord, Show) modelPath :: Model -> IO FilePath modelPath t = getDataFileName $ "model/" ++ (name t) ++ ".obj" where name ModelTank = "tank" + name ModelBullet = "bullet" + name ModelBlock = "cube" diff --git a/src/Render.hs b/src/Render.hs index 91146ba..aa084d8 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -80,7 +80,7 @@ setup = do shadeModel $= Smooth lighting $= Enabled light (Light 0) $= Enabled - position (Light 0) $= Vertex4 (-1) (-1) 1 (0 :: GLfloat) + position (Light 0) $= Vertex4 (-1) (-1) 1.5 (0 :: GLfloat) colorMaterial $= Just (Front, AmbientAndDiffuse) clientState VertexArray $= Enabled @@ -96,6 +96,8 @@ setup = do getTexture TextureCrosshair getModel ModelTank + getModel ModelBullet + getModel ModelBlock return () @@ -113,6 +115,8 @@ render = do textureCrosshair <- getTexture TextureCrosshair modelTank <- getModel ModelTank + modelBullet <- getModel ModelBullet + modelBlock <- getModel ModelBlock (lw, lh) <- gets (level . gameState) >>= \l -> return (fromIntegral . levelWidth $ l :: GLfloat, fromIntegral . levelHeight $ l :: GLfloat) @@ -127,17 +131,17 @@ render = do normal $ Normal3 0 0 (1 :: GLfloat) unsafeRenderPrimitive Quads $ do - texCoord $ TexCoord2 (0 :: GLfloat) (0 :: GLfloat) - vertex $ Vertex2 0 lh + texCoord $ TexCoord2 (-0.5 :: GLfloat) (-0.5 :: GLfloat) + vertex $ Vertex2 (-1) (lh+1) - texCoord $ TexCoord2 (lw/2) 0 - vertex $ Vertex2 lw lh + texCoord $ TexCoord2 (lw/2+0.5) (-0.5) + vertex $ Vertex2 (lw+1) (lh+1) - texCoord $ TexCoord2 (lw/2) (lh/2) - vertex $ Vertex2 lw 0 + texCoord $ TexCoord2 (lw/2+0.5) (lh/2+0.5) + vertex $ Vertex2 (lw+1) (-1) - texCoord $ TexCoord2 0 (lh/2) - vertex $ Vertex2 (0 :: GLfloat) (0 :: GLfloat) + texCoord $ TexCoord2 (-0.5) (lh/2+0.5) + vertex $ Vertex2 (-1 :: GLfloat) (-1 :: GLfloat) bindInterleavedArrays modelTank @@ -163,30 +167,44 @@ render = do unsafePreservingMatrix $ do rotate 90 $ Vector3 1 0 (0 :: GLfloat) drawObject modelTank 0 + + texture Texture2D $= Disabled + bindInterleavedArrays modelBullet forM_ bulletlist $ \bullet -> unsafePreservingMatrix $ do - let x = realToFrac . bulletX $ bullet - y = realToFrac . bulletY $ bullet - rotDir = realToFrac . bulletDir $ bullet + let x = realToFrac . bulletX $ bullet + y = realToFrac . bulletY $ bullet + rotDir = realToFrac . bulletDir $ bullet - translate $ Vector3 x y (0.2 :: GLfloat) - rotate 30 $ Vector3 1 0 (0 :: GLfloat) - rotate rotDir $ Vector3 0 0 (1 :: GLfloat) + translate $ Vector3 x y (0.25 :: GLfloat) + rotate (rotDir-90) $ Vector3 0 0 (1 :: GLfloat) - textureBinding Texture2D $= Just textureBullet - - unsafeRenderPrimitive Quads $ do - texCoord $ TexCoord2 (0 :: GLfloat) (0 :: GLfloat) - vertex $ Vertex3 (-0.1 :: GLfloat) (-0.1 :: GLfloat) 0 - - texCoord $ TexCoord2 (0 :: GLfloat) (1 :: GLfloat) - vertex $ Vertex3 (-0.1 :: GLfloat) (0.1 :: GLfloat) 0 - - texCoord $ TexCoord2 (1 :: GLfloat) (1 :: GLfloat) - vertex $ Vertex3 (0.1 :: GLfloat) (0.1 :: GLfloat) 0 - - texCoord $ TexCoord2 (1 :: GLfloat) (0 :: GLfloat) - vertex $ Vertex3 (0.1 :: GLfloat) (-0.1 :: GLfloat) 0 + unsafePreservingMatrix $ do + drawObject modelBullet 0 + + bindInterleavedArrays modelBlock + + texture Texture2D $= Enabled + textureBinding Texture2D $= Just textureWood + forM_ [0.5..13.5] $ \x -> unsafePreservingMatrix $ do + translate $ Vector3 x 8.5 (0.5 :: GLfloat) + rotate 90 $ Vector3 1 0 (0 :: GLfloat) + drawObject modelBlock 0 + + forM_ [0.5..13.5] $ \x -> unsafePreservingMatrix $ do + translate $ Vector3 x (-0.5) (0.5 :: GLfloat) + rotate 90 $ Vector3 1 0 (0 :: GLfloat) + drawObject modelBlock 0 + + forM_ [-0.5..8.5] $ \y -> unsafePreservingMatrix $ do + translate $ Vector3 (-0.5) y (0.5 :: GLfloat) + rotate 90 $ Vector3 1 0 (0 :: GLfloat) + drawObject modelBlock 0 + + forM_ [-0.5..8.5] $ \y -> unsafePreservingMatrix $ do + translate $ Vector3 14.5 y (0.5 :: GLfloat) + rotate 90 $ Vector3 1 0 (0 :: GLfloat) + drawObject modelBlock 0 depthFunc $= Just Always