Add some more objects for shadow testing
This commit is contained in:
parent
3dcfc89b52
commit
2a661daf3e
@ -37,10 +37,10 @@ void renderQuad() {
|
||||
glBindVertexArray(0);
|
||||
}
|
||||
|
||||
class mesh3 : public Gedeng::Application {
|
||||
class ShadowDemo : public Gedeng::Application {
|
||||
public:
|
||||
mesh3(unsigned long ms_per_update, unsigned int window_size_x, unsigned int window_size_y,
|
||||
Gedeng::String window_name)
|
||||
ShadowDemo(unsigned long ms_per_update, unsigned int window_size_x, unsigned int window_size_y,
|
||||
Gedeng::String window_name)
|
||||
: 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),
|
||||
render_shader(Gedeng::Shader("Shader/bump.vs", "Shader/bump.fs")),
|
||||
@ -54,8 +54,8 @@ class mesh3 : public Gedeng::Application {
|
||||
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)),
|
||||
mesh1("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()),
|
||||
mesh2("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()),
|
||||
mesh3("Resources/Meshes/Monkey.obj", Gedeng::ObjMesh::Settings()) {
|
||||
mesh2("Resources/Meshes/bench.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_velocity(glm::vec3(-2, 4, -2), glm::vec3(2, 6, 2));
|
||||
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));
|
||||
|
||||
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 {
|
||||
camera.update(delta);
|
||||
@ -90,6 +93,8 @@ class mesh3 : public Gedeng::Application {
|
||||
// Shadows
|
||||
light.clear_shadows();
|
||||
light.render_shadow(mesh1);
|
||||
light.render_shadow(mesh2);
|
||||
light.render_shadow(mesh3);
|
||||
light.render_shadow(quad_mesh);
|
||||
|
||||
glViewport(0, 0, 1920, 1080);
|
||||
@ -127,6 +132,8 @@ class mesh3 : public Gedeng::Application {
|
||||
// Props
|
||||
render_shader.use();
|
||||
mesh1.render(render_shader);
|
||||
mesh2.render(render_shader);
|
||||
mesh3.render(render_shader);
|
||||
|
||||
/* // Render the light's depth map to a quad for debugging
|
||||
debug_shader.use();
|
||||
@ -161,6 +168,7 @@ class mesh3 : public Gedeng::Application {
|
||||
Gedeng::ParticleSystem particles;
|
||||
|
||||
Gedeng::DirectionalLight light;
|
||||
|
||||
Gedeng::ObjMesh mesh1;
|
||||
Gedeng::ObjMesh mesh2;
|
||||
Gedeng::ObjMesh mesh3;
|
||||
@ -168,5 +176,5 @@ class mesh3 : public Gedeng::Application {
|
||||
|
||||
Gedeng::Application *Gedeng::create_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