diff options
-rw-r--r-- | assets/models/Samantha.mtl | 12 | ||||
-rw-r--r-- | assets/models/Samantha.obj | 807 | ||||
-rw-r--r-- | blender/Samantha-Base.png | bin | 0 -> 52362 bytes | |||
-rw-r--r-- | blender/Samantha.blend | bin | 0 -> 532024 bytes | |||
-rw-r--r-- | blender/Samantha.png | bin | 0 -> 85007 bytes | |||
-rw-r--r-- | design.org | 2 | ||||
-rw-r--r-- | src/assets.c | 3 | ||||
-rw-r--r-- | src/assets.h | 5 | ||||
-rw-r--r-- | src/entity.c | 20 | ||||
-rw-r--r-- | src/entity.h | 6 | ||||
-rw-r--r-- | src/world.c | 7 | ||||
-rw-r--r-- | src/world.h | 2 |
12 files changed, 842 insertions, 22 deletions
diff --git a/assets/models/Samantha.mtl b/assets/models/Samantha.mtl new file mode 100644 index 0000000..924a49b --- /dev/null +++ b/assets/models/Samantha.mtl @@ -0,0 +1,12 @@ +# Blender 4.4.3 MTL File: 'Samantha.blend' +# www.blender.org + +newmtl Material +Ns 0.000000 +Ka 1.000000 1.000000 1.000000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.500000 +d 1.000000 +illum 3 + diff --git a/assets/models/Samantha.obj b/assets/models/Samantha.obj new file mode 100644 index 0000000..4cc9d84 --- /dev/null +++ b/assets/models/Samantha.obj @@ -0,0 +1,807 @@ +# Blender 4.4.3 +# www.blender.org +mtllib Samantha.mtl +o Samantha +v -1.972166 -11.956329 -0.999999 +v -1.458015 -3.158478 -0.999999 +v -1.190335 -11.956329 -0.623488 +v -0.676184 -3.158478 -0.623489 +v -0.997239 -11.956329 0.222522 +v -0.483087 -3.158478 0.222521 +v -1.538283 -11.956329 0.900970 +v -1.024131 -3.158478 0.900969 +v -2.406050 -11.956329 0.900970 +v -1.891899 -3.158478 0.900969 +v -2.947094 -11.956329 0.222522 +v -2.432943 -3.158478 0.222521 +v -2.753998 -11.956329 -0.623488 +v -2.239846 -3.158478 -0.623489 +v 3.813954 -11.956328 -0.999998 +v 3.299803 -3.158478 -0.999999 +v 3.032123 -11.956328 -0.623488 +v 2.517972 -3.158478 -0.623489 +v 2.839026 -11.956328 0.222522 +v 2.324875 -3.158478 0.222521 +v 3.380071 -11.956328 0.900970 +v 2.865919 -3.158478 0.900969 +v 4.247838 -11.956328 0.900970 +v 3.733686 -3.158478 0.900969 +v 4.788882 -11.956328 0.222522 +v 4.274731 -3.158478 0.222521 +v 4.595786 -11.956328 -0.623488 +v 4.081634 -3.158478 -0.623489 +v -10.899803 3.373667 -0.944896 +v -4.661469 4.524753 -0.944896 +v -10.899803 2.634919 -0.589133 +v -4.661469 3.786004 -0.589133 +v -10.899803 2.452463 0.210259 +v -4.661469 3.603549 0.210258 +v -10.899803 2.963693 0.851321 +v -4.661469 4.114778 0.851321 +v -10.899803 3.783642 0.851321 +v -4.661469 4.934728 0.851321 +v -10.899803 4.294872 0.210259 +v -4.661469 5.445958 0.210258 +v -10.899803 4.112417 -0.589133 +v -4.661469 5.263502 -0.589133 +v 12.741590 3.373668 -0.944896 +v 6.503256 4.524753 -0.944896 +v 12.741590 2.634919 -0.589133 +v 6.503256 3.786005 -0.589133 +v 12.741590 2.452463 0.210259 +v 6.503256 3.603549 0.210258 +v 12.741590 2.963693 0.851321 +v 6.503256 4.114778 0.851320 +v 12.741590 3.783642 0.851321 +v 6.503256 4.934727 0.851320 +v 12.741590 4.294872 0.210259 +v 6.503256 5.445958 0.210258 +v 12.741590 4.112416 -0.589133 +v 6.503256 5.263502 -0.589133 +v 0.920894 -4.903786 -0.000000 +v 5.643468 -0.741175 3.431110 +v -0.882934 -0.741178 5.551704 +v -4.916518 -0.741146 -0.000000 +v -0.882934 -0.741178 -5.551705 +v 5.643468 -0.741175 -3.431111 +v 2.724722 5.994235 5.551704 +v -3.801680 5.994232 3.431110 +v -3.801680 5.994232 -3.431111 +v 2.724722 5.994235 -5.551705 +v 6.758307 5.994202 -0.000000 +v 0.920894 10.156843 -0.000000 +v -0.139361 -3.779167 3.263185 +v 3.696734 -3.779165 2.016742 +v 2.636490 -1.332442 5.279959 +v 6.472590 -1.332428 -0.000000 +v 3.696734 -3.779165 -2.016742 +v -2.510246 -3.779146 -0.000000 +v -3.570528 -1.332431 3.263196 +v -0.139361 -3.779167 -3.263186 +v -3.570528 -1.332431 -3.263197 +v 2.636490 -1.332442 -5.279960 +v 7.127909 2.626528 2.016750 +v 7.127909 2.626528 -2.016751 +v 0.920894 2.626528 6.526432 +v 4.757037 2.626528 5.279993 +v -5.286121 2.626528 2.016750 +v -2.915249 2.626528 5.279993 +v -2.915249 2.626528 -5.279994 +v -5.286121 2.626528 -2.016751 +v 4.757037 2.626528 -5.279994 +v 0.920894 2.626528 -6.526433 +v 5.412316 6.585487 3.263196 +v -0.794701 6.585498 5.279959 +v -4.630802 6.585485 -0.000000 +v -0.794701 6.585498 -5.279960 +v 5.412316 6.585487 -3.263197 +v 1.981149 9.032223 3.263185 +v 4.352034 9.032204 -0.000000 +v -1.854946 9.032223 2.016742 +v -1.854946 9.032223 -2.016742 +v 1.981149 9.032223 -3.263186 +v -1.779402 3.104403 -3.596552 +v 0.057662 4.507804 -2.261863 +v -2.481083 4.507804 -1.436961 +v -4.050153 4.507804 -3.596552 +v -2.481083 4.507804 -5.756143 +v 0.057662 4.507804 -4.931242 +v -1.077720 6.778568 -1.436961 +v -3.616466 6.778568 -2.261863 +v -3.616466 6.778568 -4.931242 +v -1.077720 6.778568 -5.756143 +v 0.491350 6.778568 -3.596552 +v -1.779402 8.181971 -3.596552 +v 3.621190 3.104402 -3.596552 +v 1.784126 4.507803 -2.261863 +v 4.322872 4.507803 -1.436961 +v 5.891941 4.507803 -3.596552 +v 4.322872 4.507803 -5.756143 +v 1.784126 4.507803 -4.931242 +v 2.919508 6.778568 -1.436961 +v 5.458253 6.778568 -2.261863 +v 5.458253 6.778568 -4.931242 +v 2.919508 6.778568 -5.756143 +v 1.350438 6.778568 -3.596552 +v 3.621190 8.181969 -3.596552 +v 0.589381 8.451481 0.000000 +v 3.530943 10.698650 2.137145 +v -0.534173 10.698650 3.458002 +v -3.046614 10.698650 0.000000 +v -0.534173 10.698650 -3.458002 +v 3.530943 10.698650 -2.137145 +v 1.712935 14.334667 3.458002 +v -2.352180 14.334667 2.137145 +v -2.352180 14.334667 -2.137145 +v 1.712935 14.334667 -3.458002 +v 4.225378 14.334667 0.000000 +v 0.589381 16.581837 0.000000 +vn -0.0126 -0.6209 -0.7838 +vn 0.0126 0.6209 -0.7838 +vn 0.5970 -0.6382 -0.4862 +vn 0.6281 0.6039 -0.4908 +vn 0.7464 -0.6425 0.1733 +vn 0.7808 0.5997 0.1753 +vn 0.3265 -0.6304 0.7042 +vn 0.3536 0.6114 0.7080 +vn -0.3536 -0.6114 0.7080 +vn -0.3265 0.6304 0.7042 +vn -0.7807 -0.5997 0.1753 +vn -0.7464 0.6425 0.1733 +vn -0.6281 -0.6039 -0.4908 +vn -0.5970 0.6382 -0.4862 +vn 0.0126 -0.6209 -0.7838 +vn -0.0126 0.6209 -0.7838 +vn -0.5970 -0.6382 -0.4862 +vn -0.6281 0.6039 -0.4908 +vn -0.7464 -0.6425 0.1733 +vn -0.7807 0.5997 0.1753 +vn -0.3265 -0.6304 0.7042 +vn -0.3536 0.6114 0.7080 +vn 0.3536 -0.6114 0.7080 +vn 0.3265 0.6304 0.7042 +vn 0.7808 -0.5997 0.1753 +vn 0.7464 0.6425 0.1733 +vn 0.6280 -0.6039 -0.4908 +vn 0.5970 0.6382 -0.4862 +vn -0.6175 -0.0395 -0.7856 +vn 0.6175 0.0395 -0.7856 +vn -0.5655 -0.6598 -0.4949 +vn 0.6729 -0.5627 -0.4802 +vn -0.5533 -0.8140 0.1769 +vn 0.6869 -0.7066 0.1702 +vn -0.5881 -0.3825 0.7126 +vn 0.6480 -0.2980 0.7009 +vn -0.6480 0.2980 0.7009 +vn 0.5881 0.3825 0.7126 +vn -0.6869 0.7066 0.1702 +vn 0.5533 0.8140 0.1769 +vn -0.6729 0.5627 -0.4802 +vn 0.5655 0.6598 -0.4949 +vn 0.6175 -0.0395 -0.7856 +vn -0.6175 0.0395 -0.7856 +vn 0.5655 -0.6598 -0.4949 +vn -0.6729 -0.5627 -0.4802 +vn 0.5533 -0.8140 0.1769 +vn -0.6869 -0.7066 0.1702 +vn 0.5881 -0.3825 0.7126 +vn -0.6480 -0.2980 0.7009 +vn 0.6480 0.2980 0.7009 +vn -0.5881 0.3825 0.7126 +vn 0.6869 0.7066 0.1702 +vn -0.5533 0.8140 0.1769 +vn 0.6729 0.5627 -0.4802 +vn -0.5655 0.6598 -0.4949 +vn -0.0000 -1.0000 -0.0000 +vn 0.7393 -0.4061 0.5371 +vn -0.2824 -0.4061 0.8691 +vn -0.9138 -0.4061 -0.0000 +vn -0.2824 -0.4061 -0.8691 +vn 0.7393 -0.4061 -0.5371 +vn 0.2824 0.4061 0.8691 +vn -0.7393 0.4061 0.5371 +vn -0.7393 0.4061 -0.5371 +vn 0.2824 0.4061 -0.8691 +vn 0.9138 0.4061 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.1761 -0.8218 0.5419 +vn 0.4610 -0.8218 0.3349 +vn 0.2704 -0.4840 0.8322 +vn 0.8750 -0.4840 -0.0000 +vn 0.4610 -0.8218 -0.3349 +vn -0.5698 -0.8218 -0.0000 +vn -0.7079 -0.4840 0.5143 +vn -0.1761 -0.8218 -0.5419 +vn -0.7079 -0.4840 -0.5143 +vn 0.2704 -0.4840 -0.8322 +vn 0.9511 -0.0000 0.3090 +vn 0.9511 -0.0000 -0.3090 +vn -0.0000 -0.0000 1.0000 +vn 0.5878 -0.0000 0.8090 +vn -0.9511 -0.0000 0.3090 +vn -0.5878 -0.0000 0.8090 +vn -0.5878 -0.0000 -0.8090 +vn -0.9511 -0.0000 -0.3090 +vn 0.5878 -0.0000 -0.8090 +vn -0.0000 -0.0000 -1.0000 +vn 0.7079 0.4840 0.5143 +vn -0.2704 0.4840 0.8322 +vn -0.8750 0.4840 -0.0000 +vn -0.2704 0.4840 -0.8322 +vn 0.7079 0.4840 -0.5143 +vn 0.1761 0.8218 0.5419 +vn 0.5698 0.8218 -0.0000 +vn -0.4610 0.8218 0.3349 +vn -0.4610 0.8218 -0.3349 +vn 0.1761 0.8218 -0.5419 +vn 0.7236 -0.4472 0.5257 +vn -0.2764 -0.4472 0.8507 +vn -0.8944 -0.4472 -0.0000 +vn -0.2764 -0.4472 -0.8507 +vn 0.7236 -0.4472 -0.5257 +vn 0.2764 0.4472 0.8507 +vn -0.7236 0.4472 0.5257 +vn -0.7236 0.4472 -0.5257 +vn 0.2764 0.4472 -0.8507 +vn 0.8944 0.4472 -0.0000 +vn -0.7236 -0.4472 0.5257 +vn 0.2764 -0.4472 0.8507 +vn 0.8944 -0.4472 -0.0000 +vn 0.2764 -0.4472 -0.8507 +vn -0.7236 -0.4472 -0.5257 +vn -0.2764 0.4472 0.8507 +vn 0.7236 0.4472 0.5257 +vn 0.7236 0.4472 -0.5257 +vn -0.2764 0.4472 -0.8507 +vn -0.8944 0.4472 -0.0000 +vt 0.843326 0.032693 +vt 0.862516 0.251542 +vt 0.843326 0.252015 +vt 0.862516 0.032220 +vt 0.882285 0.250675 +vt 0.894767 0.539526 +vt 0.916190 0.324126 +vt 0.916190 0.540803 +vt 0.931848 0.322867 +vt 0.931848 0.539544 +vt 0.973399 0.542123 +vt 0.995016 0.323583 +vt 0.995016 0.542857 +vt 0.832941 0.275277 +vt 0.817002 0.310588 +vt 0.788280 0.286631 +vt 0.870393 0.628255 +vt 0.890110 0.840714 +vt 0.870393 0.842910 +vt 0.890110 0.626060 +vt 0.909357 0.841721 +vt 0.778312 0.297130 +vt 0.740330 0.305767 +vt 0.740330 0.266776 +vt 0.865672 0.540984 +vt 0.884799 0.325218 +vt 0.884799 0.543353 +vt 0.845849 0.541775 +vt 0.865672 0.322849 +vt 0.963432 0.542595 +vt 0.941816 0.323618 +vt 0.963432 0.322849 +vt 0.929202 0.250311 +vt 0.913707 0.033935 +vt 0.929202 0.031353 +vt 0.913707 0.252893 +vt 0.892252 0.034478 +vt 0.799749 0.561253 +vt 0.835784 0.571272 +vt 0.819747 0.605554 +vt 0.189877 0.849763 +vt 0.209657 0.630550 +vt 0.209657 0.850280 +vt 0.170700 0.848894 +vt 0.189877 0.630033 +vt 0.771492 0.562043 +vt 0.771492 0.600995 +vt 0.733471 0.592349 +vt 0.417205 0.955160 +vt 0.446097 0.858847 +vt 0.436853 0.955160 +vt 0.919324 0.954052 +vt 0.939469 0.798640 +vt 0.939469 0.954242 +vt 0.954784 0.954387 +vt 0.446153 0.643264 +vt 0.466264 0.753669 +vt 0.446153 0.756293 +vt 0.919325 0.628412 +vt 0.931030 0.784282 +vt 0.919325 0.786634 +vt 0.455896 0.845517 +vt 0.426449 0.858847 +vt 0.413064 0.828895 +vt 0.951413 0.626882 +vt 0.951413 0.785104 +vt 0.965124 0.630260 +vt 0.965124 0.788482 +vt 0.558106 0.309986 +vt 0.534266 0.291505 +vt 0.558106 0.265345 +vt 0.649809 0.913850 +vt 0.629641 0.811030 +vt 0.649809 0.808378 +vt 0.974629 0.186956 +vt 0.954485 0.031543 +vt 0.974629 0.031353 +vt 0.939170 0.187291 +vt 0.954485 0.187146 +vt 0.783439 0.753943 +vt 0.805477 0.866022 +vt 0.763157 0.753943 +vt 0.797562 0.742852 +vt 0.825760 0.866022 +vt 0.524299 0.288708 +vt 0.501134 0.311287 +vt 0.488279 0.277876 +vt 0.243574 0.824501 +vt 0.263925 0.971658 +vt 0.243574 0.973069 +vt 0.263925 0.823089 +vt 0.277923 0.973516 +vt 0.596916 0.309355 +vt 0.582854 0.300639 +vt 0.593432 0.265345 +vt 0.089824 0.478880 +vt 0.170266 0.505415 +vt 0.087766 0.562968 +vt 0.079454 0.258437 +vt 0.088036 0.326273 +vt 0.004984 0.264880 +vt 0.007533 0.502417 +vt 0.040448 0.407441 +vt 0.141021 0.409294 +vt 0.030701 0.173750 +vt 0.233607 0.253216 +vt 0.165082 0.273088 +vt 0.220258 0.175754 +vt 0.475247 0.182575 +vt 0.405607 0.234021 +vt 0.405607 0.122839 +vt 0.646384 0.557634 +vt 0.564694 0.528928 +vt 0.654581 0.462084 +vt 0.322877 0.564613 +vt 0.243574 0.539989 +vt 0.316251 0.467180 +vt 0.129649 0.178823 +vt 0.322706 0.260193 +vt 0.243574 0.206804 +vt 0.315945 0.168461 +vt 0.493460 0.480794 +vt 0.488178 0.389694 +vt 0.564694 0.416919 +vt 0.723504 0.507936 +vt 0.405875 0.512866 +vt 0.173323 0.092841 +vt 0.085876 0.076415 +vt 0.149432 0.010056 +vt 0.322706 0.071038 +vt 0.243574 0.095622 +vt 0.288507 0.004984 +vt 0.488279 0.072406 +vt 0.546353 0.004984 +vt 0.567679 0.088801 +vt 0.539639 0.235123 +vt 0.500453 0.159735 +vt 0.597867 0.184442 +vt 0.475353 0.453195 +vt 0.405875 0.401690 +vt 0.478211 0.368535 +vt 0.692614 0.184443 +vt 0.654009 0.114442 +vt 0.625389 0.255378 +vt 0.322878 0.375469 +vt 0.388588 0.322849 +vt 0.643767 0.029692 +vt 0.388648 0.021804 +vt 0.720981 0.088801 +vt 0.699657 0.004984 +vt 0.232484 0.071449 +vt 0.050485 0.004984 +vt 0.004984 0.084212 +vt 0.243574 0.428813 +vt 0.288282 0.339611 +vt 0.723503 0.395926 +vt 0.646383 0.367071 +vt 0.578065 0.322849 +vt 0.478310 0.087364 +vt 0.676213 0.603119 +vt 0.478210 0.548420 +vt 0.388586 0.613909 +vt 0.288280 0.630672 +vt 0.091154 0.336241 +vt 0.004984 0.354594 +vt 0.578064 0.616092 +vt 0.488178 0.570927 +vt 0.478311 0.267259 +vt 0.004984 0.584893 +vt 0.388650 0.312881 +vt 0.220972 0.434216 +vt 0.167718 0.587891 +vt 0.085488 0.619196 +vt 0.778217 0.378093 +vt 0.796764 0.430485 +vt 0.733471 0.409849 +vt 0.835881 0.376716 +vt 0.733471 0.343326 +vt 0.796765 0.322849 +vt 0.127884 0.810182 +vt 0.128662 0.863518 +vt 0.071821 0.830361 +vt 0.399219 0.928222 +vt 0.344557 0.903484 +vt 0.401781 0.869538 +vt 0.004984 0.897585 +vt 0.004984 0.831007 +vt 0.061854 0.864377 +vt 0.771220 0.942074 +vt 0.763157 0.875989 +vt 0.824413 0.902035 +vt 0.127884 0.917901 +vt 0.071821 0.896935 +vt 0.344557 0.837524 +vt 0.060958 0.810182 +vt 0.060958 0.917907 +vt 0.824413 0.956819 +vt 0.399219 0.821498 +vt 0.770625 0.440453 +vt 0.830740 0.463426 +vt 0.798237 0.490281 +vt 0.733471 0.492275 +vt 0.770624 0.547277 +vt 0.830740 0.529448 +vt 0.786506 0.199667 +vt 0.770065 0.252015 +vt 0.730949 0.198147 +vt 0.770066 0.144379 +vt 0.833359 0.231538 +vt 0.833359 0.165015 +vt 0.548797 0.916096 +vt 0.488178 0.895772 +vt 0.542161 0.862759 +vt 0.170700 0.860248 +vt 0.227971 0.881050 +vt 0.171596 0.914442 +vt 0.558764 0.912616 +vt 0.566028 0.850786 +vt 0.619673 0.888336 +vt 0.719316 0.895302 +vt 0.662905 0.861855 +vt 0.719316 0.828727 +vt 0.488178 0.829197 +vt 0.548797 0.808378 +vt 0.227971 0.947628 +vt 0.619672 0.823914 +vt 0.662127 0.808519 +vt 0.662127 0.916237 +vt 0.823273 0.626060 +vt 0.817654 0.674466 +vt 0.763157 0.643889 +vt 0.558764 0.808377 +vt 0.823272 0.732884 +vt 0.860425 0.681062 +vt 0.763157 0.709911 +vt 0.559827 0.714518 +vt 0.589524 0.798410 +vt 0.488178 0.765367 +vt 0.652160 0.712314 +vt 0.488178 0.658848 +vt 0.589526 0.626060 +vt 0.333344 0.640639 +vt 0.334590 0.726042 +vt 0.243574 0.672950 +vt 0.432083 0.811530 +vt 0.344557 0.771918 +vt 0.436185 0.717563 +vt 0.662127 0.766011 +vt 0.662127 0.659405 +vt 0.753189 0.712838 +vt 0.743860 0.110800 +vt 0.730949 0.004984 +vt 0.829035 0.046688 +vt 0.333344 0.813122 +vt 0.243574 0.779551 +vt 0.344557 0.666302 +vt 0.751755 0.626060 +vt 0.751755 0.798551 +vt 0.829035 0.134411 +vt 0.432084 0.640639 +vt 0.064475 0.629164 +vt 0.160733 0.665950 +vt 0.108688 0.708950 +vt 0.004984 0.712143 +vt 0.064473 0.800215 +vt 0.160733 0.771666 +vt 0.882285 0.031353 +vt 0.894767 0.322849 +vt 0.973399 0.322849 +vt 0.797126 0.267035 +vt 0.817002 0.261983 +vt 0.832941 0.296909 +vt 0.797126 0.306014 +vt 0.909357 0.627066 +vt 0.761409 0.261983 +vt 0.778312 0.275491 +vt 0.761409 0.310604 +vt 0.730949 0.286262 +vt 0.845849 0.323640 +vt 0.941816 0.543363 +vt 0.892252 0.253436 +vt 0.799749 0.599995 +vt 0.790850 0.580279 +vt 0.819747 0.557245 +vt 0.835784 0.592771 +vt 0.170700 0.629164 +vt 0.733471 0.570732 +vt 0.750392 0.557245 +vt 0.780882 0.581514 +vt 0.750392 0.605817 +vt 0.919324 0.798450 +vt 0.954784 0.798784 +vt 0.466264 0.640639 +vt 0.931030 0.626060 +vt 0.411748 0.845517 +vt 0.429406 0.821498 +vt 0.448468 0.828895 +vt 0.571336 0.275601 +vt 0.571336 0.295468 +vt 0.541609 0.308222 +vt 0.541608 0.272423 +vt 0.629641 0.916503 +vt 0.939170 0.031688 +vt 0.839883 0.854931 +vt 0.517165 0.307008 +vt 0.488279 0.298321 +vt 0.501134 0.265345 +vt 0.517165 0.270166 +vt 0.277923 0.824948 +vt 0.581304 0.281052 +vt 0.610106 0.265345 +vt 0.618770 0.281052 +vt 0.612900 0.300639 +s 1 +usemtl Material +f 2/1/2 3/2/3 1/3/1 +f 4/4/4 5/5/5 3/2/3 +f 5/6/5 8/7/8 7/8/7 +f 7/8/7 10/9/10 9/10/9 +f 9/11/9 12/12/12 11/13/11 +f 2/14/2 12/15/12 8/16/8 +f 12/17/12 13/18/13 11/19/11 +f 14/20/14 1/21/1 13/18/13 +f 3/22/3 7/23/7 11/24/11 +f 17/25/17 16/26/16 15/27/15 +f 19/28/19 18/29/18 17/25/17 +f 19/30/19 22/31/22 20/32/20 +f 21/33/21 24/34/24 22/35/22 +f 23/36/23 26/37/26 24/34/24 +f 20/38/20 24/39/24 28/40/28 +f 27/41/27 26/42/26 25/43/25 +f 15/44/15 28/45/28 27/41/27 +f 27/46/27 23/47/23 19/48/19 +f 29/49/29 32/50/32 31/51/31 +f 31/52/31 34/53/34 33/54/33 +f 34/53/34 35/55/35 33/54/33 +f 36/56/36 37/57/37 35/58/35 +f 38/59/38 39/60/39 37/61/37 +f 34/62/34 30/63/30 40/64/40 +f 39/60/39 42/65/42 41/66/41 +f 41/66/41 30/67/30 29/68/29 +f 31/69/31 35/70/35 39/71/39 +f 43/72/43 46/73/46 44/74/44 +f 45/75/45 48/76/48 46/77/46 +f 49/78/49 48/76/48 47/79/47 +f 51/80/51 50/81/50 49/82/49 +f 53/83/53 52/84/52 51/80/51 +f 44/85/44 48/86/48 52/87/52 +f 53/88/53 56/89/56 54/90/54 +f 55/91/55 44/92/44 56/89/56 +f 47/93/47 45/94/45 55/95/55 +f 57/96/57 70/97/70 69/98/69 +f 58/99/58 70/100/70 72/101/72 +f 57/96/57 69/98/69 74/102/74 +f 57/96/57 74/102/74 76/103/76 +f 57/96/57 76/103/76 73/104/73 +f 58/99/58 72/101/72 79/105/79 +f 59/106/59 71/107/71 81/108/81 +f 60/109/60 75/110/75 83/111/83 +f 61/112/61 77/113/77 85/114/85 +f 62/115/62 78/116/78 87/117/87 +f 58/99/58 79/105/79 82/118/82 +f 59/119/59 81/120/81 84/121/84 +f 60/122/60 83/123/83 86/124/86 +f 61/112/61 85/114/85 88/125/88 +f 62/115/62 87/117/87 80/126/80 +f 63/127/63 89/128/89 94/129/94 +f 64/130/64 90/131/90 96/132/96 +f 65/133/65 91/134/91 97/135/97 +f 66/136/66 92/137/92 98/138/98 +f 67/139/67 93/140/93 95/141/95 +f 95/142/95 98/138/98 68/143/68 +f 95/142/95 93/144/93 98/138/98 +f 93/140/93 66/145/66 98/146/98 +f 98/138/98 97/135/97 68/143/68 +f 98/138/98 92/137/92 97/135/97 +f 92/137/92 65/133/65 97/135/97 +f 97/135/97 96/147/96 68/143/68 +f 97/135/97 91/134/91 96/147/96 +f 91/148/91 64/130/64 96/132/96 +f 96/147/96 94/149/94 68/143/68 +f 96/147/96 90/150/90 94/149/94 +f 90/151/90 63/127/63 94/129/94 +f 94/149/94 95/142/95 68/143/68 +f 94/129/94 89/128/89 95/152/95 +f 89/128/89 67/153/67 95/152/95 +f 80/126/80 93/140/93 67/139/67 +f 80/126/80 87/117/87 93/140/93 +f 87/117/87 66/145/66 93/140/93 +f 88/154/88 92/155/92 66/145/66 +f 88/125/88 85/114/85 92/156/92 +f 85/114/85 65/157/65 92/156/92 +f 86/124/86 91/158/91 65/157/65 +f 86/159/86 83/111/83 91/148/91 +f 83/111/83 64/130/64 91/148/91 +f 84/121/84 90/131/90 64/130/64 +f 84/121/84 81/120/81 90/131/90 +f 81/108/81 63/127/63 90/151/90 +f 82/118/82 89/128/89 63/127/63 +f 82/118/82 79/105/79 89/128/89 +f 79/105/79 67/153/67 89/128/89 +f 87/117/87 88/154/88 66/145/66 +f 87/117/87 78/116/78 88/154/88 +f 78/160/78 61/112/61 88/125/88 +f 85/114/85 86/124/86 65/157/65 +f 85/114/85 77/113/77 86/124/86 +f 77/113/77 60/122/60 86/124/86 +f 83/111/83 84/121/84 64/130/64 +f 83/111/83 75/110/75 84/121/84 +f 75/110/75 59/119/59 84/121/84 +f 81/108/81 82/118/82 63/127/63 +f 81/108/81 71/107/71 82/118/82 +f 71/107/71 58/99/58 82/118/82 +f 79/161/79 80/126/80 67/139/67 +f 79/161/79 72/162/72 80/126/80 +f 72/162/72 62/115/62 80/126/80 +f 73/163/73 78/116/78 62/115/62 +f 73/104/73 76/103/76 78/164/78 +f 76/103/76 61/165/61 78/164/78 +f 76/166/76 77/113/77 61/112/61 +f 76/166/76 74/167/74 77/113/77 +f 74/167/74 60/122/60 77/113/77 +f 74/168/74 75/110/75 60/109/60 +f 74/102/74 69/98/69 75/169/75 +f 69/170/69 59/119/59 75/110/75 +f 72/162/72 73/163/73 62/115/62 +f 72/171/72 70/97/70 73/104/73 +f 70/97/70 57/96/57 73/104/73 +f 69/98/69 71/172/71 59/173/59 +f 69/98/69 70/97/70 71/172/71 +f 70/100/70 58/99/58 71/107/71 +f 99/174/57 100/175/99 101/176/100 +f 100/175/99 99/174/57 104/177/103 +f 99/174/57 101/176/100 102/178/101 +f 99/174/57 102/178/101 103/179/102 +f 99/174/57 103/179/102 104/177/103 +f 100/180/99 104/181/103 109/182/108 +f 101/183/100 100/184/99 105/185/104 +f 102/186/101 101/187/100 106/188/105 +f 103/189/102 102/190/101 107/191/106 +f 104/181/103 103/192/102 108/193/107 +f 100/184/99 109/194/108 105/185/104 +f 101/187/100 105/195/104 106/188/105 +f 102/186/101 106/188/105 107/196/106 +f 103/189/102 107/191/106 108/197/107 +f 104/181/103 108/193/107 109/182/108 +f 105/185/104 109/194/108 110/198/68 +f 106/199/105 105/200/104 110/201/68 +f 107/202/106 106/199/105 110/201/68 +f 108/203/107 107/202/106 110/201/68 +f 109/204/108 108/203/107 110/201/68 +f 111/205/57 113/206/110 112/207/109 +f 112/207/109 116/208/113 111/205/57 +f 111/205/57 114/209/111 113/206/110 +f 111/205/57 115/210/112 114/209/111 +f 111/205/57 116/208/113 115/210/112 +f 112/211/109 121/212/118 116/213/113 +f 113/214/110 117/215/114 112/216/109 +f 114/217/111 118/218/115 113/219/110 +f 115/220/112 119/221/116 114/222/111 +f 116/213/113 120/223/117 115/224/112 +f 112/216/109 117/215/114 121/225/118 +f 113/219/110 118/218/115 117/226/114 +f 114/222/111 119/221/116 118/227/115 +f 115/220/112 120/228/117 119/221/116 +f 116/213/113 121/212/118 120/223/117 +f 117/229/114 122/230/68 121/231/118 +f 118/218/115 122/232/68 117/226/114 +f 119/233/116 122/230/68 118/234/115 +f 120/235/117 122/230/68 119/233/116 +f 121/231/118 122/230/68 120/235/117 +f 123/236/57 124/237/99 125/238/100 +f 124/237/99 123/236/57 128/239/103 +f 123/236/57 125/238/100 126/240/101 +f 123/236/57 126/240/101 127/241/102 +f 123/236/57 127/241/102 128/239/103 +f 124/242/99 128/243/103 133/244/108 +f 125/245/100 124/246/99 129/247/104 +f 126/248/101 125/249/100 130/250/105 +f 127/251/102 126/252/101 131/253/106 +f 128/243/103 127/254/102 132/255/107 +f 124/246/99 133/256/108 129/247/104 +f 125/249/100 129/257/104 130/250/105 +f 126/248/101 130/250/105 131/258/106 +f 127/251/102 131/253/106 132/259/107 +f 128/243/103 132/255/107 133/244/108 +f 129/247/104 133/256/108 134/260/68 +f 130/261/105 129/262/104 134/263/68 +f 131/264/106 130/261/105 134/263/68 +f 132/265/107 131/264/106 134/263/68 +f 133/266/108 132/265/107 134/263/68 +f 2/1/2 4/4/4 3/2/3 +f 4/4/4 6/267/6 5/5/5 +f 5/6/5 6/268/6 8/7/8 +f 7/8/7 8/7/8 10/9/10 +f 9/11/9 10/269/10 12/12/12 +f 6/270/6 4/271/4 2/14/2 +f 2/14/2 14/272/14 12/15/12 +f 12/15/12 10/273/10 8/16/8 +f 8/16/8 6/270/6 2/14/2 +f 12/17/12 14/20/14 13/18/13 +f 14/20/14 2/274/2 1/21/1 +f 13/275/13 1/276/1 3/22/3 +f 3/22/3 5/277/5 7/23/7 +f 7/23/7 9/278/9 11/24/11 +f 11/24/11 13/275/13 3/22/3 +f 17/25/17 18/29/18 16/26/16 +f 19/28/19 20/279/20 18/29/18 +f 19/30/19 21/280/21 22/31/22 +f 21/33/21 23/36/23 24/34/24 +f 23/36/23 25/281/25 26/37/26 +f 16/282/16 18/283/18 28/40/28 +f 18/283/18 20/38/20 28/40/28 +f 20/38/20 22/284/22 24/39/24 +f 24/39/24 26/285/26 28/40/28 +f 27/41/27 28/45/28 26/42/26 +f 15/44/15 16/286/16 28/45/28 +f 17/287/17 15/288/15 19/48/19 +f 15/288/15 27/46/27 19/48/19 +f 27/46/27 25/289/25 23/47/23 +f 23/47/23 21/290/21 19/48/19 +f 29/49/29 30/63/30 32/50/32 +f 31/52/31 32/291/32 34/53/34 +f 34/53/34 36/292/36 35/55/35 +f 36/56/36 38/293/38 37/57/37 +f 38/59/38 40/294/40 39/60/39 +f 34/62/34 32/50/32 30/63/30 +f 30/63/30 42/295/42 40/64/40 +f 40/64/40 38/296/38 36/297/36 +f 36/297/36 34/62/34 40/64/40 +f 39/60/39 40/294/40 42/65/42 +f 41/66/41 42/65/42 30/67/30 +f 41/298/41 29/299/29 39/71/39 +f 29/299/29 31/69/31 39/71/39 +f 31/69/31 33/300/33 35/70/35 +f 35/70/35 37/301/37 39/71/39 +f 43/72/43 45/302/45 46/73/46 +f 45/75/45 47/79/47 48/76/48 +f 49/78/49 50/303/50 48/76/48 +f 51/80/51 52/84/52 50/81/50 +f 53/83/53 54/304/54 52/84/52 +f 44/85/44 46/305/46 48/86/48 +f 48/86/48 50/306/50 52/87/52 +f 52/87/52 54/307/54 56/308/56 +f 56/308/56 44/85/44 52/87/52 +f 53/88/53 55/91/55 56/89/56 +f 55/91/55 43/309/43 44/92/44 +f 45/94/45 43/310/43 55/95/55 +f 55/95/55 53/311/53 47/93/47 +f 53/311/53 51/312/51 47/93/47 +f 51/312/51 49/313/49 47/93/47 diff --git a/blender/Samantha-Base.png b/blender/Samantha-Base.png Binary files differnew file mode 100644 index 0000000..6ffb33f --- /dev/null +++ b/blender/Samantha-Base.png diff --git a/blender/Samantha.blend b/blender/Samantha.blend Binary files differnew file mode 100644 index 0000000..b9a67a0 --- /dev/null +++ b/blender/Samantha.blend diff --git a/blender/Samantha.png b/blender/Samantha.png Binary files differnew file mode 100644 index 0000000..29c6543 --- /dev/null +++ b/blender/Samantha.png @@ -101,6 +101,6 @@ generated first than rest of the world will be based around it. + [X] Sky + [X] Pond + [X] Power lines -+ [ ] Buildings ++ [ ] Places + [ ] Roads diff --git a/src/assets.c b/src/assets.c index 4072988..c6efaeb 100644 --- a/src/assets.c +++ b/src/assets.c @@ -18,7 +18,8 @@ const char shaderAssetNames[SHADER_ASSET_COUNT][FT_NAMEMAX] = { }; const char modelAssetPaths[MODEL_ASSET_COUNT][FT_NAMEMAX] = { - "UtilityPole.obj" + "UtilityPole.obj", + "Samantha.obj" }; void initShaderAssets(Shader shaders[SHADER_ASSET_COUNT]) diff --git a/src/assets.h b/src/assets.h index de849b0..8404cd2 100644 --- a/src/assets.h +++ b/src/assets.h @@ -6,7 +6,7 @@ #define TEXTURE_ASSET_COUNT 5 #define IMAGE_ASSET_COUNT 1 #define SHADER_ASSET_COUNT 2 -#define MODEL_ASSET_COUNT 1 +#define MODEL_ASSET_COUNT 2 extern const char textureAssetPaths[TEXTURE_ASSET_COUNT][FT_NAMEMAX]; extern const char imageAssetPaths[IMAGE_ASSET_COUNT][FT_NAMEMAX]; @@ -37,7 +37,8 @@ enum { // Model asset ids. enum { - UTILITY_POLE_MODEL + UTILITY_POLE_MODEL, + SAMANTHA_MODEL }; typedef struct { diff --git a/src/entity.c b/src/entity.c index 711a701..8017de0 100644 --- a/src/entity.c +++ b/src/entity.c @@ -49,12 +49,10 @@ Entity createEntity(EntityId id, Vector3 position) }; break; - case SAMANTHAS_SPOT: + case SAMANTHA: entity.box = (BoundingBox){ - .min = (Vector3){-SAMANTHAS_SPOT_SIZE, -SAMANTHAS_SPOT_HEIGHT, - -SAMANTHAS_SPOT_SIZE}, - .max = (Vector3){SAMANTHAS_SPOT_SIZE, SAMANTHAS_SPOT_HEIGHT, - SAMANTHAS_SPOT_SIZE} + .min = (Vector3){-SAMANTHA_WIDTH, -SAMANTHA_HEIGHT, -SAMANTHA_WIDTH}, + .max = (Vector3){SAMANTHA_WIDTH, SAMANTHA_HEIGHT, SAMANTHA_WIDTH} }; break; @@ -70,7 +68,7 @@ Entity createEntity(EntityId id, Vector3 position) // TODO: Mesh instance the utility poles and make a 3d model void updateEntity(Entity* entity, Game* game) { - DrawBoundingBox(entity->box, RED); + // DrawBoundingBox(entity->box, RED); switch (entity->id) { @@ -99,13 +97,9 @@ void updateEntity(Entity* entity, Game* game) Vector3Add(entity->position, (Vector3){0.0, POND_HEIGHT * 2.0, 0.0}), (Vector2){POND_SIZE * 2.5, POND_SIZE * 2.5}, BLUE); break; - case UTILITY_POLE: - /* DrawCylinder(Vector3Subtract(entity->position, */ - /* (Vector3){0.0, UTILITY_POLE_HEIGHT}), */ - /* UTILITY_POLE_RADIUS, UTILITY_POLE_RADIUS, */ - /* UTILITY_POLE_HEIGHT * 2.0, 6, BROWN); */ - /* DrawModel(game->assets.models[UTILITY_POLE_MODEL], entity->position, 1.0, */ - /* BROWN); */ + case SAMANTHA: + DrawModel(game->assets.models[SAMANTHA_MODEL], entity->position, 1.0, + WHITE); break; default: break; diff --git a/src/entity.h b/src/entity.h index 4f673f9..3a2fd15 100644 --- a/src/entity.h +++ b/src/entity.h @@ -17,8 +17,8 @@ #define UTILITY_POLE_HEIGHT 100.0 #define UTILITY_POLE_RADIUS 3.0 -#define SAMANTHAS_SPOT_SIZE 20.0 -#define SAMANTHAS_SPOT_HEIGHT 5.0 +#define SAMANTHA_WIDTH 1.0 +#define SAMANTHA_HEIGHT 1.0 typedef int8_t EntityId; @@ -31,7 +31,7 @@ enum { FLOWER, POND, UTILITY_POLE, - SAMANTHAS_SPOT + SAMANTHA }; typedef struct { diff --git a/src/world.c b/src/world.c index bf486e3..026a5ed 100644 --- a/src/world.c +++ b/src/world.c @@ -674,9 +674,14 @@ World createWorld(Seed seed, const Assets* assets) // Items. start = end; - end = WORLD_ENTITY_MAX; + end = WORLD_ENTITY_MAX - 1; seed = generateWorldItems(&world, seed, start, end); + // Test Samantha. + Entity samantha = createEntity(SAMANTHA, Vector3Scale(world.size, 0.5)); + placeEntityOnGround(&samantha, &world); + world.entities[WORLD_ENTITY_MAX - 1] = samantha; + // Generate BVH. double currentTime = GetTime(); buildWorldBVH(&world); diff --git a/src/world.h b/src/world.h index 0cdaf30..9e5c4c4 100644 --- a/src/world.h +++ b/src/world.h @@ -5,7 +5,7 @@ #ifndef WORLD_H #define WORLD_H -#define WORLD_ENTITY_MAX 5000 +#define WORLD_ENTITY_MAX 5001 #define WORLD_PLANT_COUNT 2500 #define WORLD_UTILITY_POLE_COUNT 25 #define WORLD_PLACE_COUNT 1 |