diff --git a/GrafikaProjekt/Debug/grk-cw6.exe b/GrafikaProjekt/Debug/grk-cw6.exe index 0331108..15cbec5 100644 Binary files a/GrafikaProjekt/Debug/grk-cw6.exe and b/GrafikaProjekt/Debug/grk-cw6.exe differ diff --git a/GrafikaProjekt/Debug/grk-cw6.pdb b/GrafikaProjekt/Debug/grk-cw6.pdb index bfb9067..b8c1898 100644 Binary files a/GrafikaProjekt/Debug/grk-cw6.pdb and b/GrafikaProjekt/Debug/grk-cw6.pdb differ diff --git a/GrafikaProjekt/Debug/scenaPodwodna.exe b/GrafikaProjekt/Debug/scenaPodwodna.exe new file mode 100644 index 0000000..fa7e2d4 Binary files /dev/null and b/GrafikaProjekt/Debug/scenaPodwodna.exe differ diff --git a/GrafikaProjekt/Debug/scenaPodwodna.pdb b/GrafikaProjekt/Debug/scenaPodwodna.pdb new file mode 100644 index 0000000..cd3afa7 Binary files /dev/null and b/GrafikaProjekt/Debug/scenaPodwodna.pdb differ diff --git a/GrafikaProjekt/pliki/Debug/Camera.obj b/GrafikaProjekt/pliki/Debug/Camera.obj index 748322c..567f8af 100644 Binary files a/GrafikaProjekt/pliki/Debug/Camera.obj and b/GrafikaProjekt/pliki/Debug/Camera.obj differ diff --git a/GrafikaProjekt/pliki/Debug/Render_Utils.obj b/GrafikaProjekt/pliki/Debug/Render_Utils.obj index 8e76d21..b3c736f 100644 Binary files a/GrafikaProjekt/pliki/Debug/Render_Utils.obj and b/GrafikaProjekt/pliki/Debug/Render_Utils.obj differ diff --git a/GrafikaProjekt/pliki/Debug/SOIL.obj b/GrafikaProjekt/pliki/Debug/SOIL.obj index 6639994..f7f8c38 100644 Binary files a/GrafikaProjekt/pliki/Debug/SOIL.obj and b/GrafikaProjekt/pliki/Debug/SOIL.obj differ diff --git a/GrafikaProjekt/pliki/Debug/Shader_Loader.obj b/GrafikaProjekt/pliki/Debug/Shader_Loader.obj index 48348c7..d85b37f 100644 Binary files a/GrafikaProjekt/pliki/Debug/Shader_Loader.obj and b/GrafikaProjekt/pliki/Debug/Shader_Loader.obj differ diff --git a/GrafikaProjekt/pliki/Debug/Texture.obj b/GrafikaProjekt/pliki/Debug/Texture.obj index b3a148c..4df201f 100644 Binary files a/GrafikaProjekt/pliki/Debug/Texture.obj and b/GrafikaProjekt/pliki/Debug/Texture.obj differ diff --git a/GrafikaProjekt/pliki/Debug/grk-cw6.exe.recipe b/GrafikaProjekt/pliki/Debug/grk-cw6.exe.recipe index 9f44b1e..b5f96c4 100644 --- a/GrafikaProjekt/pliki/Debug/grk-cw6.exe.recipe +++ b/GrafikaProjekt/pliki/Debug/grk-cw6.exe.recipe @@ -2,7 +2,7 @@ - C:\Users\Tomek\source\repos\Grafika\GrafikaProjekt\Debug\grk-cw6.exe + C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\Debug\grk-cw6.exe diff --git a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.command.1.tlog b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.command.1.tlog index 9348a0a..f233d85 100644 Binary files a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.command.1.tlog and b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.command.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.read.1.tlog b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.read.1.tlog index e46699a..1850ea4 100644 Binary files a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.read.1.tlog and b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.read.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.write.1.tlog b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.write.1.tlog index 50f5a03..e0310db 100644 Binary files a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.write.1.tlog and b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/CL.write.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/grk-cw6.lastbuildstate b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/grk-cw6.lastbuildstate index 48ade2b..24f5976 100644 --- a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/grk-cw6.lastbuildstate +++ b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/grk-cw6.lastbuildstate @@ -1,2 +1,2 @@ PlatformToolSet=v143:VCToolArchitecture=Native32Bit:VCToolsVersion=14.30.30705:TargetPlatformVersion=10.0.19041.0: -Debug|Win32|C:\Users\Tomek\source\repos\Grafika\GrafikaProjekt\| +Debug|Win32|C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\| diff --git a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.read.1.tlog b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.read.1.tlog index 0a131e9..db52ed0 100644 Binary files a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.read.1.tlog and b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.read.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.write.1.tlog b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.write.1.tlog index 1c823a5..d9d9222 100644 Binary files a/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.write.1.tlog and b/GrafikaProjekt/pliki/Debug/grk-cw6.tlog/link.write.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/image_DXT.obj b/GrafikaProjekt/pliki/Debug/image_DXT.obj index 2d43660..b027322 100644 Binary files a/GrafikaProjekt/pliki/Debug/image_DXT.obj and b/GrafikaProjekt/pliki/Debug/image_DXT.obj differ diff --git a/GrafikaProjekt/pliki/Debug/image_helper.obj b/GrafikaProjekt/pliki/Debug/image_helper.obj index de28093..c2fc7b6 100644 Binary files a/GrafikaProjekt/pliki/Debug/image_helper.obj and b/GrafikaProjekt/pliki/Debug/image_helper.obj differ diff --git a/GrafikaProjekt/pliki/Debug/main.obj b/GrafikaProjekt/pliki/Debug/main.obj index c0d771d..d1d9212 100644 Binary files a/GrafikaProjekt/pliki/Debug/main.obj and b/GrafikaProjekt/pliki/Debug/main.obj differ diff --git a/GrafikaProjekt/pliki/Debug/projekt.log b/GrafikaProjekt/pliki/Debug/projekt.log index 01d3e1f..e6bacbf 100644 --- a/GrafikaProjekt/pliki/Debug/projekt.log +++ b/GrafikaProjekt/pliki/Debug/projekt.log @@ -1 +1,44 @@ - projekt.vcxproj -> C:\Users\Tomek\source\repos\Grafika\GrafikaProjekt\Debug\grk-cw6.exe +C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(510,5): warning MSB8028: Katalog pośredni (Debug\) zawiera pliki udostępnione z innego projektu (grk-cw6.vcxproj). Może to spowodować niepoprawne zachowanie podczas oczyszczania i ponownej kompilacji. + Camera.cpp + main.cpp +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\main.cpp(316,28): warning C4305: "+=": obcięcie z "double" do "float" +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\main.cpp(321,167): warning C4305: "argument": obcięcie z "double" do "float" +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\main.cpp(369,12): warning C4244: "argument": konwersja z "time_t" do "unsigned int", możliwa utrata danych +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\main.cpp(381,39): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\main.cpp(382,37): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\main.cpp(383,37): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych + Render_Utils.cpp + Shader_Loader.cpp + Texture.cpp + Generowanie kodu... + image_DXT.c +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\image_DXT.c(92,9): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + image_helper.c +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\image_helper.c(325,22): warning C4244: "inicjowanie": konwersja z "double" do "float", możliwa utrata danych +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\image_helper.c(366,13): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\image_helper.c(373,20): warning C4244: "=": konwersja z "float" do "int", możliwa utrata danych +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\image_helper.c(415,13): warning C4244: "=": konwersja z "double" do "float", możliwa utrata danych +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\image_helper.c(422,20): warning C4244: "=": konwersja z "float" do "int", możliwa utrata danych + SOIL.c +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\SOIL.c(1719,36): warning C4018: "<=": niezgodność typu ze znakiem/bez znaku +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\SOIL.c(1729,19): warning C4018: "<": niezgodność typu ze znakiem/bez znaku +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\SOIL.c(1841,6): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + stb_image_aug.c +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(177,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(251,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(303,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(1557,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(2394,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(2709,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(2995,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(3209,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(3548,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stb_image_aug.c(3644,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stbi_DDS_aug_c.h(362,19): warning C4018: ">": niezgodność typu ze znakiem/bez znaku +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stbi_DDS_aug_c.h(366,19): warning C4018: ">": niezgodność typu ze znakiem/bez znaku +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stbi_DDS_aug_c.h(390,19): warning C4018: "<": niezgodność typu ze znakiem/bez znaku +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stbi_DDS_aug_c.h(427,19): warning C4018: "<": niezgodność typu ze znakiem/bez znaku +C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\pliki\src\SOIL\stbi_DDS_aug_c.h(498,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + Generowanie kodu... +Camera.obj : warning LNK4075: zignorowano opcję „/EDITANDCONTINUE” z powodu określenia opcji „/INCREMENTAL:NO” + projekt.vcxproj -> C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\Debug\scenaPodwodna.exe diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.exe.recipe b/GrafikaProjekt/pliki/Debug/scenaPodwodna.exe.recipe new file mode 100644 index 0000000..eae497c --- /dev/null +++ b/GrafikaProjekt/pliki/Debug/scenaPodwodna.exe.recipe @@ -0,0 +1,11 @@ + + + + + C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\Debug\scenaPodwodna.exe + + + + + + \ No newline at end of file diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.command.1.tlog b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.command.1.tlog new file mode 100644 index 0000000..fdfd9e3 Binary files /dev/null and b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.command.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.read.1.tlog b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.read.1.tlog new file mode 100644 index 0000000..47a65e4 Binary files /dev/null and b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.read.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.write.1.tlog b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.write.1.tlog new file mode 100644 index 0000000..013df59 Binary files /dev/null and b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/CL.write.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.command.1.tlog b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.command.1.tlog new file mode 100644 index 0000000..5147702 Binary files /dev/null and b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.command.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.read.1.tlog b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.read.1.tlog new file mode 100644 index 0000000..db52ed0 Binary files /dev/null and b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.read.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.write.1.tlog b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.write.1.tlog new file mode 100644 index 0000000..bcd0634 Binary files /dev/null and b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/link.write.1.tlog differ diff --git a/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/scenaPodwodna.lastbuildstate b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/scenaPodwodna.lastbuildstate new file mode 100644 index 0000000..24f5976 --- /dev/null +++ b/GrafikaProjekt/pliki/Debug/scenaPodwodna.tlog/scenaPodwodna.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v143:VCToolArchitecture=Native32Bit:VCToolsVersion=14.30.30705:TargetPlatformVersion=10.0.19041.0: +Debug|Win32|C:\Users\luksli\Desktop\GrafikaProjekt\GrafikaProjekt\| diff --git a/GrafikaProjekt/pliki/Debug/stb_image_aug.obj b/GrafikaProjekt/pliki/Debug/stb_image_aug.obj index c8dbddd..0661320 100644 Binary files a/GrafikaProjekt/pliki/Debug/stb_image_aug.obj and b/GrafikaProjekt/pliki/Debug/stb_image_aug.obj differ diff --git a/GrafikaProjekt/pliki/Debug/vc143.idb b/GrafikaProjekt/pliki/Debug/vc143.idb index 468d6fc..f6882ee 100644 Binary files a/GrafikaProjekt/pliki/Debug/vc143.idb and b/GrafikaProjekt/pliki/Debug/vc143.idb differ diff --git a/GrafikaProjekt/pliki/Debug/vc143.pdb b/GrafikaProjekt/pliki/Debug/vc143.pdb index 47bb66c..f7fb4a2 100644 Binary files a/GrafikaProjekt/pliki/Debug/vc143.pdb and b/GrafikaProjekt/pliki/Debug/vc143.pdb differ diff --git a/GrafikaProjekt/pliki/projekt.vcxproj b/GrafikaProjekt/pliki/projekt.vcxproj index 61cee11..979a32f 100644 --- a/GrafikaProjekt/pliki/projekt.vcxproj +++ b/GrafikaProjekt/pliki/projekt.vcxproj @@ -46,7 +46,7 @@ Win32Proj grk-cw6 10.0 - grk-cw6 + scenaPodwodna diff --git a/GrafikaProjekt/pliki/shaders/shader_tex.frag b/GrafikaProjekt/pliki/shaders/shader_tex.frag index 84d0906..72e63d2 100644 --- a/GrafikaProjekt/pliki/shaders/shader_tex.frag +++ b/GrafikaProjekt/pliki/shaders/shader_tex.frag @@ -2,6 +2,7 @@ uniform sampler2D textureSampler; uniform vec3 lightDir; +uniform float alpha; in vec3 interpNormal; in vec2 interpTexCoord; @@ -13,5 +14,5 @@ void main() vec3 color = texture2D(textureSampler, modifiedTexCoord).rgb; vec3 normal = normalize(interpNormal); float diffuse = max(dot(normal, -lightDir), 0.0); - gl_FragColor = mix(vec4(0.3f, 0.4f, 0.62f, 1.0f), vec4(color * diffuse, 1.0), visibility); + gl_FragColor = vec4(mix(vec4(0.3f, 0.4f, 0.62f, 1.0f), vec4(color * diffuse, 1.0), visibility).rgb, alpha); } diff --git a/GrafikaProjekt/pliki/src/main.cpp b/GrafikaProjekt/pliki/src/main.cpp index ceedc5c..91275bb 100644 --- a/GrafikaProjekt/pliki/src/main.cpp +++ b/GrafikaProjekt/pliki/src/main.cpp @@ -20,6 +20,8 @@ Core::Shader_Loader shaderLoader; int random[320]; int random2[320]; int randomRock[65]; +float randomBubble[20]; +float bubbleSize[20]; Core::RenderContext shipContext; Core::RenderContext sphereContext; @@ -38,6 +40,7 @@ Core::RenderContext plant5; Core::RenderContext smiglo; Core::RenderContext grass; Core::RenderContext cave; +Core::RenderContext sphere; float skyboxVertices[] = { -10.0f, 10.0f, -10.0f, @@ -88,6 +91,7 @@ glm::vec3 cameraDir; glm::vec3 cameraSide; glm::vec3 cameraUp; float cameraAngle = 0; +float bubbleLifetime[20]; int lastMouseX, lastMouseY, mouseX, mouseY; int fishMovement = 0; @@ -112,13 +116,14 @@ GLuint texturePlant3; GLuint texturePlant4; GLuint texturePlant5; GLuint textureSmiglo; +GLuint textureBubble; void keyboard(unsigned char key, int x, int y) { float angleSpeed = 0.1f; - float moveSpeed = 0.4f; + float moveSpeed = 0.03f; switch(key) { case 'z': cameraAngle -= angleSpeed; break; @@ -140,7 +145,7 @@ void mouse(int x, int y) glm::mat4 createCameraMatrix() { - rotation = glm::normalize(rotation * glm::angleAxis((float)(mouseX * 0.05), cameraUp) * glm::angleAxis((float)(mouseY * 0.05), cameraSide)); + rotation = glm::normalize(rotation * glm::angleAxis((float)(mouseX * 0.03), cameraUp) * glm::angleAxis((float)(mouseY * 0.03), cameraSide)); mouseX = mouseY = 0; cameraDir = glm::inverse(rotation) * glm::vec3(0, 0, -1); cameraSide = glm::inverse(rotation) * glm::vec3(-1, 0, 0); @@ -181,13 +186,15 @@ unsigned int loadCubemap() return textureID; } -void drawObjectTexture(Core::RenderContext context, glm::mat4 modelMatrix, GLuint textureId) +void drawObjectTexture(Core::RenderContext context, glm::mat4 modelMatrix, GLuint textureId, float alpha = 1.0) { GLuint program = programTexture; glUseProgram(program); + glDisable(GL_CULL_FACE); glUniform3f(glGetUniformLocation(program, "lightDir"), lightDir.x, lightDir.y, lightDir.z); + glUniform1f(glGetUniformLocation(program, "alpha"), alpha); Core::SetActiveTexture(textureId, "textureSampler", program, 0); glm::mat4 transformation = perspectiveMatrix * cameraMatrix * modelMatrix; @@ -195,7 +202,7 @@ void drawObjectTexture(Core::RenderContext context, glm::mat4 modelMatrix, GLuin glUniformMatrix4fv(glGetUniformLocation(program, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix); Core::DrawContext(context); - + glEnable(GL_CULL_FACE); glUseProgram(0); } @@ -302,6 +309,19 @@ void moveFish() } +void createBubbles(glm::mat4 smigloPos) +{ + for (int i = 0; i < 20; i++) + { + bubbleLifetime[i] += 0.05; + if (bubbleLifetime[i] >= 0.5) + { + bubbleLifetime[i] = 0; + } + drawObjectTexture(sphere, smigloPos * glm::translate(glm::vec3(randomBubble[i], bubbleLifetime[i], -0.1)) * glm::scale(glm::vec3(bubbleSize[i])), textureBubble, 0.3); + } +} + void renderScene() { // Aktualizacja macierzy widoku i rzutowania @@ -319,12 +339,14 @@ void renderScene() drawObjectTexture(shipContext, shipModelMatrix, textureSubmarine); drawObjectTexture(sphereContext, glm::translate(glm::vec3(0, -1.2, 0)), textureAsteroid); - drawObjectTexture(smiglo, shipModelMatrix * glm::translate(glm::vec3(0, -0.3, -1)) * glm::rotate(glm::degrees((float)fishMovement), glm::vec3(0, 0, 1)), textureSmiglo); + glm::mat4 smigloPos = shipModelMatrix* glm::translate(glm::vec3(0, -0.3, -1)); + drawObjectTexture(smiglo, smigloPos * glm::rotate(glm::degrees((float)fishMovement), glm::vec3(0, 0, 1)), textureSmiglo); drawObjectTexture(cave, glm::translate(glm::vec3(0, -0.6, 0)), textureAsteroid); createFlora(); createRockFlora(); moveFish(); + createBubbles(smigloPos); glutSwapBuffers(); } @@ -354,7 +376,15 @@ void init() { randomRock[i] = rand() % 20 + 30; } + for (int i = 0; i < 20; i++) + { + randomBubble[i] = (rand() % 24 - 12)/100.0; + bubbleLifetime[i] = (rand() % 50) / 100.0; + bubbleSize[i] = (rand() % 16 + 4) / 1000.0; + } glEnable(GL_DEPTH_TEST); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); programCubemap = shaderLoader.CreateProgram("shaders/shader_cubemap.vert", "shaders/shader_cubemap.frag"); programTexture = shaderLoader.CreateProgram("shaders/shader_tex.vert", "shaders/shader_tex.frag"); loadModelToContext("models/submarine1.obj", shipContext); @@ -370,6 +400,7 @@ void init() loadModelToContext("models/cave.obj", cave); loadModelToContext("models/roslina4.obj", plant4); loadModelToContext("models/roslina5.obj", plant5); + loadModelToContext("models/sphere.obj", sphere); textureAsteroid = Core::LoadTexture("textures/rock.png"); textureSubmarine = Core::LoadTexture("textures/sub1.png"); @@ -382,6 +413,7 @@ void init() textureSmiglo = Core::LoadTexture("textures/metal.png"); texturePlant4 = Core::LoadTexture("textures/plant4.png"); texturePlant5 = Core::LoadTexture("textures/plant5.png"); + textureBubble = Core::LoadTexture("textures/bubble.png"); cubemapTexture = loadCubemap(); glGenVertexArrays(1, &skyboxVAO); @@ -409,7 +441,7 @@ int main(int argc, char ** argv) glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(200, 0); - glutInitWindowSize(600, 600); + glutInitWindowSize(1000, 1000); glutCreateWindow("Scena podwodna"); glewInit();