]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
Plane
authorPeter Schaefer <schaeferpm@gmail.com>
Wed, 13 Apr 2016 14:39:16 +0000 (16:39 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Wed, 13 Apr 2016 14:39:16 +0000 (16:39 +0200)
BasicShader

12 files changed:
Weave/Graphix/Model/BBox.cpp
Weave/Graphix/Model/Plane.cpp [new file with mode: 0644]
Weave/Graphix/Model/Plane.h [new file with mode: 0644]
Weave/Graphix/Model/SkyBox.cpp
Weave/Graphix/Shader.cpp
Weave/Graphix/Shader.h
Weave/Scene/Sky.cpp
Weave/Weave.vcxproj
Weave/Weave.vcxproj.filters
shader/basic_VS.hlsl
shader/plane_VS.hlsl
shader/skybox_VS.hlsl

index fb2691072afaa945ee3926414a8be926625dc86c..cd5ef1e12782f8bff75a2de159c3755370810e6d 100644 (file)
@@ -4,6 +4,7 @@
 #include "../../GLM.h"\r
 \r
 \r
+\r
 BBox::BBox()\r
 {\r
        numvertices = 8;\r
diff --git a/Weave/Graphix/Model/Plane.cpp b/Weave/Graphix/Model/Plane.cpp
new file mode 100644 (file)
index 0000000..454a48d
--- /dev/null
@@ -0,0 +1,45 @@
+#include "Plane.h"
+
+#include "GL\glew.h"
+#include "../../GLM.h"
+
+
+Plane::Plane()
+{
+       numvertices = 4;
+
+       vertex = new float[numvertices * 3] {-1.f, -1.f, 0.f,  1.f, -1.f, 0.f,  1.f, 1.f, 0.f,  -1.f, 1.f, 0.f};
+       uvs = new float[numvertices * 2]{ 0.f, 0.f,  1.f, 0.f,  1.f, 1.f,  0.f, 1.f};
+
+       //import("skybox.dae", numvertices, numfaces, vertex, uvs, normals, index, 0);
+
+       //bindModel();
+       bt_init();
+
+       name = "Plane";
+
+}
+
+Plane::~Plane()
+{
+       //delete bt_collision_shape; //done inside Model.cpp
+}
+
+
+void Plane::drawModel() const
+{
+       glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+       glBindVertexArray(0);
+}
+
+void Plane::bt_init(bool isConvex)
+{
+       if(bt_collision_shape==nullptr)
+               bt_collision_shape = new btBoxShape(btVector3(.5f, .5f, .5f));
+}
+
+
+std::string Plane::type2str() const
+{
+       return "Plane";
+}
diff --git a/Weave/Graphix/Model/Plane.h b/Weave/Graphix/Model/Plane.h
new file mode 100644 (file)
index 0000000..90121fb
--- /dev/null
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "Model.h"
+
+class Plane :
+       public Model
+{
+public:
+       Plane();
+       ~Plane();
+
+       void drawModel() const override;
+
+       void bt_init(bool isConvex = true) override;
+
+       std::string type2str() const override;
+};
+
index b17a61e02389bc07bdee2389f2e8fa343fc539a1..4ee0f1c7e14e1f19254a69bd5a8918cb02ed8517 100644 (file)
@@ -35,7 +35,15 @@ void SkyBox::drawModel(const mat4& _modelMat) const
        //glCullFace(GL_FRONT);\r
        glDepthFunc(GL_LEQUAL);\r
        //glDisable(GL_DEPTH_TEST);\r
-       Model::drawModel(_modelMat);\r
+\r
+       useModel(_modelMat);\r
+\r
+       GLboolean far = true;\r
+       int tmp = Shader::gBasicTexture()->getUniformLocation("uFar");\r
+       if (tmp >= 0)\r
+               glUniform1i(tmp, far);\r
+\r
+       Model::drawModel();\r
        //glEnable(GL_DEPTH_TEST);\r
        //glCullFace(OldCullFaceMode);\r
        glDepthFunc(OldDepthFuncMode);\r
index 46af2c18fb19faddf272765d383c5bb64ea6f0fc..0ba0ffa817e8b51663d3956c07bdd6df50101763 100644 (file)
@@ -147,15 +147,17 @@ void Shader::init()
 {
        if(shBasic==nullptr)
                shBasic = new Shader("basic_VS.hlsl", "basic_FS.hlsl");
+       if (shBasicTexture == nullptr)
+               shBasicTexture = new Shader("basic_VS.hlsl", "basicTexture_FS.hlsl");
        if(shLighting==nullptr)
                shLighting = new Shader("basicTexture_VS.hlsl", "lightingTexture_FS.hlsl");
        if(shBlur==nullptr)
-               shBlur = new Shader("plane_VS.hlsl", "blur_FS.hlsl");
+               shBlur = new Shader("basic_VS.hlsl", "blur_FS.hlsl");
 }
 
 void Shader::cleanup()
 {
-       delete shBasic, shLighting, shBlur;
+       delete shBasic, shBasicTexture, shLighting, shBlur;
 }
 
 const Shader * Shader::gActive()
@@ -168,6 +170,11 @@ const Shader * Shader::gBasic()
        return shBasic;
 }
 
+const Shader * Shader::gBasicTexture()
+{
+       return shBasicTexture;
+}
+
 const Shader * Shader::gLighting()
 {
        return shLighting;
@@ -180,5 +187,6 @@ const Shader * Shader::gBlur()
 
 const Shader * Shader::shActive = nullptr;
 const Shader * Shader::shBasic = nullptr;
+const Shader * Shader::shBasicTexture = nullptr;
 const Shader * Shader::shLighting = nullptr;
 const Shader * Shader::shBlur = nullptr;
index 460ee3d055fec4833f39ab8a418edc6a449de33f..2128e12b8b95517a6a63af4186aa973e632234d8 100644 (file)
@@ -22,6 +22,7 @@ public:
 
        static const Shader * gActive();
        static const Shader * gBasic();
+       static const Shader * gBasicTexture();
        static const Shader * gLighting();
        static const Shader * gBlur();
 
@@ -37,6 +38,7 @@ private:
 
        static const Shader * shActive;
        static const Shader * shBasic;
+       static const Shader * shBasicTexture;
        static const Shader * shLighting;
        static const Shader * shBlur;
 };
index 604aa6727b1bfc41ca26d307fac598e2b1a674ba..5e4459a29f263a132bab253b40e6e955a0e709b4 100644 (file)
@@ -2,14 +2,17 @@
 
 #include "../Graphix/Shader.h"
 #include "../Graphix/Model.h"
+#include "../Graphix/Texture.h"
 
 #include "../GLM.h"
 
+#include <GL\glew.h>
 
 
-Sky::Sky() : SceneObject(new Shader("skybox_VS.hlsl","basicTexture_FS.hlsl"), scale(vec3(20.f)), vec4(1.f), Model::getSkyBoxModel(), "model_skybox_2D.png")
+
+Sky::Sky() : SceneObject(Shader::gBasicTexture(), scale(vec3(20.f)), vec4(1.f), Model::getSkyBoxModel(), "model_skybox_2D.png")
 {
-       modelMat[3][3] = 0;
+       modelMat[3][3] = 0.f;
 }
 
 
index 53f2a93dad74aa253f210af9a6c871ef3ad356c3..2f71aa765da7491077605b27cf409018d5128553 100644 (file)
     <ClCompile Include="Graphix\Model\IMesh.cpp" />\r
     <ClCompile Include="Graphix\Model\IMetaMesh.cpp" />\r
     <ClCompile Include="Graphix\Model\Model.cpp" />\r
+    <ClCompile Include="Graphix\Model\Plane.cpp" />\r
     <ClCompile Include="Graphix\Model\SkyBox.cpp" />\r
     <ClCompile Include="Graphix\PointLight.cpp" />\r
     <ClCompile Include="Scene\EventBox.cpp" />\r
     <ClInclude Include="Graphix\Model\IMesh.h" />\r
     <ClInclude Include="Graphix\Model\IMetaMesh.h" />\r
     <ClInclude Include="Graphix\Model\Model.h" />\r
+    <ClInclude Include="Graphix\Model\Plane.h" />\r
     <ClInclude Include="Graphix\Model\SkyBox.h" />\r
     <ClInclude Include="Graphix\PointLight.h" />\r
     <ClInclude Include="Scene.h" />\r
index fe9d56b73bec6d99fd999a54079f051bd813f51c..d96246ba409dd0d68f1209614daf4fc890467bab 100644 (file)
     <ClCompile Include="Scene\EventBox.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\Model\BBox.cpp">\r
+    <ClCompile Include="GLM.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\Model\IMesh.cpp">\r
+    <ClCompile Include="Scene\Timestamp.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\Model\IMetaMesh.cpp">\r
+    <ClCompile Include="Scene\Level.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\Model\Model.cpp">\r
+    <ClCompile Include="Graphix\PointLight.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\Model\SkyBox.cpp">\r
+    <ClCompile Include="Graphix\Model\Animation.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="GLM.cpp">\r
+    <ClCompile Include="Graphix\Model\BBox.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Scene\Timestamp.cpp">\r
+    <ClCompile Include="Graphix\Model\IAnimMesh.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Scene\Level.cpp">\r
+    <ClCompile Include="Graphix\Model\IMesh.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\Model\Animation.cpp">\r
+    <ClCompile Include="Graphix\Model\IMetaMesh.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\Model\IAnimMesh.cpp">\r
+    <ClCompile Include="Graphix\Model\Model.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Graphix\PointLight.cpp">\r
+    <ClCompile Include="Graphix\Model\SkyBox.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\Plane.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
   </ItemGroup>\r
     <ClInclude Include="Scene.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Model\BBox.h">\r
+    <ClInclude Include="GLM.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Model\IMesh.h">\r
+    <ClInclude Include="Scene\Timestamp.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Model\IMetaMesh.h">\r
+    <ClInclude Include="Scene\Level.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Model\Model.h">\r
+    <ClInclude Include="Graphix\Debug.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Model\SkyBox.h">\r
+    <ClInclude Include="Graphix\PointLight.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="GLM.h">\r
+    <ClInclude Include="Graphix\Model\Animation.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Scene\Timestamp.h">\r
+    <ClInclude Include="Graphix\Model\BBox.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Scene\Level.h">\r
+    <ClInclude Include="Graphix\Model\IAnimMesh.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Model\Animation.h">\r
+    <ClInclude Include="Graphix\Model\IMesh.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Model\IAnimMesh.h">\r
+    <ClInclude Include="Graphix\Model\IMetaMesh.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\Debug.h">\r
+    <ClInclude Include="Graphix\Model\Model.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="Graphix\PointLight.h">\r
+    <ClInclude Include="Graphix\Model\SkyBox.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\Plane.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
   </ItemGroup>\r
index 55bb6c222de4e38a3ba124001e937624821d0723..56a8a28441b7f605cdbf0fa23576264d727d198d 100644 (file)
@@ -2,10 +2,30 @@
 #version 330 core
 
 in vec3 aPosition;
+in vec2 aUVs;
+
 uniform mat4 uProjection;
-uniform mat4 uModel;
+uniform mat4 uModel = mat4(1.f);
 uniform mat4 uView;
 
-void main(){
-       gl_Position = uProjection * uView * uModel * vec4(aPosition, 1);
+uniform bool uFar = false;
+uniform bool uPlain = false;
+
+out vec2 fUVs;
+
+void main()
+{
+       vec4 position;
+       fUVs = aUVs;
+
+       if(uPlain)
+               position = vec4(aPosition, 1.f);
+       else
+               position = uProjection * uView * uModel * vec4(aPosition, 1.f);
+
+       if (uFar)
+               gl_Position = position.xyww;
+       else
+               gl_Position = position;
+
 }
index 8bb350d9e9195a1d646d3119586a2aa1d5b47c79..845903cb9a246590b0c05000fee15b6916ce0851 100644 (file)
@@ -7,6 +7,6 @@ out vec2 fUVs;
 
 void main()
 {
-    gl_Position = vec4(aPosition, 1.0f);
-    fUVs = aUVs;
+       fUVs = aUVs;
+       gl_Position = vec4(aPosition, 1.0f);
 }
\ No newline at end of file
index f30317dc3828eda196893310697b19f15677e07e..5afc37f75b906c8089c7af584232fa98de1c3234 100644 (file)
@@ -10,7 +10,6 @@ uniform mat4 uProjection, uView, uModel=mat4(1.f);
 
 void main()
 {
-
        fUVs = aUV;
        gl_Position = (uProjection * uView * uModel * vec4(aPosition, 1.f)).xyww;
 }
\ No newline at end of file