#include "../../GLM.h"\r
\r
\r
+\r
BBox::BBox()\r
{\r
numvertices = 8;\r
--- /dev/null
+#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";
+}
--- /dev/null
+#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;
+};
+
//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
{
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()
return shBasic;
}
+const Shader * Shader::gBasicTexture()
+{
+ return shBasicTexture;
+}
+
const Shader * Shader::gLighting()
{
return shLighting;
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;
static const Shader * gActive();
static const Shader * gBasic();
+ static const Shader * gBasicTexture();
static const Shader * gLighting();
static const Shader * gBlur();
static const Shader * shActive;
static const Shader * shBasic;
+ static const Shader * shBasicTexture;
static const Shader * shLighting;
static const Shader * shBlur;
};
#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;
}
<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
<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
#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;
+
}
void main()
{
- gl_Position = vec4(aPosition, 1.0f);
- fUVs = aUVs;
+ fUVs = aUVs;
+ gl_Position = vec4(aPosition, 1.0f);
}
\ No newline at end of file
void main()
{
-
fUVs = aUV;
gl_Position = (uProjection * uView * uModel * vec4(aPosition, 1.f)).xyww;
}
\ No newline at end of file