loading-screen

This commit is contained in:
Jakub Adamski 2021-02-24 13:42:48 +01:00
parent a628c5c91a
commit e7a8327011
11 changed files with 101 additions and 30 deletions

Binary file not shown.

View File

@ -1,19 +1,25 @@
 projekt.cpp  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(92,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(186,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(194,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(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(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(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(393,57): warning C4244: "=": 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(419,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(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(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(447,243): warning C4305: "argument": obcięcie z "double" do "T" D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(509,243): warning C4305: "argument": obcięcie z "double" do "T"
with with
[ [
T=float 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(516,149): warning C4305: "argument": obcięcie z "double" do "T"
D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(524,49): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych with
[
T=float
]
D:\Documents\2020\studia\s3e1\grafika\Projekt_Grafika\src\projekt.cpp(523,26): warning C4244: "inicjowanie": konwersja z "glm::tvec3<float,glm::packed_highp>::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” 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(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 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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -21,6 +21,7 @@ GLuint programTexture;
GLuint programSkybox; GLuint programSkybox;
GLuint programSun; GLuint programSun;
GLuint cubemapTexture; GLuint cubemapTexture;
GLuint cubemapTexture2;
GLuint skyboxVAO, skyboxVBO; GLuint skyboxVAO, skyboxVBO;
Core::Shader_Loader shaderLoader; Core::Shader_Loader shaderLoader;
@ -74,6 +75,17 @@ std::vector<std::string> faces
"textures/skybox/stars.jpeg", "textures/skybox/stars.jpeg",
"textures/skybox/stars.jpeg", "textures/skybox/stars.jpeg",
}; };
// skybox
std::vector<std::string> 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) // Initalization of physical scene (PhysX)
@ -250,10 +262,21 @@ void keyboard(unsigned char key, int x, int y)
case 'w': case 'w':
if (orbitSpeed < 0.02f) { if (orbitSpeed < 0.02f) {
orbitSpeed += 0.001f; orbitSpeed += 0.0001f;
} }
break; break;
case 's': 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) { if (orbitSpeed > 0.001f) {
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() glm::mat4 createCameraMatrixOrbit()
{ {
@ -343,6 +379,22 @@ void drawObjectTexture(Core::RenderContext* context, glm::mat4 modelMatrix, GLui
glUseProgram(0); 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() void renderScene()
{ {
//start //start
@ -411,11 +463,21 @@ void renderScene()
if (time < 3) { if (time < 3) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 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(); glutSwapBuffers();
} }
else { else {
reload = true; 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; 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); //drawObjectTexture(&sphereModelOrbit, glm::translate(glm::vec3(0, 0, 0)) * glm::scale(glm::vec3(20.f)), textureSun);
//STATION //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 - <20>atwiejsze dla naszej cutscenki //EARTH nieruchoma - <20>atwiejsze dla naszej cutscenki
drawObjectTexture(&sphereContextOrbit, glm::scale(glm::vec3(45)), textureEarthHighres); drawObjectTexture(&sphereContextOrbit, glm::scale(glm::vec3(45)), textureEarthHighres);
@ -459,7 +531,6 @@ void renderScene()
//MOON //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); 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 // sun
glUseProgram(programSun); glUseProgram(programSun);
glUniform3f(glGetUniformLocation(programSun, "lightPos"), lightPos.x, lightPos.y, lightPos.z); 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() void init()
{ {
srand(time(0)); srand(time(0));
@ -497,6 +553,7 @@ void init()
programSkybox = shaderLoader.CreateProgram("shaders/shader_skybox.vert", "shaders/shader_skybox.frag"); programSkybox = shaderLoader.CreateProgram("shaders/shader_skybox.vert", "shaders/shader_skybox.frag");
cubemapTexture = Skybox::loadCubemap(faces); cubemapTexture = Skybox::loadCubemap(faces);
cubemapTexture2 = Skybox::loadCubemap(faces2);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
@ -529,6 +586,13 @@ void idle()
glutPostRedisplay(); glutPostRedisplay();
} }
void onReshape(int width, int height)
{
frustumScale = (float)width / height;
glViewport(0, 0, width, height);
}
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
glutInit(&argc, argv); glutInit(&argc, argv);
@ -543,6 +607,7 @@ int main(int argc, char** argv)
glutPassiveMotionFunc(mouse); glutPassiveMotionFunc(mouse);
glutDisplayFunc(renderScene); glutDisplayFunc(renderScene);
glutIdleFunc(idle); glutIdleFunc(idle);
glutReshapeFunc(onReshape);
glutMainLoop(); glutMainLoop();

BIN
textures/skybox/stars3.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 KiB

BIN
textures/skybox/stars3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB