diff --git a/Debug/grk-cw8.exe b/Debug/grk-cw8.exe index a8a7364..50f799a 100644 Binary files a/Debug/grk-cw8.exe and b/Debug/grk-cw8.exe differ diff --git a/Debug/grk-cw8.log b/Debug/grk-cw8.log index ad7d530..40d53b1 100644 --- a/Debug/grk-cw8.log +++ b/Debug/grk-cw8.log @@ -1,19 +1,25 @@  projekt.cpp -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(80,43): warning C4305: "argument": obcięcie z "double" do "float" -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(174,66): warning C4305: "argument": obcięcie z "double" do "physx::PxReal" -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(182,64): warning C4305: "argument": obcięcie z "double" do "physx::PxReal" -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(379,60): warning C4244: "argument": konwersja z "double" do "float", możliwa utrata danych -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(380,60): warning C4244: "argument": konwersja z "double" do "float", możliwa utrata danych -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(393,57): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(419,57): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(432,30): warning C4244: "inicjowanie": konwersja z "double" do "float", możliwa utrata danych -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(447,243): warning C4305: "argument": obcięcie z "double" do "T" +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(92,43): warning C4305: "argument": obcięcie z "double" do "float" +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(186,66): warning C4305: "argument": obcięcie z "double" do "physx::PxReal" +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(194,64): warning C4305: "argument": obcięcie z "double" do "physx::PxReal" +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(431,60): warning C4244: "argument": konwersja z "double" do "float", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(432,60): warning C4244: "argument": konwersja z "double" do "float", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(445,57): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(481,57): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(494,30): warning C4244: "inicjowanie": konwersja z "double" do "float", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(509,243): warning C4305: "argument": obcięcie z "double" do "T" with [ T=float ] -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(493,15): warning C4244: "argument": konwersja z "time_t" do "unsigned int", możliwa utrata danych -D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(524,49): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(516,149): warning C4305: "argument": obcięcie z "double" do "T" + with + [ + T=float + ] +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(523,26): warning C4244: "inicjowanie": konwersja z "glm::tvec3::length_type" do "float", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(549,15): warning C4244: "argument": konwersja z "time_t" do "unsigned int", możliwa utrata danych +D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(581,49): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych Camera.obj : warning LNK4075: zignorowano opcję „/EDITANDCONTINUE” z powodu określenia opcji „/INCREMENTAL:NO” PhysXExtensions_static_32.lib(ExtCpuWorkerThread.obj) : warning LNK4099: nie znaleziono pliku PDB „PhysXExtensions_static_32.pdb” z elementem „PhysXExtensions_static_32.lib(ExtCpuWorkerThread.obj)” lub w pozycji „D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\Debug\PhysXExtensions_static_32.pdb”; obiekt zostanie skonsolidowany bez informacji debugowania PhysXExtensions_static_32.lib(ExtDefaultCpuDispatcher.obj) : warning LNK4099: nie znaleziono pliku PDB „PhysXExtensions_static_32.pdb” z elementem „PhysXExtensions_static_32.lib(ExtDefaultCpuDispatcher.obj)” lub w pozycji „D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\Debug\PhysXExtensions_static_32.pdb”; obiekt zostanie skonsolidowany bez informacji debugowania diff --git a/Debug/grk-cw8.pdb b/Debug/grk-cw8.pdb index 43d4b14..384e023 100644 Binary files a/Debug/grk-cw8.pdb and b/Debug/grk-cw8.pdb differ diff --git a/Debug/grk-cw8.tlog/CL.read.1.tlog b/Debug/grk-cw8.tlog/CL.read.1.tlog index 0b14a8b..9e43fdf 100644 Binary files a/Debug/grk-cw8.tlog/CL.read.1.tlog and b/Debug/grk-cw8.tlog/CL.read.1.tlog differ diff --git a/Debug/grk-cw8.tlog/CL.write.1.tlog b/Debug/grk-cw8.tlog/CL.write.1.tlog index 6952d11..fc9a111 100644 Binary files a/Debug/grk-cw8.tlog/CL.write.1.tlog and b/Debug/grk-cw8.tlog/CL.write.1.tlog differ diff --git a/Debug/projekt.obj b/Debug/projekt.obj index e2c4b98..44edb6f 100644 Binary files a/Debug/projekt.obj and b/Debug/projekt.obj differ diff --git a/Debug/vc142.idb b/Debug/vc142.idb index b9671cf..6d594ef 100644 Binary files a/Debug/vc142.idb and b/Debug/vc142.idb differ diff --git a/Debug/vc142.pdb b/Debug/vc142.pdb index c426962..dd1c8a3 100644 Binary files a/Debug/vc142.pdb and b/Debug/vc142.pdb differ diff --git a/src/projekt.cpp b/src/projekt.cpp index 2ff9649..4c635b7 100644 --- a/src/projekt.cpp +++ b/src/projekt.cpp @@ -21,6 +21,7 @@ GLuint programTexture; GLuint programSkybox; GLuint programSun; GLuint cubemapTexture; +GLuint cubemapTexture2; GLuint skyboxVAO, skyboxVBO; Core::Shader_Loader shaderLoader; @@ -74,6 +75,17 @@ std::vector faces "textures/skybox/stars.jpeg", "textures/skybox/stars.jpeg", }; +// skybox +std::vector faces2 +{ + "textures/skybox/stars3.jpeg", + "textures/skybox/stars3.jpeg", + "textures/skybox/stars3.jpeg", + "textures/skybox/stars3.jpeg", + "textures/skybox/stars3.jpeg", + "textures/skybox/stars3.jpeg", +}; + // Initalization of physical scene (PhysX) @@ -250,10 +262,21 @@ void keyboard(unsigned char key, int x, int y) case 'w': if (orbitSpeed < 0.02f) { - orbitSpeed += 0.001f; + orbitSpeed += 0.0001f; } break; case 's': + if (orbitSpeed > 0.001f) { + orbitSpeed -= 0.0001f; + } + break; + + case 'd': + if (orbitSpeed < 0.02f) { + orbitSpeed += 0.001f; + } + break; + case 'a': if (orbitSpeed > 0.001f) { orbitSpeed -= 0.001f; } @@ -266,6 +289,19 @@ void mouse(int x, int y) } +glm::mat4 createCameraMatrixLoading() +{ + float time = glutGet(GLUT_ELAPSED_TIME) / 1000.0f - appLoadingTime; + + // Obliczanie kierunku patrzenia kamery (w plaszczyznie x-z) przy uzyciu zmiennej cameraAngle kontrolowanej przez klawisze. + cameraPos = glm::vec3(0, 0, 40); + //cameraDir = glm::vec3(cosf(cameraAngle), 0.0f, sinf(cameraAngle)); + cameraDir = glm::normalize(glm::vec3(0, 0, 0) - cameraPos); + glm::vec3 up = glm::vec3(0, 1, 0); + + return Core::createViewMatrix(cameraPos, cameraDir, up); +} + glm::mat4 createCameraMatrixOrbit() { @@ -343,6 +379,22 @@ void drawObjectTexture(Core::RenderContext* context, glm::mat4 modelMatrix, GLui glUseProgram(0); } + +void shutdown() +{ + shaderLoader.DeleteProgram(programColor); + shaderLoader.DeleteProgram(programTexture); + + planeContext.initFromOBJ(planeModel); + boxContext.initFromOBJ(boxModel); + shipContext.initFromOBJ(shipModel); + boosterContext.initFromOBJ(boosterModel); + platformContext.initFromOBJ(platformModel); + craneContext.initFromOBJ(craneModel); + lampContext.initFromOBJ(lampModel); +} + + void renderScene() { //start @@ -411,11 +463,21 @@ void renderScene() if (time < 3) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glClearColor(1.f, 1.f, 1.f, 1.0f); + glClearColor(0.0f, 0.1f, 0.3f, 1.0f); + + //cameraMatrix = createCameraMatrixLoading(); + // perspectiveMatrix = Core::createPerspectiveMatrix(0.1f, 1000.f); + Skybox::drawSkybox(programSkybox, cameraMatrix, perspectiveMatrix, cubemapTexture2); + + glutSwapBuffers(); } else { reload = true; + lightDir = glm::normalize(glm::vec3(1.0f, -1.0f, -1.0f)); + lightPos = glm::vec3(0, 0, -800); + cameraAngle = glm::radians(0.0f); + cameraPos = glm::vec3(0, 0, -250); appLoadingTime = glutGet(GLUT_ELAPSED_TIME) / 1000.0; } } @@ -451,7 +513,17 @@ void renderScene() //drawObjectTexture(&sphereModelOrbit, glm::translate(glm::vec3(0, 0, 0)) * glm::scale(glm::vec3(20.f)), textureSun); //STATION - drawObjectColor(&stationContextOrbit, glm::rotate(time / 2.0f, glm::vec3(0, 1, 0)) * glm::translate(glm::vec3(0, 0, 200)) * glm::scale(glm::vec3(5)), glm::vec3(0.5)); + glm::mat4 stationmat = glm::rotate(time / 2.0f, glm::vec3(0, 1, 0)) * glm::translate(glm::vec3(0, -0.7f, 245.5f)) * glm::scale(glm::vec3(0.4)) * glm::rotate(glm::radians(-90.0f), glm::vec3(0, 1, 0)); + drawObjectColor(&stationContextOrbit, stationmat, glm::vec3(0.5)); + + stationmat = perspectiveMatrix * stationmat; + glm::vec3 stationPos = glm::vec3(stationmat[3][0], stationmat[3][1], stationmat[3][2]); + + glm::vec3 dif = stationPos - cameraPos; + float difference = dif.length(); + //if (difference < 5) { + //shutdown(); + //} //EARTH nieruchoma - �atwiejsze dla naszej cutscenki drawObjectTexture(&sphereContextOrbit, glm::scale(glm::vec3(45)), textureEarthHighres); @@ -459,7 +531,6 @@ void renderScene() //MOON drawObjectTexture(&sphereContextOrbit, glm::rotate(time / 50.0f, glm::vec3(0, 1, 0)) * glm::translate(glm::vec3(0, 0, 300)) * glm::scale(glm::vec3(20)), textureMoon); - // sun glUseProgram(programSun); glUniform3f(glGetUniformLocation(programSun, "lightPos"), lightPos.x, lightPos.y, lightPos.z); @@ -473,21 +544,6 @@ void renderScene() } -void shutdown() -{ - shaderLoader.DeleteProgram(programColor); - shaderLoader.DeleteProgram(programTexture); - - planeContext.initFromOBJ(planeModel); - boxContext.initFromOBJ(boxModel); - shipContext.initFromOBJ(shipModel); - boosterContext.initFromOBJ(boosterModel); - platformContext.initFromOBJ(platformModel); - craneContext.initFromOBJ(craneModel); - lampContext.initFromOBJ(lampModel); -} - - void init() { srand(time(0)); @@ -497,6 +553,7 @@ void init() programSkybox = shaderLoader.CreateProgram("shaders/shader_skybox.vert", "shaders/shader_skybox.frag"); cubemapTexture = Skybox::loadCubemap(faces); + cubemapTexture2 = Skybox::loadCubemap(faces2); glEnable(GL_DEPTH_TEST); @@ -529,6 +586,13 @@ void idle() glutPostRedisplay(); } +void onReshape(int width, int height) +{ + frustumScale = (float)width / height; + + glViewport(0, 0, width, height); +} + int main(int argc, char** argv) { glutInit(&argc, argv); @@ -543,6 +607,7 @@ int main(int argc, char** argv) glutPassiveMotionFunc(mouse); glutDisplayFunc(renderScene); glutIdleFunc(idle); + glutReshapeFunc(onReshape); glutMainLoop(); diff --git a/textures/skybox/stars3.jpeg b/textures/skybox/stars3.jpeg new file mode 100644 index 0000000..e6491b7 Binary files /dev/null and b/textures/skybox/stars3.jpeg differ diff --git a/textures/skybox/stars3.png b/textures/skybox/stars3.png new file mode 100644 index 0000000..271f84d Binary files /dev/null and b/textures/skybox/stars3.png differ