diff --git a/LearnOpenGL/LearnOpenGL.vcxproj b/LearnOpenGL/LearnOpenGL.vcxproj index 132c65d2db104a015d4274d26e605a1709dc6fe7..902ff56c83b88c29e311b4c1447af207aa817c5f 100644 --- a/LearnOpenGL/LearnOpenGL.vcxproj +++ b/LearnOpenGL/LearnOpenGL.vcxproj @@ -123,6 +123,7 @@ </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="FileSystem.cpp" /> + <ClCompile Include="Light.cpp" /> <ClCompile Include="Logger.cpp" /> <ClCompile Include="ResourceLoader.cpp" /> <ClCompile Include="OpenGLWrapper.cpp" /> @@ -132,9 +133,11 @@ <ItemGroup> <ClInclude Include="Camera.h" /> <ClInclude Include="FileSystem.h" /> + <ClInclude Include="Light.h" /> <ClInclude Include="Logger.h" /> <ClInclude Include="ResourceLoader.h" /> <ClInclude Include="OpenGLWrapper.h" /> + <ClInclude Include="Scene.h" /> <ClInclude Include="ShaderType.h" /> <ClInclude Include="Transform.h" /> </ItemGroup> diff --git a/LearnOpenGL/LearnOpenGL.vcxproj.filters b/LearnOpenGL/LearnOpenGL.vcxproj.filters index 6ce7b3628dafb3e50cccf2004f73706bde59b2a1..f4a72bb06c40dd289e89c4fa5d56cf80f67c3bc9 100644 --- a/LearnOpenGL/LearnOpenGL.vcxproj.filters +++ b/LearnOpenGL/LearnOpenGL.vcxproj.filters @@ -33,6 +33,9 @@ <ClCompile Include="Transform.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="Light.cpp"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="ShaderType.h"> @@ -56,5 +59,11 @@ <ClInclude Include="Transform.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="Scene.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Light.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> </Project> \ No newline at end of file diff --git a/LearnOpenGL/Light.cpp b/LearnOpenGL/Light.cpp new file mode 100644 index 0000000000000000000000000000000000000000..60c89048e853178896eca7eb9cb4a044d25e97c2 --- /dev/null +++ b/LearnOpenGL/Light.cpp @@ -0,0 +1,18 @@ +#include "Light.h" + +Light::Light(glm::vec3 _ambient, glm::vec3 _diffuse, glm::vec3 _specular) +{ + ambient = _ambient; + diffuse = _diffuse; + specular = _specular; +} + +Transform *Light::get_transform() +{ + return &transform; +} + +glm::vec3 DirectionalLight::get_light_direction() +{ + return get_transform()->get_front(); +} \ No newline at end of file diff --git a/LearnOpenGL/Light.h b/LearnOpenGL/Light.h new file mode 100644 index 0000000000000000000000000000000000000000..0a0da49f483fccb92bac3a622dbf95124d54b5cc --- /dev/null +++ b/LearnOpenGL/Light.h @@ -0,0 +1,30 @@ +#pragma once + +#include <GL/glew.h> + +#include <glm/glm.hpp> +#include <glm/gtc/matrix_transform.hpp> +#include <glm/gtc/type_ptr.hpp> + +#include "Transform.h" + +class Light +{ +private: + Transform transform; + +public: + Light(glm::vec3 _ambient, glm::vec3 _diffuse, glm::vec3 _specular); + + Transform *get_transform(); + + glm::vec3 ambient; + glm::vec3 diffuse; + glm::vec3 specular; +}; + +class DirectionalLight : Light +{ +public: + glm::vec3 get_light_direction(); +}; \ No newline at end of file diff --git a/LearnOpenGL/Scene.h b/LearnOpenGL/Scene.h new file mode 100644 index 0000000000000000000000000000000000000000..e44f64aec12865a03335ba58ad10cc137497021f --- /dev/null +++ b/LearnOpenGL/Scene.h @@ -0,0 +1,5 @@ +#pragma once + +class Scene +{ +}; \ No newline at end of file diff --git a/Shaders/Projector/Projector.frag b/Shaders/Projector/Projector.frag index b4fc7338a4b90020d82c35dccc7dd9707f41a293..b00b5f5ad06ea592f826b55b8609703043ba9b88 100644 --- a/Shaders/Projector/Projector.frag +++ b/Shaders/Projector/Projector.frag @@ -52,8 +52,13 @@ void main (void) { vec2 finalCoords = ProjTexCoords.st / ProjTexCoords.q; vec4 ProjMapColor_forCam1 = texture(projImage, finalCoords); - projColor = ProjMapColor_forCam1; + projColor = ProjMapColor_forCam1; + + if(ProjMapColor_forCam1.a < 1.0) + { + projColor = result; + } } - + FragColor = mix(result, projColor, 0.4f); } \ No newline at end of file