@@ -18,7 +18,12 @@ void Application::init(Systems::RendererSettings settings) {
1818 std::placeholders::_3,
1919 std::placeholders::_4));
2020
21- m_renderer = new Systems::DeferredRenderer (m_window, ShadowResolution::MEDIUM, settings);
21+ Systems::DeferredRenderer* rndr = new Systems::DeferredRenderer (m_window, ShadowResolution::MEDIUM, settings);
22+ // SSAOSettings ao = {};
23+ // ao.type = AOType::RTAO;
24+ // ao.samples = 4;
25+ // rndr->set_SSAO_settings(ao);
26+ m_renderer = rndr;
2227
2328 setup ();
2429 setup_gui ();
@@ -52,7 +57,7 @@ void Application::setup() {
5257 const std::string ENGINE_MESH_PATH (ENGINE_RESOURCES_PATH " meshes/" );
5358
5459 camera = new Camera ();
55- camera->set_position (Vec3 (0 .0f , 0 .0f , -7 .2f ));
60+ camera->set_position (Vec3 (0 .0f , 0 .0f , -8 .2f ));
5661 camera->set_far (100 .0f );
5762 camera->set_near (0 .1f );
5863 camera->set_field_of_view (70 .0f );
@@ -209,8 +214,47 @@ void Application::setup() {
209214 stormtrooper->add_child (stormtrooperHead);
210215 m_scene->add (stormtrooper);
211216
217+ Mesh* roninMesh = new Mesh ();
218+ Tools::Loaders::load_3D_file (roninMesh, MESH_PATH + " ronin.obj" );
219+ auto roninMat = new PhysicallyBasedMaterial ();
220+ roninMesh->push_material (roninMat);
221+ roninMesh->set_name (" Ronin" );
222+ roninMesh->set_position ({-2 .1f , -2 .065f , -3 .4f });
223+ roninMesh->set_rotation ({0.0 , 14 .0f , 0 .0f });
224+
225+ stoneMat->set_roughness (0 .5f );
226+ stoneMat->set_metalness (0 .0f );
227+
228+ Mesh* sphereMesh = new Mesh ();
229+ Tools::Loaders::load_3D_file (sphereMesh, ENGINE_MESH_PATH + " sphere.obj" );
230+ auto spheremat = new PhysicallyBasedMaterial ();
231+ sphereMesh->push_material (spheremat);
232+ sphereMesh->set_name (" Energy ball" );
233+ spheremat->set_albedo (Vec3 (0.0 ));
234+ spheremat->set_metalness (0.0 );
235+ spheremat->set_roughness (0.0 );
236+ spheremat->set_emissive_color (Vec3 (0.0 ,0.35 ,0.8 ));
237+ spheremat->set_emission_intensity (30 .0f );
238+ sphereMesh->set_position ({-2 .5f , -0 .4f , -3 .0f });
239+ sphereMesh->set_scale (0 .25f );
240+ sphereMesh->ray_hittable (false );
241+
242+ PointLight* energyLight = new PointLight ();
243+ energyLight->set_position ({-2 .5f , -0 .4f , -3 .0f });
244+ energyLight->set_area_of_effect (20 .0f );
245+ energyLight->set_intensity (0 .08f );
246+ energyLight->set_color (Vec3 (0.0 ,0.35 ,0.8 ));
247+ energyLight->set_shadow_type (ShadowType::RAYTRACED_SHADOW);
248+ energyLight->set_area (0 .1f );
249+ energyLight->set_shadow_ray_samples (4 );
250+ energyLight->set_name (" Energy" );
251+ sphereMesh->add_child (energyLight);
252+
253+ m_scene->add (roninMesh);
254+ m_scene->add (sphereMesh);
212255 m_scene->add (plane);
213256
257+ // roninMesh->add_child(sphereMesh);
214258 m_scene->set_ambient_color ({0.2 , 0.25 , 0.61 });
215259
216260 TextureHDR* envMap = new TextureHDR ();
0 commit comments