diff --git a/Escape-the-Dawn/Camera.h b/Escape-the-Dawn/Camera.h index baea8a5..a0bfe63 100644 --- a/Escape-the-Dawn/Camera.h +++ b/Escape-the-Dawn/Camera.h @@ -16,7 +16,6 @@ public: glm::vec3 Forward(); glm::vec3 Right(); - glm::quat Orientation(); float AspectRatio() const { return m_AspectRatio; } void AspectRatio(float val); diff --git a/Escape-the-Dawn/CubemapTexture.cpp b/Escape-the-Dawn/CubemapTexture.cpp new file mode 100644 index 0000000..764c098 --- /dev/null +++ b/Escape-the-Dawn/CubemapTexture.cpp @@ -0,0 +1,47 @@ +#include "CubemapTexture.h" + +CubemapTexture::CubemapTexture(char* posXFile, char* negXFile, char* posYFile, char* negYFile, char* posZFile, char* negZFile) +{ + m_TextureFiles[0] = posXFile; + m_TextureFiles[1] = negXFile; + m_TextureFiles[2] = posYFile; + m_TextureFiles[3] = negYFile; + m_TextureFiles[4] = posZFile; + m_TextureFiles[5] = negZFile; + + Load(); +} + +CubemapTexture::~CubemapTexture() +{ + //glDeleteTextures(1, &m_Texture); +} + +void CubemapTexture::Load() +{ + m_Texture = SOIL_load_OGL_cubemap( + m_TextureFiles[0], + m_TextureFiles[1], + m_TextureFiles[2], + m_TextureFiles[3], + m_TextureFiles[4], + m_TextureFiles[5], + SOIL_LOAD_AUTO, + SOIL_CREATE_NEW_ID, + 0); + + if (m_Texture == 0) + LOG_ERROR("SOIL cubemap loading error: %s", SOIL_last_result()); + + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); +} + +void CubemapTexture::Bind(GLenum textureUnit) +{ + glActiveTexture(textureUnit); + glBindTexture(GL_TEXTURE_CUBE_MAP, m_Texture); +} diff --git a/Escape-the-Dawn/CubemapTexture.h b/Escape-the-Dawn/CubemapTexture.h new file mode 100644 index 0000000..fd55721 --- /dev/null +++ b/Escape-the-Dawn/CubemapTexture.h @@ -0,0 +1,31 @@ +#ifndef CubemapTexture_h__ +#define CubemapTexture_h__ + +#include "OpenGL.h" +#include "glerror.h" +#include + +#include "logging.h" + +class CubemapTexture +{ +public: + CubemapTexture() { } + CubemapTexture( + char* posXFile, + char* negXFile, + char* posYFile, + char* negYFile, + char* posZFile, + char* negZFile); + ~CubemapTexture(); + + void Load(); + void Bind(GLenum textureSlot); + +private: + char* m_TextureFiles[6]; + GLuint m_Texture; +}; + +#endif // CubemapTexture_h__ \ No newline at end of file diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj b/Escape-the-Dawn/Escape-the-Dawn.vcxproj index 7f9c2d5..9406458 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj @@ -98,6 +98,7 @@ + @@ -109,6 +110,7 @@ + @@ -125,6 +127,7 @@ + @@ -153,6 +156,7 @@ + @@ -171,6 +175,8 @@ + + diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters index 7740421..1f764a8 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters @@ -47,6 +47,8 @@ + + @@ -148,6 +150,8 @@ + + @@ -180,6 +184,12 @@ Shaders + + Shaders + + + Shaders + diff --git a/Escape-the-Dawn/GameWorld.cpp b/Escape-the-Dawn/GameWorld.cpp index 8cbf08b..dbbc64a 100644 --- a/Escape-the-Dawn/GameWorld.cpp +++ b/Escape-the-Dawn/GameWorld.cpp @@ -108,12 +108,12 @@ void GameWorld::Initialize() bounds->VolumeVector = glm::vec3(4.f, 0.7f, 1); soundEmitter = AddComponent(m_Player, "SoundEmitter"); soundEmitter->Loop = true; - //soundEmitter->MaxDistance = FLT_MAX; + //soundEmitter->MaxDistance = 10; soundEmitter->ReferenceDistance = 10; soundEmitter->Gain = 1; soundEmitter->Pitch = 1; soundEmitter->Path = "Sounds/hallelujah.wav"; - GetSystem("SoundSystem")->PlaySound(soundEmitter); + //GetSystem("SoundSystem")->PlaySound(soundEmitter); diff --git a/Escape-the-Dawn/Models/powerup.obj b/Escape-the-Dawn/Models/powerup.obj new file mode 100644 index 0000000..216bc9d --- /dev/null +++ b/Escape-the-Dawn/Models/powerup.obj @@ -0,0 +1,1074 @@ +# Blender v2.69 (sub 0) OBJ File: 'powerup.blend' +# www.blender.org +mtllib powerup.mtl +o Circle_Circle.004 +v 0.000000 8.004904 0.106887 +v -0.780361 7.928044 0.106887 +v -1.530734 7.700421 0.106887 +v -2.222281 7.330782 0.106887 +v -2.828427 6.833330 0.106887 +v -3.325878 6.227184 0.106887 +v -3.695518 5.535637 0.106887 +v -3.923141 4.785265 0.106887 +v -4.000000 4.004904 0.106887 +v -3.923141 3.224543 0.106887 +v -3.695518 2.474170 0.106887 +v -3.325878 1.782623 0.106887 +v -2.828427 1.176476 0.106887 +v -2.222280 0.679025 0.106887 +v -1.530733 0.309385 0.106887 +v -0.780360 0.081762 0.106887 +v 0.000002 0.004904 0.106887 +v 0.780363 0.081763 0.106887 +v 1.530736 0.309386 0.106887 +v 2.222283 0.679026 0.106887 +v 2.828429 1.176478 0.106887 +v 3.325881 1.782625 0.106887 +v 3.695520 2.474173 0.106887 +v 3.923142 3.224545 0.106887 +v 4.000000 4.004907 0.106887 +v 3.923141 4.785269 0.106887 +v 3.695517 5.535641 0.106887 +v 3.325876 6.227188 0.106887 +v 2.828424 6.833334 0.106887 +v 2.222277 7.330785 0.106887 +v 1.530728 7.700424 0.106887 +v 0.780356 7.928045 0.106887 +v 0.000000 8.004904 -0.259439 +v -0.780361 7.928044 -0.259439 +v -1.530734 7.700421 -0.259439 +v -2.222281 7.330782 -0.259439 +v -2.828427 6.833330 -0.259439 +v -3.325878 6.227184 -0.259439 +v -3.695518 5.535637 -0.259439 +v -3.923141 4.785265 -0.259439 +v -4.000000 4.004904 -0.259439 +v -3.923141 3.224543 -0.259439 +v -3.695518 2.474170 -0.259439 +v -3.325878 1.782623 -0.259439 +v -2.828427 1.176476 -0.259439 +v -2.222280 0.679025 -0.259439 +v -1.530733 0.309385 -0.259439 +v -0.780360 0.081762 -0.259439 +v 0.000002 0.004904 -0.259439 +v 0.780363 0.081763 -0.259439 +v 1.530736 0.309386 -0.259439 +v 2.222283 0.679026 -0.259439 +v 2.828429 1.176478 -0.259439 +v 3.325881 1.782625 -0.259439 +v 3.695520 2.474173 -0.259439 +v 3.923142 3.224545 -0.259439 +v 4.000000 4.004907 -0.259439 +v 3.923141 4.785269 -0.259439 +v 3.695517 5.535641 -0.259439 +v 3.325876 6.227188 -0.259439 +v 2.828424 6.833334 -0.259439 +v 2.222277 7.330785 -0.259439 +v 1.530728 7.700424 -0.259439 +v 0.780356 7.928045 -0.259439 +v 0.000000 7.582003 0.087522 +v -0.697857 7.513269 0.087522 +v -1.368897 7.309712 0.087522 +v -1.987330 6.979153 0.087522 +v -2.529391 6.534294 0.087522 +v -2.974249 5.992233 0.087522 +v -3.304808 5.373800 0.087522 +v -3.508366 4.702761 0.087522 +v -3.577099 4.004904 0.087522 +v -3.508366 3.307046 0.087522 +v -3.304808 2.636007 0.087522 +v -2.974249 2.017574 0.087522 +v -2.529391 1.475513 0.087522 +v -1.987329 1.030654 0.087522 +v -1.368896 0.700094 0.087522 +v -0.697856 0.496537 0.087522 +v 0.000001 0.427805 0.087522 +v 0.697859 0.496538 0.087522 +v 1.368898 0.700096 0.087522 +v 1.987332 1.030655 0.087522 +v 2.529393 1.475514 0.087522 +v 2.974251 2.017576 0.087522 +v 3.304810 2.636010 0.087522 +v 3.508367 3.307049 0.087522 +v 3.577100 4.004907 0.087522 +v 3.508366 4.702765 0.087522 +v 3.304807 5.373804 0.087522 +v 2.974247 5.992237 0.087522 +v 2.529388 6.534298 0.087522 +v 1.987326 6.979156 0.087522 +v 1.368892 7.309714 0.087522 +v 0.697852 7.513270 0.087522 +v 0.000000 7.582003 -0.240075 +v -0.697857 7.513269 -0.240075 +v -1.368897 7.309712 -0.240075 +v -1.987330 6.979153 -0.240075 +v -2.529391 6.534294 -0.240075 +v -2.974249 5.992233 -0.240074 +v -3.304808 5.373800 -0.240074 +v -3.508366 4.702761 -0.240074 +v -3.577099 4.004904 -0.240074 +v -3.508366 3.307046 -0.240074 +v -3.304808 2.636007 -0.240074 +v -2.974249 2.017574 -0.240074 +v -2.529391 1.475513 -0.240074 +v -1.987329 1.030654 -0.240074 +v -1.368896 0.700094 -0.240074 +v -0.697856 0.496537 -0.240074 +v 0.000001 0.427805 -0.240074 +v 0.697859 0.496538 -0.240074 +v 1.368898 0.700096 -0.240074 +v 1.987332 1.030655 -0.240074 +v 2.529393 1.475514 -0.240074 +v 2.974251 2.017576 -0.240074 +v 3.304810 2.636010 -0.240074 +v 3.508367 3.307049 -0.240074 +v 3.577100 4.004907 -0.240074 +v 3.508366 4.702765 -0.240074 +v 3.304807 5.373804 -0.240074 +v 2.974247 5.992237 -0.240074 +v 2.529388 6.534298 -0.240075 +v 1.987326 6.979156 -0.240075 +v 1.368892 7.309714 -0.240075 +v 0.697852 7.513270 -0.240075 +v 1.379748 5.716118 0.229631 +v 1.379748 5.999430 0.229630 +v 1.379748 4.259961 0.229631 +v 1.379748 4.543272 0.229630 +v 1.379748 2.803804 0.229631 +v 1.379748 3.087115 0.229630 +v 1.379748 1.279338 0.229631 +v 1.379748 1.562650 0.229630 +v -1.379748 5.716118 0.229631 +v 0.000000 6.535820 0.229631 +v -1.379748 5.999430 0.229630 +v 0.000000 7.126520 0.229630 +v -1.379748 4.259961 0.229631 +v 0.000000 5.079663 0.229631 +v -1.379748 4.543272 0.229630 +v 0.000000 5.670363 0.229630 +v -1.379748 2.803804 0.229631 +v 0.000000 3.623506 0.229631 +v -1.379748 3.087115 0.229630 +v 0.000000 4.214206 0.229630 +v -1.379748 1.279338 0.229631 +v 0.000000 2.099041 0.229631 +v -1.379748 1.562650 0.229630 +v 0.000000 2.689741 0.229630 +v 1.379748 5.716118 -0.384142 +v 1.379748 5.999430 -0.384142 +v 1.379748 4.259961 -0.384142 +v 1.379748 4.543272 -0.384142 +v 1.379748 2.803804 -0.384142 +v 1.379748 3.087115 -0.384142 +v 1.379748 1.279338 -0.384142 +v 1.379748 1.562650 -0.384142 +v -1.379748 5.716118 -0.384142 +v 0.000000 6.535820 -0.384142 +v -1.379748 5.999430 -0.384142 +v 0.000000 7.126520 -0.384142 +v -1.379748 4.259961 -0.384142 +v 0.000000 5.079663 -0.384142 +v -1.379748 4.543272 -0.384142 +v 0.000000 5.670363 -0.384142 +v -1.379748 2.803804 -0.384142 +v 0.000000 3.623506 -0.384142 +v -1.379748 3.087115 -0.384142 +v 0.000000 4.214206 -0.384142 +v -1.379748 1.279338 -0.384142 +v 0.000000 2.099041 -0.384142 +v -1.379748 1.562650 -0.384142 +v 0.000000 2.689741 -0.384142 +vt 0.333915 0.101308 +vt 0.307015 0.101308 +vt 0.333915 0.052061 +vt 0.333915 0.256153 +vt 0.360814 0.256153 +vt 0.333915 0.313635 +vt 0.389787 0.500214 +vt 0.389787 0.527113 +vt 0.341933 0.500214 +vt 0.333915 0.212345 +vt 0.307015 0.212345 +vt 0.333915 0.155429 +vt 0.333915 0.144733 +vt 0.360814 0.144733 +vt 0.333915 0.199122 +vt 0.061505 0.548314 +vt 0.061505 0.575214 +vt 0.017116 0.548314 +vt 0.333915 0.325788 +vt 0.307015 0.325788 +vt 0.333915 0.269868 +vt 0.360814 0.052061 +vt 0.333915 0.095077 +vt 0.167242 0.548314 +vt 0.167242 0.575214 +vt 0.112197 0.548314 +vt 0.333915 0.424366 +vt 0.307015 0.424366 +vt 0.333915 0.377955 +vt 0.281846 0.548314 +vt 0.281846 0.575214 +vt 0.224525 0.548314 +vt 0.118225 0.500214 +vt 0.118225 0.527113 +vt 0.065013 0.500214 +vt 0.333915 0.421183 +vt 0.360814 0.421183 +vt 0.333915 0.467116 +vt 0.387870 0.548314 +vt 0.387870 0.575214 +vt 0.337001 0.548314 +vt 0.232285 0.500214 +vt 0.232285 0.527113 +vt 0.174705 0.500214 +vt 0.360814 0.313635 +vt 0.333915 0.369359 +vt 0.341933 0.527113 +vt 0.288751 0.500214 +vt 0.307015 0.155429 +vt 0.360814 0.199122 +vt 0.430475 0.500214 +vt 0.430475 0.527113 +vt 0.307015 0.269868 +vt 0.360814 0.095077 +vt 0.112197 0.575214 +vt 0.307015 0.377955 +vt 0.224525 0.575214 +vt 0.065013 0.527113 +vt 0.017116 0.500214 +vt 0.333915 0.463236 +vt 0.307015 0.463236 +vt 0.337001 0.575214 +vt 0.174705 0.527113 +vt 0.360814 0.369359 +vt 0.432500 0.548314 +vt 0.432500 0.575214 +vt 0.288751 0.527113 +vt 0.360814 0.094894 +vt 0.384870 0.094894 +vt 0.223103 0.604613 +vt 0.274330 0.604613 +vt 0.223103 0.628669 +vt 0.384870 0.386957 +vt 0.384870 0.345453 +vt 0.408925 0.386957 +vt 0.360814 0.192989 +vt 0.360814 0.142480 +vt 0.384870 0.192989 +vt 0.122519 0.604613 +vt 0.171842 0.604613 +vt 0.122519 0.628669 +vt 0.261750 0.126208 +vt 0.261750 0.085132 +vt 0.285805 0.126208 +vt 0.360814 0.294977 +vt 0.360814 0.244481 +vt 0.384870 0.294977 +vt 0.037116 0.604613 +vt 0.077027 0.604613 +vt 0.037116 0.628669 +vt 0.261750 0.222386 +vt 0.261750 0.172553 +vt 0.285805 0.222386 +vt 0.360814 0.385331 +vt 0.360814 0.342536 +vt 0.384870 0.385331 +vt 0.261750 0.324792 +vt 0.261750 0.273791 +vt 0.285805 0.324792 +vt 0.384870 0.146454 +vt 0.384870 0.098055 +vt 0.408925 0.146454 +vt 0.368887 0.604613 +vt 0.408584 0.604613 +vt 0.368887 0.628669 +vt 0.261750 0.417837 +vt 0.261750 0.373431 +vt 0.285805 0.417837 +vt 0.384870 0.248794 +vt 0.384870 0.197352 +vt 0.408925 0.248794 +vt 0.323555 0.604613 +vt 0.274330 0.628669 +vt 0.384870 0.298801 +vt 0.408925 0.345453 +vt 0.384870 0.142480 +vt 0.171842 0.628669 +vt 0.384870 0.421717 +vt 0.408925 0.421717 +vt 0.384870 0.244481 +vt 0.077027 0.628669 +vt 0.285805 0.172553 +vt 0.384870 0.342536 +vt 0.285805 0.273791 +vt 0.384870 0.054014 +vt 0.408925 0.098055 +vt 0.360814 0.421717 +vt 0.285805 0.373431 +vt 0.408925 0.197352 +vt 0.323555 0.628669 +vt 0.261750 0.456305 +vt 0.285805 0.456305 +vt 0.408925 0.298801 +vt 0.046693 0.167825 +vt 0.037096 0.153462 +vt 0.053894 0.161915 +vt 0.024616 0.355945 +vt 0.024616 0.338671 +vt 0.033887 0.355032 +vt 0.192520 0.070386 +vt 0.199130 0.086345 +vt 0.184304 0.074778 +vt 0.196631 0.321729 +vt 0.200000 0.338671 +vt 0.187716 0.324434 +vt 0.046693 0.056023 +vt 0.058907 0.043809 +vt 0.053894 0.061934 +vt 0.103671 0.259616 +vt 0.120945 0.259616 +vt 0.104584 0.268887 +vt 0.170709 0.180039 +vt 0.156346 0.189636 +vt 0.164799 0.172838 +vt 0.073270 0.034212 +vt 0.089229 0.027602 +vt 0.077662 0.042428 +vt 0.137887 0.431631 +vt 0.120945 0.435001 +vt 0.135183 0.422716 +vt 0.027986 0.321729 +vt 0.036901 0.324434 +vt 0.058907 0.180039 +vt 0.064817 0.172838 +vt 0.182923 0.056023 +vt 0.175722 0.061934 +vt 0.200000 0.355945 +vt 0.190729 0.339584 +vt 0.037096 0.070386 +vt 0.045312 0.074778 +vt 0.137887 0.262986 +vt 0.120032 0.268887 +vt 0.182923 0.167825 +vt 0.175722 0.161915 +vt 0.103671 0.435001 +vt 0.120032 0.425729 +vt 0.034596 0.305770 +vt 0.073270 0.189636 +vt 0.077662 0.181420 +vt 0.170709 0.043809 +vt 0.164799 0.051010 +vt 0.196630 0.372887 +vt 0.190729 0.355032 +vt 0.030486 0.086345 +vt 0.039401 0.089050 +vt 0.153846 0.269596 +vt 0.135183 0.271901 +vt 0.192520 0.153462 +vt 0.184304 0.149071 +vt 0.086729 0.431631 +vt 0.104584 0.425729 +vt 0.044193 0.291407 +vt 0.042812 0.310162 +vt 0.089229 0.196247 +vt 0.091933 0.187332 +vt 0.156346 0.034212 +vt 0.151954 0.042428 +vt 0.190020 0.388846 +vt 0.187715 0.370183 +vt 0.027116 0.103287 +vt 0.036387 0.104200 +vt 0.168209 0.279193 +vt 0.149454 0.277812 +vt 0.199130 0.137503 +vt 0.070770 0.425020 +vt 0.075162 0.416804 +vt 0.056407 0.279193 +vt 0.051394 0.297318 +vt 0.106171 0.199617 +vt 0.107084 0.190345 +vt 0.140387 0.027602 +vt 0.137683 0.036517 +vt 0.180423 0.403209 +vt 0.181804 0.384454 +vt 0.027116 0.120561 +vt 0.036387 0.119648 +vt 0.180423 0.291407 +vt 0.162299 0.286394 +vt 0.202500 0.120561 +vt 0.193229 0.119648 +vt 0.056407 0.415423 +vt 0.062317 0.408222 +vt 0.070770 0.269596 +vt 0.062318 0.286394 +vt 0.123445 0.199617 +vt 0.123445 0.024232 +vt 0.122532 0.033503 +vt 0.168209 0.415423 +vt 0.162299 0.408222 +vt 0.034596 0.388846 +vt 0.027986 0.372887 +vt 0.036901 0.370183 +vt 0.030486 0.137503 +vt 0.039401 0.134799 +vt 0.202500 0.103287 +vt 0.193229 0.104200 +vt 0.190020 0.305770 +vt 0.173222 0.297318 +vt 0.044193 0.403209 +vt 0.051394 0.397299 +vt 0.086729 0.262986 +vt 0.075162 0.277812 +vt 0.140387 0.196247 +vt 0.122532 0.190345 +vt 0.106171 0.024232 +vt 0.107084 0.033503 +vt 0.153846 0.425020 +vt 0.149454 0.416804 +vt 0.190215 0.089050 +vt 0.181804 0.310162 +vt 0.151954 0.181420 +vt 0.089433 0.271901 +vt 0.091933 0.036517 +vt 0.599966 0.847355 +vt 0.599966 0.890731 +vt 0.498650 0.787164 +vt 0.607466 0.397224 +vt 0.607466 0.440599 +vt 0.506150 0.337032 +vt 0.594031 0.699340 +vt 0.594031 0.742715 +vt 0.492715 0.639149 +vt 0.598899 0.762906 +vt 0.598899 0.806282 +vt 0.497584 0.702715 +vt 0.701282 0.787164 +vt 0.708782 0.337032 +vt 0.695347 0.639149 +vt 0.700215 0.702715 +vt 0.603432 0.922307 +vt 0.704748 0.862116 +vt 0.603432 0.965683 +vt 0.601399 0.472224 +vt 0.702715 0.412032 +vt 0.601399 0.515599 +vt 0.595932 0.621241 +vt 0.697248 0.561049 +vt 0.595932 0.664616 +vt 0.591399 0.552355 +vt 0.692715 0.492164 +vt 0.591399 0.595731 +vt 0.502116 0.862116 +vt 0.500084 0.412032 +vt 0.494616 0.561049 +vt 0.490084 0.492164 +vt 0.836819 0.129536 +vt 0.836819 0.144822 +vt 0.791750 0.129536 +vt 0.852601 0.395980 +vt 0.867263 0.395980 +vt 0.852601 0.441049 +vt 0.980884 0.784217 +vt 0.980884 0.901393 +vt 0.935814 0.784217 +vt 0.881925 0.395980 +vt 0.867263 0.441049 +vt 0.851414 0.468669 +vt 0.965711 0.468669 +vt 0.851414 0.513739 +vt 0.935884 0.773568 +vt 0.935884 0.656393 +vt 0.980954 0.773568 +vt 0.979459 0.616499 +vt 0.979459 0.747322 +vt 0.934389 0.616499 +vt 0.836819 0.015286 +vt 0.881889 0.144822 +vt 0.742178 0.833005 +vt 0.873000 0.833005 +vt 0.742178 0.878074 +vt 0.842116 0.938669 +vt 0.956414 0.938669 +vt 0.842116 0.983739 +vt 0.836819 0.000000 +vt 0.881889 0.015286 +vt 0.862178 0.913005 +vt 0.862178 0.783469 +vt 0.907248 0.913005 +vt 0.832601 0.861049 +vt 0.817939 0.861049 +vt 0.832601 0.815980 +vt 0.987298 0.833005 +vt 0.873000 0.878074 +vt 0.896587 0.395980 +vt 0.881925 0.441049 +vt 0.862178 0.768183 +vt 0.907248 0.783469 +vt 0.980954 0.539217 +vt 0.980954 0.656393 +vt 0.935884 0.539217 +vt 0.928183 0.438005 +vt 0.928183 0.308469 +vt 0.973252 0.438005 +vt 0.926959 0.131174 +vt 0.926959 0.013999 +vt 0.972028 0.131174 +vt 0.787248 0.787935 +vt 0.901545 0.787935 +vt 0.787248 0.833005 +vt 0.769616 0.575980 +vt 0.900439 0.575980 +vt 0.769616 0.621049 +vt 0.928183 0.293183 +vt 0.973252 0.308469 +vt 0.935884 0.656425 +vt 0.935884 0.787248 +vt 0.890814 0.656425 +vt 0.791750 0.000000 +vt 0.307015 0.052061 +vt 0.017116 0.575214 +vt 0.360814 0.467116 +vt 0.017116 0.527113 +vt 0.384870 0.052061 +vt 0.285805 0.085132 +vt 0.408584 0.628669 +vt 0.408925 0.054014 +vt 0.045312 0.149070 +vt 0.033887 0.339584 +vt 0.064818 0.051010 +vt 0.089433 0.422716 +vt 0.190215 0.134799 +vt 0.173222 0.397299 +vt 0.042812 0.384454 +vt 0.137683 0.187332 +vt 0.498650 0.807968 +vt 0.506150 0.357836 +vt 0.492715 0.659952 +vt 0.497584 0.723519 +vt 0.701282 0.807968 +vt 0.708782 0.357836 +vt 0.695347 0.659952 +vt 0.700215 0.723519 +vt 0.704748 0.882920 +vt 0.702715 0.432836 +vt 0.697248 0.581853 +vt 0.692715 0.512968 +vt 0.502116 0.882920 +vt 0.500084 0.432836 +vt 0.494616 0.581853 +vt 0.490084 0.512968 +vt 0.791750 0.144822 +vt 0.935814 0.901393 +vt 0.965711 0.513739 +vt 0.934389 0.747322 +vt 0.956414 0.983739 +vt 0.881889 0.000000 +vt 0.817939 0.815980 +vt 0.987298 0.878074 +vt 0.896587 0.441049 +vt 0.907248 0.768183 +vt 0.972028 0.013999 +vt 0.901545 0.833005 +vt 0.900439 0.621049 +vt 0.973252 0.293183 +vt 0.890814 0.787248 +vn 0.098017 0.995185 0.000000 +vn 0.773011 -0.634393 0.000000 +vn -0.956940 -0.290284 0.000000 +vn 0.471396 0.881922 0.000000 +vn 0.471397 -0.881921 0.000000 +vn -0.995185 0.098018 0.000000 +vn 0.773010 0.634394 0.000000 +vn 0.098017 -0.995185 0.000000 +vn -0.881921 0.471397 0.000000 +vn 0.956940 0.290286 0.000000 +vn -0.634394 0.773010 0.000000 +vn -0.290284 -0.956941 0.000000 +vn 0.995185 -0.098016 0.000000 +vn -0.290285 0.956940 0.000000 +vn -0.634393 -0.773010 0.000000 +vn 0.881922 -0.471396 0.000000 +vn -0.881921 -0.471397 0.000000 +vn 0.290283 0.956941 0.000000 +vn 0.634394 -0.773010 0.000000 +vn -0.995185 -0.098017 0.000000 +vn 0.634392 0.773011 0.000000 +vn 0.290285 -0.956940 0.000000 +vn -0.956940 0.290285 0.000000 +vn 0.881920 0.471398 0.000000 +vn -0.773010 0.634393 0.000000 +vn -0.098017 -0.995185 0.000000 +vn 0.995185 0.098018 0.000000 +vn -0.471397 0.881921 0.000000 +vn -0.471397 -0.881921 0.000000 +vn 0.956941 -0.290284 0.000000 +vn -0.098018 0.995185 0.000000 +vn -0.773010 -0.634394 0.000000 +vn -0.773011 0.634392 0.000000 +vn 0.956941 0.290284 0.000000 +vn -0.471396 -0.881922 0.000000 +vn 0.995185 -0.098017 0.000000 +vn -0.098017 0.995185 0.000000 +vn 0.881921 -0.471396 0.000000 +vn -0.956940 -0.290286 0.000000 +vn 0.290284 0.956941 0.000000 +vn -0.995185 0.098016 0.000000 +vn 0.634393 0.773010 0.000000 +vn -0.881922 0.471395 0.000000 +vn 0.881922 0.471396 0.000000 +vn -0.290283 -0.956941 0.000000 +vn 0.995185 0.098016 0.000000 +vn -0.634392 -0.773011 0.000000 +vn 0.956940 -0.290285 0.000000 +vn -0.881921 -0.471398 0.000000 +vn 0.098016 0.995185 0.000000 +vn -0.995185 -0.098019 0.000000 +vn 0.471397 0.881921 0.000000 +vn -0.956941 0.290284 0.000000 +vn 0.045742 -0.004505 -0.998943 +vn 0.021667 -0.040536 0.998943 +vn -0.043984 0.013342 -0.998943 +vn -0.013343 0.043985 0.998943 +vn 0.004505 -0.045742 -0.998943 +vn 0.040536 0.021667 0.998943 +vn 0.004505 0.045742 -0.998943 +vn -0.013342 -0.043984 -0.998943 +vn -0.043985 -0.013343 0.998943 +vn 0.029159 -0.035530 0.998943 +vn 0.045742 0.004505 -0.998943 +vn -0.045742 0.004505 -0.998943 +vn -0.021667 0.040536 0.998943 +vn 0.013343 -0.043985 -0.998943 +vn 0.035530 0.029159 0.998943 +vn -0.004505 0.045742 -0.998943 +vn -0.004505 -0.045742 -0.998943 +vn -0.040536 -0.021667 0.998943 +vn 0.035531 -0.029159 0.998943 +vn 0.043984 0.013342 -0.998943 +vn -0.045742 -0.004505 -0.998943 +vn -0.029159 0.035530 0.998943 +vn 0.021667 -0.040536 -0.998943 +vn 0.029159 0.035530 0.998943 +vn -0.013343 0.043984 -0.998943 +vn -0.035530 -0.029159 0.998943 +vn 0.040536 -0.021667 0.998943 +vn 0.040536 0.021667 -0.998943 +vn -0.043984 -0.013343 -0.998943 +vn -0.035530 0.029159 0.998943 +vn 0.029159 -0.035530 -0.998943 +vn 0.021667 0.040536 0.998943 +vn -0.021667 0.040536 -0.998943 +vn -0.029159 -0.035530 0.998943 +vn 0.043985 -0.013342 0.998943 +vn 0.035530 0.029159 -0.998943 +vn -0.040536 -0.021667 -0.998943 +vn -0.040536 0.021667 0.998943 +vn 0.035530 -0.029159 -0.998943 +vn 0.013343 0.043985 0.998943 +vn -0.029159 0.035530 -0.998943 +vn -0.021667 -0.040536 0.998943 +vn 0.045742 -0.004505 0.998943 +vn 0.029159 0.035530 -0.998943 +vn -0.035530 -0.029159 -0.998943 +vn -0.043985 0.013342 0.998943 +vn 0.004505 -0.045742 0.998943 +vn 0.040536 -0.021667 -0.998943 +vn -0.035530 0.029159 -0.998943 +vn 0.004505 0.045742 0.998943 +vn -0.013342 -0.043984 0.998943 +vn 0.045742 0.004505 0.998943 +vn 0.021667 0.040536 -0.998943 +vn -0.029159 -0.035530 -0.998943 +vn -0.045742 0.004505 0.998943 +vn 0.013343 -0.043985 0.998943 +vn 0.043984 -0.013343 -0.998943 +vn -0.040536 0.021667 -0.998943 +vn -0.004505 0.045742 0.998943 +vn -0.004505 -0.045742 0.998943 +vn 0.013343 0.043984 -0.998943 +vn 0.043985 0.013343 0.998943 +vn -0.021667 -0.040536 -0.998943 +vn -0.045742 -0.004505 0.998943 +vn -0.000000 -0.000000 -1.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000001 0.000000 +vn -1.000000 0.000001 0.000000 +vn 0.510759 0.859724 0.000000 +vn -0.510758 0.859724 0.000000 +vn 0.510758 0.859724 0.000000 +vn -0.632634 -0.774451 0.000000 +vn 0.632634 -0.774451 0.000000 +vn -0.632635 -0.774451 0.000000 +vn -0.510759 0.859724 0.000000 +vn 0.773011 -0.634392 0.000000 +vn -0.956940 -0.290285 0.000000 +vn 0.471395 0.881922 0.000000 +vn -0.881922 0.471396 0.000000 +vn -0.634393 0.773010 0.000000 +vn -0.290284 -0.956940 0.000000 +vn -0.881922 -0.471396 0.000000 +vn 0.634393 -0.773010 0.000000 +vn -0.995185 -0.098018 0.000000 +vn 0.881921 0.471398 0.000000 +vn -0.773010 0.634394 0.000000 +vn -0.773011 -0.634393 0.000000 +vn -0.773011 0.634393 0.000000 +vn 0.956940 0.290285 0.000000 +vn -0.471395 -0.881922 0.000000 +vn 0.881921 -0.471397 0.000000 +vn 0.290284 0.956940 0.000000 +vn 0.634394 0.773010 0.000000 +vn 0.881921 0.471397 0.000000 +vn 0.995185 0.098017 0.000000 +vn 0.773010 -0.634394 0.000000 +vn 0.098018 -0.995185 0.000000 +vn 0.773011 0.634393 0.000000 +vn -0.013342 -0.043985 -0.998943 +vn 0.013342 -0.043984 -0.998943 +vn 0.043984 0.013343 -0.998943 +vn -0.035531 -0.029159 0.998943 +vn 0.043984 -0.013342 0.998943 +vn -0.043985 0.013343 0.998943 +vn -0.013342 -0.043985 0.998943 +vn 0.013343 -0.043984 0.998943 +vn 1.000000 0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +usemtl Material.001 +s off +f 32/1/1 64/2/1 1/3/1 +f 21/4/2 53/5/2 22/6/2 +f 10/7/3 42/8/3 11/9/3 +f 30/10/4 62/11/4 31/12/4 +f 19/13/5 51/14/5 20/15/5 +f 8/16/6 40/17/6 9/18/6 +f 28/19/7 60/20/7 29/21/7 +f 17/3/8 49/22/8 18/23/8 +f 6/24/9 38/25/9 7/26/9 +f 26/27/10 58/28/10 27/29/10 +f 4/30/11 36/31/11 5/32/11 +f 15/33/12 47/34/12 16/35/12 +f 24/36/13 56/37/13 25/38/13 +f 2/39/14 34/40/14 3/41/14 +f 13/42/15 45/43/15 14/44/15 +f 22/6/16 54/45/16 23/46/16 +f 11/9/17 43/47/17 12/48/17 +f 31/12/18 63/49/18 32/1/18 +f 20/15/19 52/50/19 21/4/19 +f 9/51/20 41/52/20 10/7/20 +f 29/21/21 61/53/21 30/10/21 +f 18/23/22 50/54/22 19/13/22 +f 7/26/23 39/55/23 8/16/23 +f 27/29/24 59/56/24 28/19/24 +f 5/32/25 37/57/25 6/24/25 +f 16/35/26 48/58/26 17/59/26 +f 25/60/27 57/61/27 26/27/27 +f 3/41/28 35/62/28 4/30/28 +f 14/44/29 46/63/29 15/33/29 +f 23/46/30 55/64/30 24/36/30 +f 1/65/31 33/66/31 2/39/31 +f 12/48/32 44/67/32 13/42/32 +f 96/68/26 65/22/26 128/69/26 +f 85/70/33 86/71/33 117/72/33 +f 74/73/34 75/74/34 106/75/34 +f 94/76/35 95/77/35 126/78/35 +f 83/79/28 84/80/28 115/81/28 +f 72/82/36 73/83/36 104/84/36 +f 92/85/32 93/86/32 124/87/32 +f 81/88/37 82/89/37 113/90/37 +f 70/91/38 71/92/38 102/93/38 +f 90/94/39 91/95/39 122/96/39 +f 68/97/19 69/98/19 100/99/19 +f 79/100/40 80/101/40 111/102/40 +f 88/103/41 89/104/41 120/105/41 +f 66/106/22 67/107/22 98/108/22 +f 77/109/42 78/110/42 109/111/42 +f 86/71/43 87/112/43 118/113/43 +f 75/74/44 76/114/44 107/115/44 +f 95/77/45 96/68/45 127/116/45 +f 84/80/11 85/70/11 116/117/11 +f 73/118/46 74/73/46 105/119/46 +f 93/86/47 94/76/47 125/120/47 +f 82/89/14 83/79/14 114/121/14 +f 71/92/48 72/82/48 103/122/48 +f 91/95/49 92/85/49 123/123/49 +f 69/98/2 70/91/2 101/124/2 +f 80/101/50 81/125/50 112/126/50 +f 89/127/51 90/94/51 121/118/51 +f 67/107/5 68/97/5 99/128/5 +f 78/110/52 79/100/52 110/129/52 +f 87/112/53 88/103/53 119/130/53 +f 65/131/8 66/106/8 97/132/8 +f 76/114/7 77/109/7 108/133/7 +f 41/134/54 40/135/54 105/136/54 +f 3/137/55 4/138/55 67/139/55 +f 56/140/56 55/141/56 120/142/56 +f 18/143/57 19/144/57 82/145/57 +f 34/146/58 33/147/58 98/148/58 +f 11/149/59 12/150/59 75/151/59 +f 49/152/60 48/153/60 113/154/60 +f 64/155/61 63/156/61 128/157/61 +f 26/158/62 27/159/62 90/160/62 +f 4/138/63 5/161/63 69/162/63 +f 42/163/64 41/134/64 106/164/64 +f 57/165/65 56/140/65 121/166/65 +f 19/144/66 20/167/66 83/168/66 +f 35/169/67 34/146/67 99/170/67 +f 12/150/68 13/171/68 76/172/68 +f 50/173/69 49/152/69 114/174/69 +f 33/147/70 64/155/70 128/157/70 +f 27/159/71 28/175/71 91/176/71 +f 5/161/72 6/177/72 69/162/72 +f 43/178/73 42/163/73 107/179/73 +f 58/180/74 57/165/74 122/181/74 +f 20/167/75 21/182/75 84/183/75 +f 36/184/76 35/169/76 100/185/76 +f 13/171/77 14/186/77 77/187/77 +f 51/188/78 50/173/78 115/189/78 +f 28/175/79 29/190/79 92/191/79 +f 6/177/80 7/192/80 70/193/80 +f 44/194/81 43/178/81 108/195/81 +f 59/196/82 58/180/82 123/197/82 +f 21/182/83 22/198/83 85/199/83 +f 37/200/84 36/184/84 101/201/84 +f 14/186/85 15/202/85 78/203/85 +f 52/204/86 51/188/86 115/189/86 +f 29/190/87 30/205/87 94/206/87 +f 7/192/88 8/207/88 71/208/88 +f 45/209/89 44/194/89 109/210/89 +f 60/211/90 59/196/90 124/212/90 +f 22/198/91 23/213/91 86/214/91 +f 38/215/92 37/200/92 102/216/92 +f 15/202/93 16/217/93 79/218/93 +f 53/219/94 52/204/94 117/220/94 +f 30/205/95 31/221/95 95/222/95 +f 8/207/96 9/223/96 72/224/96 +f 46/225/97 45/209/97 109/210/97 +f 61/226/98 60/211/98 125/227/98 +f 23/213/99 24/228/99 88/229/99 +f 1/230/100 2/231/100 66/232/100 +f 39/233/101 38/215/101 103/234/101 +f 54/235/102 53/219/102 118/236/102 +f 16/217/103 17/237/103 80/238/103 +f 31/221/104 32/239/104 96/240/104 +f 9/223/105 10/241/105 73/242/105 +f 47/243/106 46/225/106 110/244/106 +f 62/245/107 61/226/107 126/246/107 +f 24/228/108 25/247/108 89/248/108 +f 2/231/109 3/137/109 66/232/109 +f 40/135/110 39/233/110 103/234/110 +f 55/141/111 54/235/111 119/249/111 +f 17/237/112 18/143/112 81/250/112 +f 32/239/113 1/230/113 96/240/113 +f 48/153/114 47/243/114 112/251/114 +f 10/241/115 11/149/115 74/252/115 +f 63/156/116 62/245/116 127/253/116 +f 25/247/117 26/158/117 89/248/117 +f 138/254/118 140/255/118 129/256/118 +f 142/257/118 144/258/118 131/259/118 +f 146/260/118 148/261/118 133/262/118 +f 150/263/118 152/264/118 135/265/118 +f 138/254/118 137/266/118 140/255/118 +f 142/257/118 141/267/118 144/258/118 +f 146/260/118 145/268/118 148/261/118 +f 150/263/118 149/269/118 152/264/118 +f 162/270/119 153/271/119 164/272/119 +f 166/273/119 155/274/119 168/275/119 +f 170/276/119 157/277/119 172/278/119 +f 174/279/119 159/280/119 176/281/119 +f 162/270/119 164/272/119 161/282/119 +f 166/273/119 168/275/119 165/283/119 +f 170/276/119 172/278/119 169/284/119 +f 174/279/119 176/281/119 173/285/119 +f 143/286/120 141/287/120 167/288/120 +f 131/289/121 132/290/121 155/291/121 +f 138/292/122 129/293/122 162/294/122 +f 135/290/121 136/295/121 159/296/121 +f 145/297/123 146/298/123 169/299/123 +f 146/300/124 133/301/124 170/302/124 +f 130/303/125 140/304/125 154/305/125 +f 148/287/126 147/306/126 172/307/126 +f 134/308/127 148/309/127 158/310/127 +f 137/311/128 138/312/128 161/313/128 +f 147/306/120 145/314/120 171/315/120 +f 140/316/126 139/317/126 164/318/126 +f 129/319/121 130/320/121 153/321/121 +f 149/309/128 150/322/128 173/323/128 +f 133/295/121 134/324/121 157/325/121 +f 139/317/120 137/326/120 163/327/120 +f 142/328/122 131/329/122 166/330/122 +f 152/331/126 151/332/126 176/333/126 +f 150/334/122 135/335/122 174/336/122 +f 141/337/128 142/338/128 165/339/128 +f 132/340/127 144/341/127 156/342/127 +f 151/332/120 149/343/120 175/344/120 +f 136/345/127 152/346/127 160/347/127 +f 144/314/126 143/286/126 168/348/126 +f 64/2/1 33/349/1 1/3/1 +f 53/5/129 54/45/129 22/6/129 +f 42/8/130 43/47/130 11/9/130 +f 62/11/131 63/49/131 31/12/131 +f 51/14/5 52/50/5 20/15/5 +f 40/17/6 41/350/6 9/18/6 +f 60/20/7 61/53/7 29/21/7 +f 49/22/8 50/54/8 18/23/8 +f 38/25/132 39/55/132 7/26/132 +f 58/28/10 59/56/10 27/29/10 +f 36/31/133 37/57/133 5/32/133 +f 47/34/134 48/58/134 16/35/134 +f 56/37/13 57/351/13 25/38/13 +f 34/40/14 35/62/14 3/41/14 +f 45/43/15 46/63/15 14/44/15 +f 54/45/16 55/64/16 23/46/16 +f 43/47/135 44/67/135 12/48/135 +f 63/49/18 64/2/18 32/1/18 +f 52/50/136 53/5/136 21/4/136 +f 41/52/137 42/8/137 10/7/137 +f 61/53/21 62/11/21 30/10/21 +f 50/54/22 51/14/22 19/13/22 +f 39/55/23 40/17/23 8/16/23 +f 59/56/138 60/20/138 28/19/138 +f 37/57/139 38/25/139 6/24/139 +f 48/58/26 49/352/26 17/59/26 +f 57/61/27 58/28/27 26/27/27 +f 35/62/28 36/31/28 4/30/28 +f 46/63/29 47/34/29 15/33/29 +f 55/64/30 56/37/30 24/36/30 +f 33/66/31 34/40/31 2/39/31 +f 44/67/140 45/43/140 13/42/140 +f 65/22/26 97/353/26 128/69/26 +f 86/71/141 118/113/141 117/72/141 +f 75/74/142 107/115/142 106/75/142 +f 95/77/143 127/116/143 126/78/143 +f 84/80/28 116/117/28 115/81/28 +f 73/83/13 105/354/13 104/84/13 +f 93/86/32 125/120/32 124/87/32 +f 82/89/37 114/121/37 113/90/37 +f 71/92/144 103/122/144 102/93/144 +f 91/95/39 123/123/39 122/96/39 +f 69/98/19 101/124/19 100/99/19 +f 80/101/145 112/126/145 111/102/145 +f 89/104/41 121/355/41 120/105/41 +f 67/107/22 99/128/22 98/108/22 +f 78/110/146 110/129/146 109/111/146 +f 87/112/132 119/130/132 118/113/132 +f 76/114/147 108/133/147 107/115/147 +f 96/68/45 128/69/45 127/116/45 +f 85/70/133 117/72/133 116/117/133 +f 74/73/148 106/75/148 105/119/148 +f 94/76/47 126/78/47 125/120/47 +f 83/79/14 115/81/14 114/121/14 +f 72/82/48 104/84/48 103/122/48 +f 92/85/49 124/87/49 123/123/49 +f 70/91/149 102/93/149 101/124/149 +f 81/125/50 113/356/50 112/126/50 +f 90/94/137 122/96/137 121/118/137 +f 68/97/5 100/99/5 99/128/5 +f 79/100/52 111/102/52 110/129/52 +f 88/103/53 120/105/53 119/130/53 +f 66/106/150 98/108/150 97/132/150 +f 77/109/151 109/111/151 108/133/151 +f 40/135/54 104/357/54 105/136/54 +f 4/138/55 68/358/55 67/139/55 +f 55/141/56 119/249/56 120/142/56 +f 19/144/57 83/168/57 82/145/57 +f 33/147/58 97/359/58 98/148/58 +f 12/150/59 76/172/59 75/151/59 +f 48/153/60 112/251/60 113/154/60 +f 63/156/152 127/253/152 128/157/152 +f 27/159/62 91/176/62 90/160/62 +f 68/358/63 4/138/63 69/162/63 +f 41/134/64 105/136/64 106/164/64 +f 56/140/65 120/142/65 121/166/65 +f 20/167/66 84/183/66 83/168/66 +f 34/146/153 98/148/153 99/170/153 +f 13/171/68 77/187/68 76/172/68 +f 49/152/69 113/154/69 114/174/69 +f 97/359/70 33/147/70 128/157/70 +f 28/175/71 92/191/71 91/176/71 +f 6/177/72 70/193/72 69/162/72 +f 42/163/154 106/164/154 107/179/154 +f 57/165/74 121/166/74 122/181/74 +f 21/182/75 85/199/75 84/183/75 +f 35/169/76 99/170/76 100/185/76 +f 14/186/77 78/203/77 77/187/77 +f 50/173/78 114/174/78 115/189/78 +f 29/190/155 93/360/155 92/191/155 +f 7/192/80 71/208/80 70/193/80 +f 43/178/81 107/179/81 108/195/81 +f 58/180/82 122/181/82 123/197/82 +f 22/198/83 86/214/83 85/199/83 +f 36/184/84 100/185/84 101/201/84 +f 15/202/85 79/218/85 78/203/85 +f 116/361/86 52/204/86 115/189/86 +f 93/360/87 29/190/87 94/206/87 +f 8/207/156 72/224/156 71/208/156 +f 44/194/89 108/195/89 109/210/89 +f 59/196/90 123/197/90 124/212/90 +f 23/213/91 87/362/91 86/214/91 +f 37/200/92 101/201/92 102/216/92 +f 16/217/93 80/238/93 79/218/93 +f 52/204/94 116/361/94 117/220/94 +f 94/206/95 30/205/95 95/222/95 +f 9/223/96 73/242/96 72/224/96 +f 110/244/97 46/225/97 109/210/97 +f 60/211/98 124/212/98 125/227/98 +f 87/362/157 23/213/157 88/229/157 +f 65/363/100 1/230/100 66/232/100 +f 38/215/101 102/216/101 103/234/101 +f 53/219/102 117/220/102 118/236/102 +f 17/237/103 81/250/103 80/238/103 +f 95/222/158 31/221/158 96/240/158 +f 10/241/105 74/252/105 73/242/105 +f 111/364/106 47/243/106 110/244/106 +f 61/226/107 125/227/107 126/246/107 +f 88/229/108 24/228/108 89/248/108 +f 3/137/159 67/139/159 66/232/159 +f 104/357/110 40/135/110 103/234/110 +f 54/235/111 118/236/111 119/249/111 +f 18/143/112 82/145/112 81/250/112 +f 1/230/113 65/363/113 96/240/113 +f 47/243/114 111/364/114 112/251/114 +f 11/149/115 75/151/115 74/252/115 +f 62/245/116 126/246/116 127/253/116 +f 26/158/117 90/160/117 89/248/117 +f 140/255/118 130/365/118 129/256/118 +f 144/258/118 132/366/118 131/259/118 +f 148/261/118 134/367/118 133/262/118 +f 152/264/118 136/368/118 135/265/118 +f 137/266/118 139/369/118 140/255/118 +f 141/267/118 143/370/118 144/258/118 +f 145/268/118 147/371/118 148/261/118 +f 149/269/118 151/372/118 152/264/118 +f 153/271/119 154/373/119 164/272/119 +f 155/274/119 156/374/119 168/275/119 +f 157/277/119 158/375/119 172/278/119 +f 159/280/119 160/376/119 176/281/119 +f 164/272/119 163/377/119 161/282/119 +f 168/275/119 167/378/119 165/283/119 +f 172/278/119 171/379/119 169/284/119 +f 176/281/119 175/380/119 173/285/119 +f 141/287/160 165/381/160 167/288/160 +f 132/290/161 156/296/161 155/291/161 +f 129/293/122 153/382/122 162/294/122 +f 136/295/161 160/325/161 159/296/161 +f 146/298/123 170/383/123 169/299/123 +f 133/301/122 157/329/122 170/302/122 +f 140/304/125 164/384/125 154/305/125 +f 147/306/126 171/315/126 172/307/126 +f 148/309/125 172/323/125 158/310/125 +f 138/312/128 162/385/128 161/313/128 +f 145/314/160 169/386/160 171/315/160 +f 139/317/126 163/327/126 164/318/126 +f 130/320/161 154/387/161 153/321/161 +f 150/322/128 174/388/128 173/323/128 +f 134/324/161 158/389/161 157/325/161 +f 137/326/160 161/390/160 163/327/160 +f 131/329/122 155/301/122 166/330/122 +f 151/332/126 175/344/126 176/333/126 +f 135/335/122 159/391/122 174/336/122 +f 142/338/128 166/392/128 165/339/128 +f 144/341/125 168/393/125 156/342/125 +f 149/343/160 173/394/160 175/344/160 +f 152/346/125 176/395/125 160/347/125 +f 143/286/126 167/288/126 168/348/126 diff --git a/Escape-the-Dawn/Renderer.cpp b/Escape-the-Dawn/Renderer.cpp index 87a7e79..1876317 100644 --- a/Escape-the-Dawn/Renderer.cpp +++ b/Escape-the-Dawn/Renderer.cpp @@ -99,6 +99,13 @@ void Renderer::LoadContent() m_ShaderProgramDebugAABB.Compile(); m_ShaderProgramDebugAABB.Link(); + m_ShaderProgramSkybox.AddShader(std::shared_ptr(new VertexShader("Shaders/Skybox.vert.glsl"))); + m_ShaderProgramSkybox.AddShader(std::shared_ptr(new FragmentShader("Shaders/Skybox.frag.glsl"))); + m_ShaderProgramSkybox.Compile(); + m_ShaderProgramSkybox.Link(); + + m_Skybox = std::make_shared(CubemapTexture("Textures/right.jpg", "Textures/left.jpg", "Textures/top.jpg", "Textures/bottom.jpg", "Textures/front.jpg", "Textures/back.jpg")); + m_DebugAABB = CreateAABB(); m_ScreenQuad = CreateQuad(); CreateShadowMap(m_ShadowMapRes); @@ -133,6 +140,7 @@ void Renderer::Draw(double dt) { glDisable(GL_BLEND); + DrawSkybox(); DrawShadowMap(); DrawScene(); @@ -167,13 +175,26 @@ void Renderer::Draw(double dt) glfwSwapBuffers(m_Window); } -void Renderer::DrawScene() +void Renderer::DrawSkybox() { glBindFramebuffer(GL_FRAMEBUFFER, 0); glViewport(0, 0, WIDTH, HEIGHT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glClearColor(1.0f, 1.0f, 0.0f, 1.0f); + m_ShaderProgramSkybox.Bind(); + glm::mat4 cameraMatrix = m_Camera->ProjectionMatrix() * glm::toMat4(m_Camera->Orientation()); + glUniformMatrix4fv(glGetUniformLocation(m_ShaderProgramSkybox.GetHandle(), "MVP"), 1, GL_FALSE, glm::value_ptr(cameraMatrix)); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + m_Skybox->Draw(); +} + +void Renderer::DrawScene() +{ + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glViewport(0, 0, WIDTH, HEIGHT); + + glClear(GL_DEPTH_BUFFER_BIT); + //glClearColor(1.0f, 1.0f, 0.0f, 1.0f); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); @@ -461,6 +482,33 @@ GLuint Renderer::CreateAABB() return vao; } +GLuint Renderer::CreateSkybox() +{ + glm::vec3 skyBoxVertices[] = + { + glm::vec3( 1.0f, -1.0f, -1.0f), glm::vec3( 1.0f, -1.0f, 1.0f), glm::vec3( 1.0f, 1.0f, 1.0f), glm::vec3( 1.0f, 1.0f, 1.0f), glm::vec3( 1.0f, 1.0f, -1.0f), glm::vec3( 1.0f, -1.0f, -1.0f), + glm::vec3(-1.0f, -1.0f, 1.0f), glm::vec3(-1.0f, -1.0f, -1.0f), glm::vec3(-1.0f, 1.0f, -1.0f), glm::vec3(-1.0f, 1.0f, -1.0f), glm::vec3(-1.0f, 1.0f, 1.0f), glm::vec3(-1.0f, -1.0f, 1.0f), + glm::vec3(-1.0f, 1.0f, -1.0f), glm::vec3( 1.0f, 1.0f, -1.0f), glm::vec3( 1.0f, 1.0f, 1.0f), glm::vec3( 1.0f, 1.0f, 1.0f), glm::vec3(-1.0f, 1.0f, 1.0f), glm::vec3(-1.0f, 1.0f, -1.0f), + glm::vec3(-1.0f, -1.0f, 1.0f), glm::vec3( 1.0f, -1.0f, 1.0f), glm::vec3( 1.0f, -1.0f, -1.0f), glm::vec3( 1.0f, -1.0f, -1.0f), glm::vec3(-1.0f, -1.0f, -1.0f), glm::vec3(-1.0f, -1.0f, 1.0f), + glm::vec3( 1.0f, -1.0f, 1.0f), glm::vec3(-1.0f, -1.0f, 1.0f), glm::vec3(-1.0f, 1.0f, 1.0f), glm::vec3(-1.0f, 1.0f, 1.0f), glm::vec3( 1.0f, 1.0f, 1.0f), glm::vec3( 1.0f, -1.0f, 1.0f), + glm::vec3(-1.0f, -1.0f, -1.0f), glm::vec3( 1.0f, -1.0f, -1.0f), glm::vec3( 1.0f, 1.0f, -1.0f), glm::vec3( 1.0f, 1.0f, -1.0f), glm::vec3(-1.0f, 1.0f, -1.0f), glm::vec3(-1.0f, -1.0f, -1.0f) + }; + + GLuint vbo, vao; + glGenBuffers(1, &vbo); + glBindBuffer(GL_ARRAY_BUFFER, vbo); + glBufferData(GL_ARRAY_BUFFER, sizeof(skyBoxVertices), skyBoxVertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + glGenVertexArrays(1, &vao); + glBindVertexArray(vao); + glBindBuffer(GL_ARRAY_BUFFER, vbo); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0); + glEnableVertexAttribArray(0); + glBindVertexArray(0); + + return vao; +} void Renderer::ClearStuff() { AABBsToRender.clear(); diff --git a/Escape-the-Dawn/Renderer.h b/Escape-the-Dawn/Renderer.h index 2c4c492..3bb7ff6 100644 --- a/Escape-the-Dawn/Renderer.h +++ b/Escape-the-Dawn/Renderer.h @@ -20,6 +20,7 @@ #include "ShaderProgram.h" #include "Model.h" #include "Components/PointLight.h" +#include "Skybox.h" class Renderer { @@ -71,6 +72,9 @@ public: void DrawWireframe(bool val) { m_DrawWireframe = val; } bool DrawBounds() const { return m_DrawBounds; } void DrawBounds(bool val) { m_DrawBounds = val; } + void DrawSkybox(); + + private: GLFWwindow* m_Window; @@ -81,6 +85,8 @@ private: bool m_DrawWireframe; bool m_DrawBounds; + std::shared_ptr m_Skybox; + int m_ShadowMapRes; glm::vec3 m_SunPosition; glm::vec3 m_SunTarget; @@ -98,6 +104,7 @@ private: ShaderProgram m_ShaderProgramShadows; ShaderProgram m_ShaderProgramShadowsDrawDepth; ShaderProgram m_ShaderProgramDebugAABB; + ShaderProgram m_ShaderProgramSkybox; void ClearStuff(); void DrawScene(); @@ -107,6 +114,7 @@ private: GLuint CreateQuad(); void DrawDebugShadowMap(); GLuint CreateAABB(); + GLuint CreateSkybox(void); }; diff --git a/Escape-the-Dawn/Shaders/Skybox.frag.glsl b/Escape-the-Dawn/Shaders/Skybox.frag.glsl new file mode 100644 index 0000000..66956b4 --- /dev/null +++ b/Escape-the-Dawn/Shaders/Skybox.frag.glsl @@ -0,0 +1,15 @@ +#version 430 + +uniform samplerCube CubemapTexture; + +in VertexData { + vec3 TextureCoord; +} Input; + +out vec4 FragColor; + +void main() +{ + FragColor = texture(CubemapTexture, Input.TextureCoord); + //FragColor = vec4(1.0, 1.0, 1.0, 0.0); +} \ No newline at end of file diff --git a/Escape-the-Dawn/Shaders/Skybox.vert.glsl b/Escape-the-Dawn/Shaders/Skybox.vert.glsl new file mode 100644 index 0000000..f4f8c4c --- /dev/null +++ b/Escape-the-Dawn/Shaders/Skybox.vert.glsl @@ -0,0 +1,15 @@ +#version 430 + +uniform mat4 MVP; + +layout(location = 0) in vec3 Position; + +out VertexData { + vec3 TextureCoord; +} Output; + +void main() +{ + gl_Position = MVP * vec4(Position, 1.0); + Output.TextureCoord = Position; +} \ No newline at end of file diff --git a/Escape-the-Dawn/Skybox.cpp b/Escape-the-Dawn/Skybox.cpp new file mode 100644 index 0000000..db2218a --- /dev/null +++ b/Escape-the-Dawn/Skybox.cpp @@ -0,0 +1,79 @@ +#include "Skybox.h" + +Skybox::Skybox(CubemapTexture cubemap) +{ + m_Cubemap = cubemap; + + float cubeVertices[] = { + -1.0f, -1.0f, -1.0f, + 1.0f, -1.0f, -1.0f, + 1.0f, 1.0f, -1.0f, + -1.0f, 1.0f, -1.0f, + + -1.0f, -1.0f, 1.0f, + 1.0f, -1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, + -1.0f, 1.0f, 1.0f, + }; + //std::copy(cubeVertices, cubeVertices + (3*8 - 1), m_CubeVertices); + + unsigned int cubeIndices[] = { + // Back + 0, 2, 3, + 0, 1, 2, + + // Right + 1, 6, 2, + 1, 5, 6, + + // Front + 5, 7, 6, + 5, 4, 7, + + // Left + 4, 3, 7, + 4, 0, 3, + + // Top + 3, 6, 7, + 3, 2, 6, + + // Bottom + 4, 1, 0, + 4, 5, 1, + }; + //std::copy(cubeIndices, cubeIndices + (3*12 - 1), m_CubeIndices); + + GLuint vbo; + glGenBuffers(1, &vbo); + glBindBuffer(GL_ARRAY_BUFFER, vbo); + glBufferData(GL_ARRAY_BUFFER, 3 * 8 * sizeof(float), cubeVertices, GL_STATIC_DRAW); + + glGenBuffers(1, &ibo); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, 3 * 12 * sizeof(int), cubeIndices, GL_STATIC_DRAW); + glGenVertexArrays(1, &vao); + glBindVertexArray(vao); + glBindBuffer(GL_ARRAY_BUFFER, vbo); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0); + glEnableVertexAttribArray(0); + + GLERROR(""); +} + + +Skybox::~Skybox() +{ + +} + +void Skybox::Draw() +{ + m_Cubemap.Bind(GL_TEXTURE0); + + glBindVertexArray(vao); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); + glDepthMask(GL_FALSE); + glDrawElements(GL_TRIANGLES, 3 * 12, GL_UNSIGNED_INT, 0); + glDepthMask(GL_TRUE); +} diff --git a/Escape-the-Dawn/Skybox.h b/Escape-the-Dawn/Skybox.h new file mode 100644 index 0000000..ff014e9 --- /dev/null +++ b/Escape-the-Dawn/Skybox.h @@ -0,0 +1,29 @@ +#ifndef Skybox_h__ +#define Skybox_h__ + +#include + +#include "OpenGL.h" +#include "logging.h" +#include "glerror.h" +#include "CubemapTexture.h" + +class Skybox +{ +public: + Skybox(CubemapTexture cubemap); + ~Skybox(); + + void Draw(); + +private: + CubemapTexture m_Cubemap; + + GLuint ibo; + GLuint vao; + + float m_CubeVertices[3 * 8]; + int m_CubeIndices[1]; +}; + +#endif // Skybox_h__ \ No newline at end of file diff --git a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp index 05fcf0a..a249739 100644 --- a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp +++ b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp @@ -32,7 +32,7 @@ void Systems::LevelGenerationSystem::SpawnObstacle() sound->Loop = true; sound->Gain = 1.f; - sound->ReferenceDistance = 15.f; + sound->ReferenceDistance = 4.f; m_World->GetSystem("SoundSystem")->PlaySound(sound, "Sounds/hum.wav"); if(typeRandom >= 0 && typeRandom < 2) // Mountain stuff :D diff --git a/Escape-the-Dawn/Systems/SoundsSystem.cpp b/Escape-the-Dawn/Systems/SoundsSystem.cpp index bbe152f..8e1f6ed 100644 --- a/Escape-the-Dawn/Systems/SoundsSystem.cpp +++ b/Escape-the-Dawn/Systems/SoundsSystem.cpp @@ -198,7 +198,7 @@ ALuint Systems::SoundSystem::CreateSource() ALuint source; alGenSources((ALuint)1, &source); - alDopplerFactor(2.f); // Numbers greater than 1 will increase Doppler effect, numbers lower than 1 will decrease the Doppler effect + alDopplerFactor(1); // Numbers greater than 1 will increase Doppler effect, numbers lower than 1 will decrease the Doppler effect alDopplerVelocity(350.f); // Defines the velocity of the sound return source; diff --git a/Escape-the-Dawn/Textures/back.jpg b/Escape-the-Dawn/Textures/back.jpg new file mode 100644 index 0000000..0da3ae4 Binary files /dev/null and b/Escape-the-Dawn/Textures/back.jpg differ diff --git a/Escape-the-Dawn/Textures/bottom.jpg b/Escape-the-Dawn/Textures/bottom.jpg new file mode 100644 index 0000000..2e7d15e Binary files /dev/null and b/Escape-the-Dawn/Textures/bottom.jpg differ diff --git a/Escape-the-Dawn/Textures/front.jpg b/Escape-the-Dawn/Textures/front.jpg new file mode 100644 index 0000000..d49b8b1 Binary files /dev/null and b/Escape-the-Dawn/Textures/front.jpg differ diff --git a/Escape-the-Dawn/Textures/left.jpg b/Escape-the-Dawn/Textures/left.jpg new file mode 100644 index 0000000..7adbdc8 Binary files /dev/null and b/Escape-the-Dawn/Textures/left.jpg differ diff --git a/Escape-the-Dawn/Textures/right.jpg b/Escape-the-Dawn/Textures/right.jpg new file mode 100644 index 0000000..b4aaa73 Binary files /dev/null and b/Escape-the-Dawn/Textures/right.jpg differ diff --git a/Escape-the-Dawn/Textures/top.jpg b/Escape-the-Dawn/Textures/top.jpg new file mode 100644 index 0000000..80a9b48 Binary files /dev/null and b/Escape-the-Dawn/Textures/top.jpg differ diff --git a/Escape-the-Dawn/Textures/tron_back.jpg b/Escape-the-Dawn/Textures/tron_back.jpg new file mode 100644 index 0000000..e7ad4f1 Binary files /dev/null and b/Escape-the-Dawn/Textures/tron_back.jpg differ diff --git a/Escape-the-Dawn/Textures/tron_bottom.jpg b/Escape-the-Dawn/Textures/tron_bottom.jpg new file mode 100644 index 0000000..c7b60e2 Binary files /dev/null and b/Escape-the-Dawn/Textures/tron_bottom.jpg differ diff --git a/Escape-the-Dawn/Textures/tron_front.jpg b/Escape-the-Dawn/Textures/tron_front.jpg new file mode 100644 index 0000000..e69ae42 Binary files /dev/null and b/Escape-the-Dawn/Textures/tron_front.jpg differ diff --git a/Escape-the-Dawn/Textures/tron_left.jpg b/Escape-the-Dawn/Textures/tron_left.jpg new file mode 100644 index 0000000..947b208 Binary files /dev/null and b/Escape-the-Dawn/Textures/tron_left.jpg differ diff --git a/Escape-the-Dawn/Textures/tron_right.jpg b/Escape-the-Dawn/Textures/tron_right.jpg new file mode 100644 index 0000000..85ccab0 Binary files /dev/null and b/Escape-the-Dawn/Textures/tron_right.jpg differ diff --git a/Escape-the-Dawn/Textures/tron_top.jpg b/Escape-the-Dawn/Textures/tron_top.jpg new file mode 100644 index 0000000..78e193f Binary files /dev/null and b/Escape-the-Dawn/Textures/tron_top.jpg differ