Add some more objects for shadow testing
This commit is contained in:
parent
3dcfc89b52
commit
2a661daf3e
@ -37,9 +37,9 @@ void renderQuad() {
|
|||||||
glBindVertexArray(0);
|
glBindVertexArray(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
class mesh3 : public Gedeng::Application {
|
class ShadowDemo : public Gedeng::Application {
|
||||||
public:
|
public:
|
||||||
mesh3(unsigned long ms_per_update, unsigned int window_size_x, unsigned int window_size_y,
|
ShadowDemo(unsigned long ms_per_update, unsigned int window_size_x, unsigned int window_size_y,
|
||||||
Gedeng::String window_name)
|
Gedeng::String window_name)
|
||||||
: Application(ms_per_update, window_size_x, window_size_y, window_name), particle_interval(0.2),
|
: Application(ms_per_update, window_size_x, window_size_y, window_name), particle_interval(0.2),
|
||||||
number_of_steps(10.0), number_of_refinement_steps(10.0), bump_depth(0.1),
|
number_of_steps(10.0), number_of_refinement_steps(10.0), bump_depth(0.1),
|
||||||
@ -54,8 +54,8 @@ class mesh3 : public Gedeng::Application {
|
|||||||
particle_tex3("Resources/Textures/Particles/smoke.png", Gedeng::Texture::Settings()),
|
particle_tex3("Resources/Textures/Particles/smoke.png", Gedeng::Texture::Settings()),
|
||||||
quad_mesh(Gedeng::QuadMesh(10.0)), light(glm::vec3(0.57735, -0.57735, 0.57735)),
|
quad_mesh(Gedeng::QuadMesh(10.0)), light(glm::vec3(0.57735, -0.57735, 0.57735)),
|
||||||
mesh1("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()),
|
mesh1("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()),
|
||||||
mesh2("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()),
|
mesh2("Resources/Meshes/bench.obj", Gedeng::ObjMesh::Settings()),
|
||||||
mesh3("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()) {
|
mesh3("Resources/Meshes/ring.obj", Gedeng::ObjMesh::Settings()) {
|
||||||
particles.set_position(glm::vec3(0.0f, 0.0f, -10.0f));
|
particles.set_position(glm::vec3(0.0f, 0.0f, -10.0f));
|
||||||
particles.set_velocity(glm::vec3(-2, 4, -2), glm::vec3(2, 6, 2));
|
particles.set_velocity(glm::vec3(-2, 4, -2), glm::vec3(2, 6, 2));
|
||||||
particles.set_gravity(glm::vec3(0, -4, 0));
|
particles.set_gravity(glm::vec3(0, -4, 0));
|
||||||
@ -70,9 +70,12 @@ class mesh3 : public Gedeng::Application {
|
|||||||
// camera.rotate(30, glm::vec3(1.0, 0.0, 0.0));
|
// camera.rotate(30, glm::vec3(1.0, 0.0, 0.0));
|
||||||
|
|
||||||
mesh1.translate(glm::vec3(2.0, 3.0, -2.0));
|
mesh1.translate(glm::vec3(2.0, 3.0, -2.0));
|
||||||
|
mesh2.translate(glm::vec3(-3.0, 0.0, -3.0));
|
||||||
|
mesh3.translate(glm::vec3(5.0, 0.0, 5.0));
|
||||||
|
mesh3.rotate(45.0, glm::vec3(0.0, 1.0, 0.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
~mesh3() = default;
|
~ShadowDemo() = default;
|
||||||
|
|
||||||
void fixed_update(double delta) override {
|
void fixed_update(double delta) override {
|
||||||
camera.update(delta);
|
camera.update(delta);
|
||||||
@ -90,6 +93,8 @@ class mesh3 : public Gedeng::Application {
|
|||||||
// Shadows
|
// Shadows
|
||||||
light.clear_shadows();
|
light.clear_shadows();
|
||||||
light.render_shadow(mesh1);
|
light.render_shadow(mesh1);
|
||||||
|
light.render_shadow(mesh2);
|
||||||
|
light.render_shadow(mesh3);
|
||||||
light.render_shadow(quad_mesh);
|
light.render_shadow(quad_mesh);
|
||||||
|
|
||||||
glViewport(0, 0, 1920, 1080);
|
glViewport(0, 0, 1920, 1080);
|
||||||
@ -127,6 +132,8 @@ class mesh3 : public Gedeng::Application {
|
|||||||
// Props
|
// Props
|
||||||
render_shader.use();
|
render_shader.use();
|
||||||
mesh1.render(render_shader);
|
mesh1.render(render_shader);
|
||||||
|
mesh2.render(render_shader);
|
||||||
|
mesh3.render(render_shader);
|
||||||
|
|
||||||
/* // Render the light's depth map to a quad for debugging
|
/* // Render the light's depth map to a quad for debugging
|
||||||
debug_shader.use();
|
debug_shader.use();
|
||||||
@ -161,6 +168,7 @@ class mesh3 : public Gedeng::Application {
|
|||||||
Gedeng::ParticleSystem particles;
|
Gedeng::ParticleSystem particles;
|
||||||
|
|
||||||
Gedeng::DirectionalLight light;
|
Gedeng::DirectionalLight light;
|
||||||
|
|
||||||
Gedeng::ObjMesh mesh1;
|
Gedeng::ObjMesh mesh1;
|
||||||
Gedeng::ObjMesh mesh2;
|
Gedeng::ObjMesh mesh2;
|
||||||
Gedeng::ObjMesh mesh3;
|
Gedeng::ObjMesh mesh3;
|
||||||
@ -168,5 +176,5 @@ class mesh3 : public Gedeng::Application {
|
|||||||
|
|
||||||
Gedeng::Application *Gedeng::create_application() {
|
Gedeng::Application *Gedeng::create_application() {
|
||||||
GG_CLIENT_INFO("Creating Application");
|
GG_CLIENT_INFO("Creating Application");
|
||||||
return new mesh3(20, 1920, 1080, String("Parallax Demo"));
|
return new ShadowDemo(20, 1920, 1080, String("Parallax Demo"));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user