@@ -33,16 +33,16 @@ class StratusGFX : public stratus::Application {
3333 }
3434
3535 void PrintNodeHierarchy (const stratus::EntityPtr& p, const std::string& name, const std::string& prefix) {
36- auto rc = stratus::GetComponent<stratus::RenderComponent>(p);
37- std::cout << prefix << name << " {Meshes: " << (rc ? rc->GetMeshCount () : 0 ) << " }" << std::endl;
38- if (rc) {
39- for (size_t i = 0 ; i < rc->GetMeshCount (); ++i) {
40- std::cout << rc->GetMeshTransform (i) << std::endl;
41- }
42- }
43- for (auto & c : p->GetChildNodes ()) {
44- PrintNodeHierarchy (c, name, prefix + " -> " );
45- }
36+ // auto rc = stratus::GetComponent<stratus::RenderComponent>(p);
37+ // std::cout << prefix << name << "{Meshes: " << (rc ? rc->GetMeshCount() : 0) << "}" << std::endl;
38+ // if (rc) {
39+ // for (size_t i = 0; i < rc->GetMeshCount(); ++i) {
40+ // std::cout << rc->GetMeshTransform(i) << std::endl;
41+ // }
42+ // }
43+ // for (auto& c : p->GetChildNodes()) {
44+ // PrintNodeHierarchy(c, name, prefix + "-> ");
45+ // }
4646 }
4747
4848 // Perform first-time initialization - true if success, false otherwise
@@ -89,77 +89,77 @@ class StratusGFX : public stratus::Application {
8989 environmentMaps.push_back (Resources ()->LoadTexture (" ../Resources/resources/textures/Wood_Wall_003_ambientOcclusion.jpg" , stratus::ColorSpace::SRGB));
9090 environmentMaps.push_back (Resources ()->LoadTexture (" ../Resources/resources/textures/Rock_Moss_001_ambientOcclusion.jpg" , stratus::ColorSpace::SRGB));
9191
92- // stratus::Async<stratus::Entity> e;
93- // e = Resources()->LoadModel("../Resources/resources/models/Latrine.fbx", stratus::ColorSpace::LINEAR);
94- // e.AddCallback([this](stratus::Async<stratus::Entity> e) {
95- // outhouse = e.GetPtr();
96- // auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(outhouse);
97- // transform->SetLocalScale(glm::vec3(15.0f));
98- // transform->SetLocalPosition(glm::vec3(-50.0f, -10.0f, -45.0f));
99- // INSTANCE(EntityManager)->AddEntity(outhouse);
100- // });
101-
102- // e = Resources()->LoadModel("../Resources/resources/models/hromada_hlina_01_30k_f.FBX", stratus::ColorSpace::SRGB);
103- // e.AddCallback([this](stratus::Async<stratus::Entity> e) {
104- // clay = e.GetPtr();
105- // auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(clay);
106- // transform->SetLocalPosition(glm::vec3(100.0f, 0.0f, -50.0f));
107- // //transform->SetLocalRotation(stratus::Rotation(stratus::Degrees(-180.0f), stratus::Degrees(0.0f), stratus::Degrees(0.0f)));
108- // INSTANCE(EntityManager)->AddEntity(clay);
109- // PrintNodeHierarchy(clay, "Clay", "");
110- // });
111-
112- // e = Resources()->LoadModel("../Resources/resources/models/boubin_stump.FBX", stratus::ColorSpace::SRGB);
113- // e.AddCallback([this](stratus::Async<stratus::Entity> e) {
114- // stump = e.GetPtr();
115- // auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(stump);
116- // transform->SetLocalRotation(stratus::Rotation(stratus::Degrees(-180.0f), stratus::Degrees(0.0f), stratus::Degrees(0.0f)));
117- // transform->SetLocalPosition(glm::vec3(0.0f, -15.0f, -20.0f));
118- // INSTANCE(EntityManager)->AddEntity(stump);
119- // PrintNodeHierarchy(stump, "Stump", "");
120- // });
121-
122- // e = Resources()->LoadModel("../Resources/local/hintze-hall-1m.obj", stratus::ColorSpace::SRGB);
123- // e.AddCallback([this](stratus::Async<stratus::Entity> e) {
124- // hall = e.GetPtr();
125- // auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(hall);
126- // transform->SetLocalRotation(stratus::Rotation(stratus::Degrees(-90.0f), stratus::Degrees(0.0f), stratus::Degrees(0.0f)));
127- // transform->SetLocalScale(glm::vec3(10.0f, 10.0f, 10.0f));
128- // transform->SetLocalPosition(glm::vec3(-250.0f, -30.0f, 0.0f));
129- // INSTANCE(EntityManager)->AddEntity(hall);
130- // PrintNodeHierarchy(hall, "Hall", "");
131- // });
132-
133- // e = Resources()->LoadModel("../Resources/local/model.obj", stratus::ColorSpace::SRGB);
134- // e.AddCallback([this](stratus::Async<stratus::Entity> e) {
135- // ramparts = e.GetPtr();
136- // auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(ramparts);
137- // transform->SetLocalPosition(glm::vec3(300.0f, 0.0f, -100.0f));
138- // transform->SetLocalRotation(stratus::Rotation(stratus::Degrees(90.0f), stratus::Degrees(0.0f), stratus::Degrees(0.0f)));
139- // transform->SetLocalScale(glm::vec3(10.0f));
140- // INSTANCE(EntityManager)->AddEntity(ramparts);
141- // });
142-
143- // e = Resources()->LoadModel("../Resources/local/Rock_Terrain_SF.obj", stratus::ColorSpace::SRGB);
144- // e.AddCallback([this](stratus::Async<stratus::Entity> e) {
145- // rocks = e.GetPtr();
146- // auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(rocks);
147- // transform->SetLocalPosition(glm::vec3(700.0f, -75.0f, -100.0f));
148- // transform->SetLocalScale(glm::vec3(15.0f));
149- // INSTANCE(EntityManager)->AddEntity(rocks);
150- // PrintNodeHierarchy(rocks, "Rocks", "");
151- // });
152-
153- // // Disable culling for this model since there are some weird parts that seem to be reversed
154- // e = Resources()->LoadModel("../Resources/glTF-Sample-Models/2.0/Sponza/glTF/Sponza.gltf", stratus::ColorSpace::SRGB, stratus::RenderFaceCulling::CULLING_CCW);
155- // e.AddCallback([this](stratus::Async<stratus::Entity> e) {
156- // sponza = e.GetPtr();
157- // auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(sponza);
158- // transform->SetLocalPosition(glm::vec3(0.0f, -300.0f, -500.0f));
159- // transform->SetLocalScale(glm::vec3(15.0f));
160- // INSTANCE(EntityManager)->AddEntity(sponza);
161- // PrintNodeHierarchy(sponza, "Sponza", "");
162- // });
92+ stratus::Async<stratus::Entity> e;
93+ e = Resources ()->LoadModel (" ../Resources/resources/models/Latrine.fbx" , stratus::ColorSpace::LINEAR, true , stratus::RenderFaceCulling::CULLING_CCW );
94+ e.AddCallback ([this ](stratus::Async<stratus::Entity> e) {
95+ outhouse = e.GetPtr ();
96+ auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(outhouse);
97+ transform->SetLocalScale (glm::vec3 (15 .0f ));
98+ transform->SetLocalPosition (glm::vec3 (-50 .0f , -10 .0f , -45 .0f ));
99+ INSTANCE (EntityManager)->AddEntity (outhouse);
100+ });
101+
102+ e = Resources ()->LoadModel (" ../Resources/resources/models/hromada_hlina_01_30k_f.FBX" , stratus::ColorSpace::SRGB, true , stratus::RenderFaceCulling::CULLING_CCW );
103+ e.AddCallback ([this ](stratus::Async<stratus::Entity> e) {
104+ clay = e.GetPtr ();
105+ auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(clay);
106+ transform->SetLocalPosition (glm::vec3 (100 .0f , 0 .0f , -50 .0f ));
107+ // transform->SetLocalRotation(stratus::Rotation(stratus::Degrees(-180.0f), stratus::Degrees(0.0f), stratus::Degrees(0.0f)));
108+ INSTANCE (EntityManager)->AddEntity (clay);
109+ PrintNodeHierarchy (clay, " Clay" , " " );
110+ });
111+
112+ e = Resources ()->LoadModel (" ../Resources/resources/models/boubin_stump.FBX" , stratus::ColorSpace::SRGB, true , stratus::RenderFaceCulling::CULLING_CCW );
113+ e.AddCallback ([this ](stratus::Async<stratus::Entity> e) {
114+ stump = e.GetPtr ();
115+ auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(stump);
116+ transform->SetLocalRotation (stratus::Rotation (stratus::Degrees (-180 .0f ), stratus::Degrees (0 .0f ), stratus::Degrees (0 .0f )));
117+ transform->SetLocalPosition (glm::vec3 (0 .0f , -15 .0f , -20 .0f ));
118+ INSTANCE (EntityManager)->AddEntity (stump);
119+ PrintNodeHierarchy (stump, " Stump" , " " );
120+ });
121+
122+ e = Resources ()->LoadModel (" ../Resources/local/hintze-hall-1m.obj" , stratus::ColorSpace::SRGB, true , stratus::RenderFaceCulling::CULLING_CCW );
123+ e.AddCallback ([this ](stratus::Async<stratus::Entity> e) {
124+ hall = e.GetPtr ();
125+ auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(hall);
126+ transform->SetLocalRotation (stratus::Rotation (stratus::Degrees (-90 .0f ), stratus::Degrees (0 .0f ), stratus::Degrees (0 .0f )));
127+ transform->SetLocalScale (glm::vec3 (10 .0f , 10 .0f , 10 .0f ));
128+ transform->SetLocalPosition (glm::vec3 (-250 .0f , -30 .0f , 0 .0f ));
129+ INSTANCE (EntityManager)->AddEntity (hall);
130+ PrintNodeHierarchy (hall, " Hall" , " " );
131+ });
132+
133+ e = Resources ()->LoadModel (" ../Resources/local/model.obj" , stratus::ColorSpace::SRGB, true , stratus::RenderFaceCulling::CULLING_CCW );
134+ e.AddCallback ([this ](stratus::Async<stratus::Entity> e) {
135+ ramparts = e.GetPtr ();
136+ auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(ramparts);
137+ transform->SetLocalPosition (glm::vec3 (300 .0f , 0 .0f , -100 .0f ));
138+ transform->SetLocalRotation (stratus::Rotation (stratus::Degrees (90 .0f ), stratus::Degrees (0 .0f ), stratus::Degrees (0 .0f )));
139+ transform->SetLocalScale (glm::vec3 (10 .0f ));
140+ INSTANCE (EntityManager)->AddEntity (ramparts);
141+ });
142+
143+ e = Resources ()->LoadModel (" ../Resources/local/Rock_Terrain_SF.obj" , stratus::ColorSpace::SRGB, true , stratus::RenderFaceCulling::CULLING_CCW );
144+ e.AddCallback ([this ](stratus::Async<stratus::Entity> e) {
145+ rocks = e.GetPtr ();
146+ auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(rocks);
147+ transform->SetLocalPosition (glm::vec3 (700 .0f , -75 .0f , -100 .0f ));
148+ transform->SetLocalScale (glm::vec3 (15 .0f ));
149+ INSTANCE (EntityManager)->AddEntity (rocks);
150+ PrintNodeHierarchy (rocks, " Rocks" , " " );
151+ });
152+
153+ // Disable culling for this model since there are some weird parts that seem to be reversed
154+ e = Resources ()->LoadModel (" ../Resources/glTF-Sample-Models/2.0/Sponza/glTF/Sponza.gltf" , stratus::ColorSpace::SRGB, true , stratus::RenderFaceCulling::CULLING_CCW);
155+ e.AddCallback ([this ](stratus::Async<stratus::Entity> e) {
156+ sponza = e.GetPtr ();
157+ auto transform = stratus::GetComponent<stratus::LocalTransformComponent>(sponza);
158+ transform->SetLocalPosition (glm::vec3 (0 .0f , -300 .0f , -500 .0f ));
159+ transform->SetLocalScale (glm::vec3 (15 .0f ));
160+ INSTANCE (EntityManager)->AddEntity (sponza);
161+ PrintNodeHierarchy (sponza, " Sponza" , " " );
162+ });
163163
164164 for (size_t texIndex = 0 ; texIndex < textures.size (); ++texIndex) {
165165 auto cube = Resources ()->CreateCube ();
0 commit comments