diff --git a/Game.cpp b/Game.cpp index 210201b..7f278ee 100755 --- a/Game.cpp +++ b/Game.cpp @@ -25,6 +25,7 @@ namespace ZL std::shared_ptr backgroundTexturePtr; std::shared_ptr pipeTexturePtr; std::shared_ptr gameOverTexturePtr; + std::shared_ptr testObjTexturePtr; VertexRenderStruct birdMesh; diff --git a/Game.h b/Game.h index 969be5c..d291fc9 100755 --- a/Game.h +++ b/Game.h @@ -97,6 +97,7 @@ namespace ZL extern std::shared_ptr backgroundTexturePtr; extern std::shared_ptr pipeTexturePtr; extern std::shared_ptr gameOverTexturePtr; + extern std::shared_ptr testObjTexturePtr; extern VertexRenderStruct birdMesh; diff --git a/TextureManager.cpp b/TextureManager.cpp index f7c7a08..9053dc9 100755 --- a/TextureManager.cpp +++ b/TextureManager.cpp @@ -1,4 +1,5 @@ #include "TextureManager.h" +#include "png.h" namespace ZL { @@ -163,5 +164,113 @@ namespace ZL return texData; } + TextureDataStruct CreateTextureDataFromPng(const std::string& fullFileName) + { + TextureDataStruct texData; + + FILE* file = fopen(fullFileName.c_str(), "rb"); + if (!file) { + fclose(file); + throw std::runtime_error("Could not open file " + fullFileName); + } + + png_structp png = png_create_read_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr); + if (!png) { + fclose(file); + throw std::runtime_error("Could not create PNG read structure"); + } + + png_infop info = png_create_info_struct(png); + if (!info) { + fclose(file); + png_destroy_read_struct(&png, nullptr, nullptr); + throw std::runtime_error("Could not create PNG info structure"); + } + + if (setjmp(png_jmpbuf(png))) { + png_destroy_read_struct(&png, &info, nullptr); + fclose(file); + throw std::runtime_error("Error during PNG read"); + } + + png_init_io(png, file); + png_read_info(png, info); + + texData.width = png_get_image_width(png, info); + texData.height = png_get_image_height(png, info); + png_byte color_type = png_get_color_type(png, info); + png_byte bit_depth = png_get_bit_depth(png, info); + + if (bit_depth == 16) + png_set_strip_16(png); + + if (color_type == PNG_COLOR_TYPE_PALETTE) + png_set_palette_to_rgb(png); + + if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) + png_set_expand_gray_1_2_4_to_8(png); + + if (png_get_valid(png, info, PNG_INFO_tRNS)) + png_set_tRNS_to_alpha(png); + + if (color_type == PNG_COLOR_TYPE_RGB || + color_type == PNG_COLOR_TYPE_GRAY || + color_type == PNG_COLOR_TYPE_PALETTE) + png_set_filler(png, 0xFF, PNG_FILLER_AFTER); + + if (color_type == PNG_COLOR_TYPE_GRAY || + color_type == PNG_COLOR_TYPE_GRAY_ALPHA) + png_set_gray_to_rgb(png); + + png_read_update_info(png, info); + + + png_bytep* row_pointers = (png_bytep*)malloc(sizeof(png_bytep) * texData.height); + for (int y = 0; y < texData.height; y++) { + row_pointers[y] = (png_byte*)malloc(png_get_rowbytes(png, info)); + } + + png_read_image(png, row_pointers); + + fclose(file); + + bool has_alpha = (color_type & PNG_COLOR_MASK_ALPHA) || (png_get_valid(png, info, PNG_INFO_tRNS)); + + size_t dataSize; + + if (has_alpha) + { + texData.bitSize = TextureDataStruct::BS_32BIT; + } + else + { + texData.bitSize = TextureDataStruct::BS_24BIT; + } + + int channels = has_alpha ? 4 : 3; + + dataSize = texData.width * texData.height * channels; + texData.data.resize(dataSize); + + + for (int y = 0; y < texData.height; y++) { + png_bytep row = row_pointers[y]; + for (int x = 0; x < texData.width; x++) { + png_bytep px = &(row[x * 4]); + texData.data[(y * texData.width + x) * channels + 0] = px[0]; // R + texData.data[(y * texData.width + x) * channels + 1] = px[1]; // G + texData.data[(y * texData.width + x) * channels + 2] = px[2]; // B + if (has_alpha) { + texData.data[(y * texData.width + x) * channels + 3] = px[3]; // A + } + } + free(row_pointers[y]); + } + free(row_pointers); + + png_destroy_read_struct(&png, &info, nullptr); + + return texData; + } } \ No newline at end of file diff --git a/TextureManager.h b/TextureManager.h index 19c4644..ada4eba 100755 --- a/TextureManager.h +++ b/TextureManager.h @@ -41,4 +41,5 @@ namespace ZL TextureDataStruct CreateTextureDataFromBmp24(const std::string& fullFileName); TextureDataStruct CreateTextureDataFromBmp32(const std::string& fullFileName); + TextureDataStruct CreateTextureDataFromPng(const std::string& fullFileName); } diff --git a/chair_01.obj b/chair_01.obj new file mode 100644 index 0000000..b2d1c58 --- /dev/null +++ b/chair_01.obj @@ -0,0 +1,845 @@ +# File produced by Open Asset Import Library (http://www.assimp.sf.net) +# (assimp v3.1.243586452) + +adobe_mdllib chair_03.mdl + +# vertex positions +v 0.174148 0.345293 0.193496 +v 0.174148 0.372476 0.193496 +v -0.174148 0.372476 0.193496 +v -0.174148 0.345293 0.193496 +v -0.132761 0.345293 -0.198900 +v -0.132761 0.372476 -0.198900 +v 0.132761 0.372476 -0.198900 +v 0.132761 0.345293 -0.198900 +v 0.188859 0.345293 -0.135453 +v 0.188859 0.372476 -0.135453 +v 0.193496 0.372476 0.174149 +v 0.193496 0.345293 0.174149 +v -0.193496 0.345293 0.174149 +v -0.193496 0.372476 0.174149 +v -0.188859 0.372476 -0.135453 +v -0.188859 0.345293 -0.135453 +v 0.159079 0.372476 -0.185720 +v 0.159079 0.345293 -0.185720 +v 0.179627 0.372476 -0.164475 +v 0.179627 0.345293 -0.164475 +v -0.179627 0.372476 -0.164475 +v -0.179627 0.345293 -0.164475 +v -0.159079 0.372476 -0.185720 +v -0.159079 0.345293 -0.185720 +v 0.187829 0.345293 0.187829 +v 0.187829 0.372476 0.187829 +v -0.187829 0.345293 0.187829 +v -0.187829 0.372476 0.187829 +v -0.159554 0.275653 -0.156458 +v -0.184846 0.275653 -0.156458 +v -0.184846 0.141308 -0.165571 +v -0.159554 0.141308 -0.165571 +v -0.184846 0.275653 -0.195924 +v -0.159554 0.275653 -0.195924 +v -0.159554 0.141308 -0.201722 +v -0.184846 0.141308 -0.201722 +v -0.184846 0.000000 -0.214654 +v -0.159554 0.000000 -0.214654 +v -0.159554 0.000000 -0.185918 +v -0.184846 0.000000 -0.185918 +v -0.159554 0.406973 -0.202951 +v -0.159554 0.406973 -0.162999 +v -0.184846 0.406973 -0.162999 +v -0.184846 0.406973 -0.202951 +v -0.159554 0.857491 -0.245516 +v -0.159554 0.857491 -0.221878 +v -0.184846 0.857491 -0.221878 +v -0.184846 0.857491 -0.245516 +v -0.159554 0.347038 0.180502 +v -0.184846 0.347038 0.180502 +v -0.184846 0.000000 0.180502 +v -0.159554 0.000000 0.180502 +v -0.184846 0.347038 0.134330 +v -0.159554 0.347038 0.134330 +v -0.159554 0.000000 0.151766 +v -0.184846 0.000000 0.151766 +v -0.179757 0.318788 -0.164206 +v -0.166843 0.318788 -0.164206 +v -0.166843 0.318788 0.137869 +v -0.179757 0.318788 0.137869 +v -0.179757 0.347524 -0.164206 +v -0.179757 0.347524 0.137869 +v -0.166843 0.347524 -0.164206 +v -0.166843 0.347524 0.137869 +v 0.100121 0.879784 -0.259162 +v 0.100121 0.883241 -0.227301 +v 0.200242 0.884241 -0.218089 +v 0.200242 0.880783 -0.249950 +v 0.100121 0.843428 -0.254019 +v 0.193565 0.844428 -0.244806 +v 0.100121 0.846757 -0.223342 +v 0.193565 0.847757 -0.214129 +v -0.100121 0.883241 -0.227301 +v -0.200242 0.884241 -0.218089 +v -0.193565 0.847757 -0.214129 +v -0.100121 0.846757 -0.223342 +v -0.193565 0.844428 -0.244806 +v -0.100121 0.843428 -0.254019 +v -0.200242 0.880783 -0.249950 +v -0.100121 0.879784 -0.259162 +v 0.000000 0.882942 -0.230053 +v 0.000000 0.846459 -0.226093 +v 0.000000 0.843129 -0.256771 +v 0.000000 0.879485 -0.261914 +v 0.166884 0.318788 -0.164206 +v 0.179797 0.318788 -0.164206 +v 0.179797 0.318788 0.137869 +v 0.166884 0.318788 0.137869 +v 0.166884 0.347524 -0.164206 +v 0.166884 0.347524 0.137869 +v 0.179797 0.347524 -0.164206 +v 0.179797 0.347524 0.137869 +v 0.085696 0.442857 -0.201557 +v 0.085696 0.445319 -0.178867 +v 0.171392 0.446319 -0.169654 +v 0.171392 0.443856 -0.192344 +v 0.085696 0.408515 -0.197830 +v 0.171392 0.409514 -0.188617 +v 0.085696 0.410977 -0.175140 +v 0.171392 0.411977 -0.165927 +v -0.085696 0.445319 -0.178867 +v -0.171392 0.446319 -0.169654 +v -0.171392 0.411977 -0.165927 +v -0.085696 0.410977 -0.175140 +v -0.171392 0.409514 -0.188617 +v -0.085696 0.408515 -0.197830 +v -0.171392 0.443856 -0.192344 +v -0.085696 0.442857 -0.201557 +v 0.000000 0.445020 -0.181618 +v 0.000000 0.410678 -0.177892 +v 0.000000 0.408216 -0.200581 +v 0.000000 0.442558 -0.204308 +v 0.172319 0.318788 0.164549 +v 0.172319 0.318788 0.177462 +v -0.172319 0.318788 0.177462 +v -0.172319 0.318788 0.164549 +v 0.172319 0.347524 0.164549 +v -0.172319 0.347524 0.164549 +v 0.172319 0.347524 0.177462 +v -0.172319 0.347524 0.177462 +v -0.162206 0.318788 -0.170740 +v -0.162206 0.318788 -0.183654 +v 0.162206 0.318788 -0.183654 +v 0.162206 0.318788 -0.170740 +v -0.162206 0.347524 -0.170740 +v 0.162206 0.347524 -0.170740 +v -0.162206 0.347524 -0.183654 +v 0.162206 0.347524 -0.183654 +v 0.184849 0.275653 -0.156458 +v 0.159558 0.275653 -0.156458 +v 0.159558 0.141308 -0.165571 +v 0.184849 0.141308 -0.165571 +v 0.159558 0.275653 -0.195924 +v 0.184849 0.275653 -0.195924 +v 0.184849 0.141308 -0.201722 +v 0.159558 0.141308 -0.201722 +v 0.159558 0.000000 -0.214654 +v 0.184849 0.000000 -0.214654 +v 0.184849 0.000000 -0.185918 +v 0.159558 0.000000 -0.185918 +v 0.184849 0.406973 -0.202951 +v 0.184849 0.406973 -0.162999 +v 0.159558 0.406973 -0.162999 +v 0.159558 0.406973 -0.202951 +v 0.184849 0.857491 -0.245516 +v 0.184849 0.857491 -0.221878 +v 0.159558 0.857491 -0.221878 +v 0.159558 0.857491 -0.245516 +v 0.184849 0.347038 0.180502 +v 0.159558 0.347038 0.180502 +v 0.159558 0.000000 0.180502 +v 0.184849 0.000000 0.180502 +v 0.159558 0.347038 0.134330 +v 0.184849 0.347038 0.134330 +v 0.184849 0.000000 0.151766 +v 0.159558 0.000000 0.151766 +v 0.055957 0.849196 -0.254543 +v 0.055957 0.849196 -0.236012 +v 0.046171 0.442297 -0.184164 +v 0.046171 0.442248 -0.200416 +v -0.055957 0.849196 -0.236012 +v -0.046171 0.442297 -0.184164 +v -0.046171 0.442248 -0.200416 +v -0.055957 0.849196 -0.254543 + +# UV coordinates +vt 0.964423 0.359152 +vt 0.986640 0.359152 +vt 0.986640 0.643817 +vt 0.964423 0.643817 +vt 0.927144 0.056003 +vt 0.949361 0.056003 +vt 0.949361 0.273015 +vt 0.927144 0.273015 +vt 0.964423 0.081879 +vt 0.986640 0.081879 +vt 0.986640 0.334947 +vt 0.964423 0.334947 +vt 0.964423 0.668022 +vt 0.986640 0.668022 +vt 0.986640 0.921089 +vt 0.964423 0.921089 +vt 0.949361 0.297072 +vt 0.927144 0.297072 +vt 0.986639 0.032832 +vt 0.986640 0.056989 +vt 0.964423 0.056989 +vt 0.964423 0.032832 +vt 0.986640 0.945980 +vt 0.964423 0.945980 +vt 0.986640 0.970136 +vt 0.964423 0.970136 +vt 0.949361 0.031947 +vt 0.927144 0.031947 +vt 0.964423 0.347049 +vt 0.986640 0.347049 +vt 0.964423 0.655919 +vt 0.986640 0.656015 +vt 0.669839 0.067030 +vt 0.361128 0.067030 +vt 0.368673 0.043311 +vt 0.662294 0.043311 +vt 0.329595 0.331251 +vt 0.022567 0.331250 +vt 0.017936 0.320069 +vt 0.334227 0.320069 +vt 0.021726 0.067030 +vt 0.330437 0.067030 +vt 0.318413 0.335882 +vt 0.033749 0.335882 +vt 0.322892 0.043311 +vt 0.029271 0.043311 +vt 0.046065 0.025947 +vt 0.306097 0.025947 +vt 0.067575 0.015175 +vt 0.284587 0.015175 +vt 0.357338 0.320069 +vt 0.673628 0.320069 +vt 0.645499 0.025947 +vt 0.385467 0.025947 +vt 0.406977 0.015175 +vt 0.623989 0.015175 +vt 0.361969 0.331251 +vt 0.668997 0.331251 +vt 0.657815 0.335882 +vt 0.373151 0.335882 +vt 0.800491 0.262909 +vt 0.779813 0.262948 +vt 0.778308 0.154256 +vt 0.798979 0.153763 +vt 0.747361 0.262738 +vt 0.726595 0.262527 +vt 0.728278 0.151507 +vt 0.748942 0.151858 +vt 0.729278 0.014576 +vt 0.730695 0.035200 +vt 0.707322 0.036833 +vt 0.705868 0.016208 +vt 0.694175 0.262023 +vt 0.698826 0.152901 +vt 0.751297 0.035617 +vt 0.774572 0.038174 +vt 0.795251 0.037488 +vt 0.725787 0.371235 +vt 0.693293 0.368633 +vt 0.799595 0.369478 +vt 0.778935 0.368930 +vt 0.746451 0.371309 +vt 0.725794 0.741375 +vt 0.706573 0.739566 +vt 0.786334 0.740284 +vt 0.765673 0.739551 +vt 0.746451 0.741370 +vt 0.487747 0.678448 +vt 0.467076 0.678448 +vt 0.467076 0.394812 +vt 0.487747 0.394812 +vt 0.429340 0.678448 +vt 0.408695 0.677411 +vt 0.422946 0.393775 +vt 0.443590 0.394812 +vt 0.424124 0.370319 +vt 0.444769 0.371356 +vt 0.525483 0.678448 +vt 0.511233 0.394812 +vt 0.229182 0.982798 +vt 0.218628 0.982798 +vt 0.218628 0.735910 +vt 0.229182 0.735910 +vt 0.252668 0.982798 +vt 0.252668 0.735910 +vt 0.195142 0.982798 +vt 0.195142 0.735910 +vt 0.301082 0.604823 +vt 0.327240 0.606274 +vt 0.327240 0.688857 +vt 0.301271 0.686576 +vt 0.271574 0.604993 +vt 0.271971 0.681439 +vt 0.357354 0.606336 +vt 0.357023 0.683392 +vt 0.382432 0.604915 +vt 0.382828 0.681147 +vt 0.327152 0.441180 +vt 0.327069 0.358601 +vt 0.356857 0.364037 +vt 0.357256 0.441096 +vt 0.381194 0.366258 +vt 0.381590 0.442492 +vt 0.270335 0.366073 +vt 0.301102 0.360908 +vt 0.300995 0.442661 +vt 0.270731 0.442520 +vt 0.327306 0.523731 +vt 0.357308 0.523711 +vt 0.382011 0.523698 +vt 0.300994 0.523744 +vt 0.271153 0.523759 +vt 0.481016 0.347955 +vt 0.507159 0.348790 +vt 0.506187 0.379217 +vt 0.481016 0.378414 +vt 0.572308 0.378061 +vt 0.546152 0.378061 +vt 0.547124 0.347618 +vt 0.572308 0.347618 +vt 0.317140 0.982798 +vt 0.306586 0.982798 +vt 0.306586 0.735910 +vt 0.317140 0.735910 +vt 0.340626 0.982798 +vt 0.340626 0.735910 +vt 0.283100 0.982798 +vt 0.283100 0.735910 +vt 0.396610 0.915941 +vt 0.415219 0.917174 +vt 0.415219 0.987949 +vt 0.396788 0.986062 +vt 0.368368 0.916020 +vt 0.368556 0.986238 +vt 0.443555 0.917253 +vt 0.443259 0.987914 +vt 0.462167 0.916073 +vt 0.461712 0.986082 +vt 0.415397 0.775838 +vt 0.415502 0.705145 +vt 0.443534 0.705088 +vt 0.443729 0.775882 +vt 0.461985 0.706957 +vt 0.462338 0.777088 +vt 0.368862 0.706746 +vt 0.397073 0.706986 +vt 0.396784 0.777047 +vt 0.368544 0.776898 +vt 0.415384 0.846519 +vt 0.443631 0.846554 +vt 0.462354 0.846574 +vt 0.396650 0.846496 +vt 0.368404 0.846460 +vt 0.056810 0.988213 +vt 0.046256 0.988213 +vt 0.046256 0.706538 +vt 0.056810 0.706538 +vt 0.080296 0.988213 +vt 0.080296 0.706538 +vt 0.022770 0.988213 +vt 0.022770 0.706538 +vt 0.144549 0.982877 +vt 0.133995 0.982886 +vt 0.133995 0.717741 +vt 0.144549 0.717733 +vt 0.168035 0.982859 +vt 0.168035 0.717715 +vt 0.110509 0.982904 +vt 0.110509 0.717760 +vt 0.835458 0.262897 +vt 0.814783 0.262827 +vt 0.816350 0.153685 +vt 0.837008 0.154198 +vt 0.888674 0.262477 +vt 0.867909 0.262713 +vt 0.866372 0.151815 +vt 0.887038 0.151471 +vt 0.884677 0.035172 +vt 0.886117 0.014615 +vt 0.909475 0.016250 +vt 0.908035 0.036810 +vt 0.916487 0.152869 +vt 0.921094 0.261971 +vt 0.840797 0.038112 +vt 0.864071 0.035561 +vt 0.820136 0.037420 +vt 0.868772 0.371264 +vt 0.836284 0.368880 +vt 0.815617 0.369389 +vt 0.921933 0.368597 +vt 0.889436 0.371199 +vt 0.868772 0.741330 +vt 0.848693 0.739430 +vt 0.828023 0.740118 +vt 0.909505 0.739446 +vt 0.889427 0.741336 +vt 0.601359 0.676759 +vt 0.580688 0.676759 +vt 0.580688 0.393123 +vt 0.601359 0.393123 +vt 0.659740 0.675722 +vt 0.639095 0.676759 +vt 0.624845 0.393123 +vt 0.645490 0.392086 +vt 0.623666 0.369667 +vt 0.644311 0.368630 +vt 0.542952 0.676759 +vt 0.557203 0.393123 +vt 0.135251 0.687029 +vt 0.120190 0.687028 +vt 0.113139 0.351667 +vt 0.126352 0.351667 +vt 0.028722 0.687029 +vt 0.037668 0.351667 +vt 0.024447 0.351667 +vt 0.013653 0.687029 +vt 0.245571 0.687113 +vt 0.154104 0.687113 +vt 0.162102 0.351583 +vt 0.237574 0.351583 + +# vertex normals +vn 0.015653 0.000000 0.999878 +vn -0.015653 0.000000 0.999878 +vn -0.045115 0.000000 -0.998982 +vn 0.045115 0.000000 -0.998982 +vn 0.999162 0.000000 -0.040922 +vn 0.999995 0.000000 0.003186 +vn -0.999995 0.000000 0.003186 +vn -0.999162 0.000000 -0.040922 +vn 0.591992 0.000000 -0.805943 +vn 0.860349 0.000000 -0.509706 +vn -0.860349 0.000000 -0.509706 +vn -0.591992 0.000000 -0.805943 +vn 0.382683 0.000000 0.923880 +vn 0.923880 0.000000 0.382684 +vn -0.923880 0.000000 0.382684 +vn -0.382683 0.000000 0.923880 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 -0.000001 +vn 0.000000 1.000000 -0.000000 +vn 0.000000 1.000000 -0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 1.000000 0.000001 +vn 0.000000 1.000000 0.000001 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 -1.000000 -0.000001 +vn 0.000000 -1.000000 0.000001 +vn 0.000000 -1.000000 0.000001 +vn 0.000000 -1.000000 0.000003 +vn 0.000000 -0.009682 0.999953 +vn 0.000000 -0.106269 0.994337 +vn 0.000000 -0.004625 -0.999989 +vn 0.000000 0.067791 -0.997700 +vn 0.000000 -1.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.091131 -0.995839 +vn -1.000000 0.000000 0.000000 +vn 0.000000 -0.142521 0.989792 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.111732 0.993738 +vn -1.000000 -0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 -0.084926 -0.996387 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.129590 0.991568 +vn 0.000000 -0.094062 -0.995566 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -0.050179 -0.998740 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 -1.000000 -0.000000 +vn -1.000000 0.000001 0.000000 +vn 1.000000 -0.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn -0.000000 0.994163 -0.107888 +vn -0.000000 0.994163 -0.107888 +vn 0.000001 0.994163 -0.107888 +vn 0.000001 0.994163 -0.107888 +vn 0.061008 -0.144045 -0.987689 +vn 0.060922 -0.144035 -0.987696 +vn 0.095232 -0.148007 -0.984391 +vn 0.095232 -0.148007 -0.984391 +vn -0.095309 0.116012 0.988665 +vn -0.061003 0.111934 0.991841 +vn -0.061003 0.111934 0.991841 +vn -0.000000 -0.994163 0.107888 +vn -0.000001 -0.994163 0.107887 +vn -0.000001 -0.994163 0.107887 +vn -0.000000 -0.994163 0.107888 +vn 0.061003 0.111934 0.991841 +vn 0.095309 0.116012 0.988665 +vn 0.061003 0.111934 0.991841 +vn 0.000001 -0.994163 0.107887 +vn 0.000000 -0.994163 0.107888 +vn 0.000000 -0.994163 0.107888 +vn 0.000001 -0.994163 0.107887 +vn -0.095232 -0.148007 -0.984391 +vn -0.095232 -0.148007 -0.984391 +vn -0.060922 -0.144035 -0.987696 +vn -0.061008 -0.144045 -0.987689 +vn -0.000001 0.994163 -0.107886 +vn 0.000000 0.994163 -0.107886 +vn 0.000000 0.994163 -0.107886 +vn -0.000000 0.107888 0.994163 +vn -0.000000 0.107888 0.994163 +vn 0.000000 -0.994163 0.107889 +vn 0.000000 -0.994163 0.107889 +vn 0.000000 -0.140076 -0.990141 +vn 0.000000 0.994163 -0.107887 +vn -0.000000 0.994163 -0.107887 +vn 0.983850 -0.177951 0.019312 +vn 0.983850 -0.177951 0.019312 +vn 0.983850 -0.177951 0.019312 +vn -0.983850 -0.177952 0.019310 +vn -0.983850 -0.177952 0.019310 +vn -0.983850 -0.177952 0.019310 +vn -0.983850 -0.177952 0.019310 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.994163 -0.107889 +vn 0.000000 0.994163 -0.107888 +vn -0.000000 0.994163 -0.107887 +vn 0.070043 -0.107622 -0.991721 +vn 0.070043 -0.107622 -0.991721 +vn 0.107510 -0.107262 -0.988401 +vn 0.107510 -0.107262 -0.988401 +vn -0.107510 0.107262 0.988401 +vn -0.070043 0.107622 0.991722 +vn -0.070043 0.107622 0.991721 +vn -0.000000 -0.994163 0.107888 +vn 0.000000 -0.994163 0.107889 +vn 0.000000 -0.994163 0.107889 +vn 0.000000 -0.994163 0.107888 +vn 0.070043 0.107622 0.991721 +vn 0.107510 0.107262 0.988401 +vn 0.107510 0.107262 0.988401 +vn 0.070043 0.107622 0.991721 +vn -0.000000 -0.994163 0.107887 +vn 0.000000 -0.994163 0.107888 +vn -0.000000 -0.994163 0.107888 +vn -0.107509 -0.107262 -0.988401 +vn -0.107509 -0.107262 -0.988401 +vn -0.070043 -0.107622 -0.991721 +vn -0.070043 -0.107622 -0.991721 +vn 0.000000 0.994163 -0.107886 +vn 0.000000 0.994163 -0.107885 +vn -0.000000 0.994163 -0.107886 +vn -0.000000 0.994163 -0.107886 +vn 0.000000 0.107887 0.994163 +vn -0.000000 0.107887 0.994163 +vn -0.000000 -0.994163 0.107888 +vn -0.000000 -0.994163 0.107888 +vn 0.000000 -0.107887 -0.994163 +vn -0.000000 0.994163 -0.107889 +vn 0.000000 0.994163 -0.107889 +vn -0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -0.009682 0.999953 +vn 0.000000 -0.106269 0.994337 +vn 1.000000 -0.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 -0.142521 0.989792 +vn 1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 -0.050179 -0.998740 +vn 0.999711 -0.024036 0.000033 +vn 0.999711 -0.024036 0.000033 +vn 0.999711 -0.024036 0.000033 +vn 0.999711 -0.024036 0.000033 +vn 0.000000 0.126400 0.991979 +vn 0.000000 0.126400 0.991979 +vn -0.999711 -0.024036 0.000033 +vn -0.999711 -0.024036 0.000033 +vn -0.999711 -0.024036 0.000033 +vn 0.000000 -0.131846 -0.991270 +vn 0.000000 -0.131846 -0.991270 + +# Mesh +g chair_01 +usemtl MATERIAL_CHAIR_01_ +f 4/4/2 1/1/1 2/2/1 +f 2/2/1 3/3/2 4/4/2 +f 8/8/4 5/5/3 6/6/3 +f 6/6/3 7/7/4 8/8/4 +f 12/12/6 9/9/5 10/10/5 +f 10/10/5 11/11/6 12/12/6 +f 16/16/8 13/13/7 14/14/7 +f 14/14/7 15/15/8 16/16/8 +f 8/8/4 7/7/4 17/17/9 +f 17/17/9 18/18/9 8/8/4 +f 18/22/9 17/19/9 19/20/10 +f 19/20/10 20/21/10 18/22/9 +f 20/21/10 19/20/10 10/10/5 +f 10/10/5 9/9/5 20/21/10 +f 16/16/8 15/15/8 21/23/11 +f 21/23/11 22/24/11 16/16/8 +f 22/24/11 21/23/11 23/25/12 +f 23/25/12 24/26/12 22/24/11 +f 24/28/12 23/27/12 6/6/3 +f 6/6/3 5/5/3 24/28/12 +f 2/2/1 1/1/1 25/29/13 +f 25/29/13 26/30/13 2/2/1 +f 26/30/14 25/29/14 12/12/6 +f 12/12/6 11/11/6 26/30/14 +f 14/14/7 13/13/7 27/31/15 +f 27/31/15 28/32/15 14/14/7 +f 28/32/16 27/31/16 4/4/2 +f 4/4/2 3/3/2 28/32/16 +f 20/36/18 9/33/17 16/34/17 +f 16/34/17 22/35/18 20/36/18 +f 14/40/20 28/37/19 26/38/19 +f 26/38/19 11/39/20 14/40/20 +f 15/42/21 14/40/20 11/39/20 +f 11/39/20 10/41/21 15/42/21 +f 26/38/19 28/37/19 3/43/22 +f 3/43/22 2/44/22 26/38/19 +f 23/48/24 21/45/23 19/46/23 +f 19/46/23 17/47/24 23/48/24 +f 21/45/23 15/42/21 10/41/21 +f 10/41/21 19/46/23 21/45/23 +f 6/50/25 23/48/24 17/47/24 +f 17/47/24 7/49/25 6/50/25 +f 12/52/26 13/51/26 16/34/17 +f 16/34/17 9/33/17 12/52/26 +f 8/56/28 18/53/27 24/54/27 +f 24/54/27 5/55/28 8/56/28 +f 18/53/27 20/36/18 22/35/18 +f 22/35/18 24/54/27 18/53/27 +f 4/60/30 27/57/29 25/58/29 +f 25/58/29 1/59/30 4/60/30 +f 27/57/29 13/51/26 12/52/26 +f 12/52/26 25/58/29 27/57/29 +f 32/64/32 29/61/31 30/62/31 +f 30/62/31 31/63/32 32/64/32 +f 36/68/34 33/65/33 34/66/33 +f 34/66/33 35/67/34 36/68/34 +f 40/72/35 37/69/35 38/70/35 +f 38/70/35 39/71/35 40/72/35 +f 35/67/39 34/66/36 29/73/37 +f 29/73/37 32/74/38 35/67/39 +f 33/65/43 36/68/40 31/63/41 +f 31/63/41 30/62/42 33/65/43 +f 38/70/44 35/67/39 32/74/38 +f 32/74/38 39/71/44 38/70/44 +f 37/75/45 36/68/34 35/67/34 +f 35/67/34 38/70/45 37/75/45 +f 37/75/46 40/76/46 31/63/41 +f 31/63/41 36/68/40 37/75/46 +f 39/77/47 32/64/32 31/63/32 +f 31/63/32 40/76/47 39/77/47 +f 34/66/36 41/78/48 42/79/49 +f 42/79/49 29/73/37 34/66/36 +f 29/61/31 42/80/50 43/81/50 +f 43/81/50 30/62/31 29/61/31 +f 44/82/52 33/65/43 30/62/42 +f 30/62/42 43/81/51 44/82/52 +f 33/65/33 44/82/53 41/78/53 +f 41/78/53 34/66/33 33/65/33 +f 41/78/48 45/83/54 46/84/55 +f 46/84/55 42/79/49 41/78/48 +f 42/80/50 46/85/56 47/86/56 +f 47/86/56 43/81/50 42/80/50 +f 48/87/46 44/82/52 43/81/51 +f 43/81/51 47/86/46 48/87/46 +f 44/82/53 48/87/57 45/83/57 +f 45/83/57 41/78/53 44/82/53 +f 52/91/58 49/88/58 50/89/58 +f 50/89/58 51/90/58 52/91/58 +f 56/95/59 53/92/59 54/93/59 +f 54/93/59 55/94/59 56/95/59 +f 51/97/35 56/95/35 55/94/35 +f 55/94/35 52/96/35 51/97/35 +f 55/99/62 54/98/60 49/88/61 +f 49/88/61 52/91/61 55/99/62 +f 56/95/46 51/90/46 50/89/46 +f 50/89/46 53/92/46 56/95/46 +f 60/103/66 57/100/63 58/101/64 +f 58/101/64 59/102/65 60/103/66 +f 62/105/67 61/104/67 57/100/67 +f 57/100/67 60/103/67 62/105/67 +f 64/107/68 59/102/68 58/101/69 +f 58/101/69 63/106/69 64/107/68 +f 68/111/73 65/108/70 66/109/71 +f 66/109/71 67/110/72 68/111/73 +f 70/113/77 69/112/74 65/108/75 +f 65/108/75 68/111/76 70/113/77 +f 72/115/78 67/110/78 66/109/79 +f 66/109/79 71/114/80 72/115/78 +f 71/114/84 69/116/81 70/117/82 +f 70/117/82 72/115/83 71/114/84 +f 76/121/87 73/118/85 74/119/86 +f 74/119/86 75/120/86 76/121/87 +f 75/120/91 77/122/88 78/123/89 +f 78/123/89 76/121/90 75/120/91 +f 78/127/95 77/124/92 79/125/93 +f 79/125/93 80/126/94 78/127/95 +f 80/126/98 79/125/96 74/119/96 +f 74/119/96 73/118/97 80/126/98 +f 82/129/100 81/128/99 73/118/85 +f 73/118/85 76/121/87 82/129/100 +f 76/121/90 78/123/89 83/130/101 +f 83/130/101 82/129/102 76/121/90 +f 83/132/103 78/127/95 80/126/94 +f 80/126/94 84/131/103 83/132/103 +f 84/131/105 80/126/98 73/118/97 +f 73/118/97 81/128/104 84/131/105 +f 71/114/80 66/109/79 81/128/99 +f 81/128/99 82/129/100 71/114/80 +f 82/129/102 83/130/101 69/116/81 +f 69/116/81 71/114/84 82/129/102 +f 69/112/74 83/132/103 84/131/103 +f 84/131/103 65/108/75 69/112/74 +f 65/108/70 84/131/105 81/128/104 +f 81/128/104 66/109/71 65/108/70 +f 70/136/108 68/133/106 67/134/107 +f 67/134/107 72/135/106 70/136/108 +f 75/140/112 74/137/109 79/138/110 +f 79/138/110 77/139/111 75/140/112 +f 88/144/66 85/141/63 86/142/64 +f 86/142/64 87/143/65 88/144/66 +f 90/146/67 89/145/67 85/141/67 +f 85/141/67 88/144/67 90/146/67 +f 92/148/115 87/143/113 86/142/114 +f 86/142/114 91/147/113 92/148/115 +f 96/152/118 93/149/116 94/150/117 +f 94/150/117 95/151/118 96/152/118 +f 98/154/122 97/153/119 93/149/120 +f 93/149/120 96/152/121 98/154/122 +f 100/156/123 95/151/123 94/150/124 +f 94/150/124 99/155/125 100/156/123 +f 99/155/129 97/157/126 98/158/127 +f 98/158/127 100/156/128 99/155/129 +f 104/162/133 101/159/130 102/160/131 +f 102/160/131 103/161/132 104/162/133 +f 103/161/134 105/163/134 106/164/135 +f 106/164/135 104/162/136 103/161/134 +f 106/168/140 105/165/137 107/166/138 +f 107/166/138 108/167/139 106/168/140 +f 108/167/144 107/166/141 102/160/142 +f 102/160/142 101/159/143 108/167/144 +f 110/170/146 109/169/145 101/159/130 +f 101/159/130 104/162/133 110/170/146 +f 104/162/136 106/164/135 111/171/147 +f 111/171/147 110/170/148 104/162/136 +f 111/173/149 106/168/140 108/167/139 +f 108/167/139 112/172/149 111/173/149 +f 112/172/151 108/167/144 101/159/143 +f 101/159/143 109/169/150 112/172/151 +f 99/155/125 94/150/124 109/169/145 +f 109/169/145 110/170/146 99/155/125 +f 110/170/148 111/171/147 97/157/126 +f 97/157/126 99/155/129 110/170/148 +f 97/153/119 111/173/149 112/172/149 +f 112/172/149 93/149/120 97/153/119 +f 93/149/116 112/172/151 109/169/150 +f 109/169/150 94/150/117 93/149/116 +f 116/177/152 113/174/152 114/175/152 +f 114/175/152 115/176/152 116/177/152 +f 118/179/153 117/178/153 113/174/153 +f 113/174/153 116/177/153 118/179/153 +f 120/181/58 115/176/58 114/175/58 +f 114/175/58 119/180/58 120/181/58 +f 124/185/154 121/182/154 122/183/155 +f 122/183/155 123/184/154 124/185/154 +f 126/187/156 125/186/156 121/182/157 +f 121/182/157 124/185/156 126/187/156 +f 128/189/153 123/184/153 122/183/153 +f 122/183/153 127/188/153 128/189/153 +f 132/193/159 129/190/158 130/191/158 +f 130/191/158 131/192/159 132/193/159 +f 136/197/34 133/194/33 134/195/33 +f 134/195/33 135/196/34 136/197/34 +f 140/201/35 137/198/35 138/199/35 +f 138/199/35 139/200/35 140/201/35 +f 135/196/163 134/195/160 129/190/161 +f 129/190/161 132/193/162 135/196/163 +f 133/194/167 136/197/164 131/202/165 +f 131/202/165 130/203/166 133/194/167 +f 138/205/168 135/196/163 132/193/162 +f 132/193/162 139/204/168 138/205/168 +f 137/198/45 136/197/34 135/196/34 +f 135/196/34 138/205/45 137/198/45 +f 137/198/170 140/201/169 131/202/165 +f 131/202/165 136/197/164 137/198/170 +f 139/204/171 132/193/159 131/192/159 +f 131/192/159 140/206/171 139/204/171 +f 134/195/160 141/207/172 142/208/173 +f 142/208/173 129/190/161 134/195/160 +f 129/190/158 142/208/50 143/209/50 +f 143/209/50 130/191/158 129/190/158 +f 144/211/175 133/194/167 130/203/166 +f 130/203/166 143/210/174 144/211/175 +f 133/194/33 144/211/53 141/207/53 +f 141/207/53 134/195/33 133/194/33 +f 141/207/172 145/212/54 146/213/55 +f 146/213/55 142/208/173 141/207/172 +f 142/208/50 146/213/56 147/214/56 +f 147/214/56 143/209/50 142/208/50 +f 148/216/46 144/211/175 143/210/174 +f 143/210/174 147/215/46 148/216/46 +f 144/211/53 148/216/57 145/212/57 +f 145/212/57 141/207/53 144/211/53 +f 152/220/58 149/217/58 150/218/58 +f 150/218/58 151/219/58 152/220/58 +f 156/224/176 153/221/176 154/222/176 +f 154/222/176 155/223/176 156/224/176 +f 151/226/35 156/224/35 155/223/35 +f 155/223/35 152/225/35 151/226/35 +f 155/223/44 154/222/44 149/217/44 +f 149/217/44 152/220/44 155/223/44 +f 156/228/46 151/219/46 150/218/46 +f 150/218/46 153/227/46 156/228/46 +f 160/232/180 157/229/177 158/230/178 +f 158/230/178 159/231/179 160/232/180 +f 159/231/181 158/230/181 161/233/181 +f 161/233/181 162/234/182 159/231/181 +f 164/236/185 163/235/183 162/234/184 +f 162/234/184 161/233/184 164/236/185 +f 163/240/186 164/237/186 157/238/187 +f 157/238/187 160/239/186 163/240/186 diff --git a/chair_01_Base_Color.png b/chair_01_Base_Color.png new file mode 100644 index 0000000..7a5790e Binary files /dev/null and b/chair_01_Base_Color.png differ diff --git a/main.cpp b/main.cpp index 820cb64..8b7a319 100755 --- a/main.cpp +++ b/main.cpp @@ -152,7 +152,7 @@ namespace ZL GameObjects::testObjMeshMutable.data.RotateByMatrix(QuatToMatrix(QuatFromRotateAroundZ(gs.rotateTimer * M_PI / 3.0))); GameObjects::testObjMeshMutable.RefreshVBO(); - glBindTexture(GL_TEXTURE_2D, GameObjects::backgroundTexturePtr->getTexID()); + glBindTexture(GL_TEXTURE_2D, GameObjects::testObjTexturePtr->getTexID()); renderer.DrawVertexRenderStruct(GameObjects::testObjMeshMutable); renderer.PopMatrix(); @@ -257,6 +257,7 @@ namespace ZL GameObjects::backgroundTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./background.bmp")); GameObjects::pipeTexturePtr = std::make_shared(CreateTextureDataFromBmp32("./pipe.bmp32")); GameObjects::gameOverTexturePtr = std::make_shared(CreateTextureDataFromBmp32("./game_over.bmp32")); + GameObjects::testObjTexturePtr = std::make_shared(CreateTextureDataFromPng("./chair_01_Base_Color.png")); CheckGlError();