void TestGame::Init() { GameObject* planeObject = new GameObject(); GameObject* pointLightObject = new GameObject(); GameObject* spotLightObject = new GameObject(); GameObject* directionalLightObject = new GameObject(); planeObject->AddComponent(new MeshRenderer(new Mesh("./res/models/plane3.obj"), new Material(new Texture("bricks.jpg"), 0.5f, 4, new Texture("bricks_normal.jpg"), new Texture("bricks_disp.png"), 0.03f, -0.5f))); planeObject->GetTransform().SetPos(Vector3f(0, -1, 5)); planeObject->GetTransform().SetScale(4.0f); pointLightObject->AddComponent(new PointLight(Vector3f(0,1,0),0.4f,Attenuation(0,0,1))); pointLightObject->GetTransform().SetPos(Vector3f(7,0,7)); spotLightObject->AddComponent(new SpotLight(Vector3f(0,1,1),0.4f,Attenuation(0,0,0.1f),0.7f)); spotLightObject->GetTransform().SetRot(Quaternion(Vector3f(0,1,0), ToRadians(90.0f))); directionalLightObject->AddComponent(new DirectionalLight(Vector3f(1,1,1), 0.4f)); GameObject* testMesh1 = new GameObject(); GameObject* testMesh2 = new GameObject(); //WARNING: bricks2_normal.jpg is reversed on the y axis. This is intentional, and demonstrates how normal maps are sometimes flipped. //If you want to fix this, the easiest solution is to flip it in an image editor. testMesh1->AddComponent(new MeshRenderer(new Mesh("./res/models/plane3.obj"), new Material(new Texture("bricks2.jpg"), 1, 8, new Texture("bricks2_normal.jpg"), new Texture("bricks2_disp.jpg"), 0.04f, -1.0f))); testMesh2->AddComponent(new MeshRenderer(new Mesh("./res/models/plane3.obj"), new Material(new Texture("bricks2.jpg"), 1, 8, new Texture("bricks2_normal.jpg")))); testMesh1->GetTransform().SetPos(Vector3f(0, 2, 0)); testMesh1->GetTransform().SetRot(Quaternion(Vector3f(0,1,0), 0.4f)); testMesh1->GetTransform().SetScale(1.0f); testMesh2->GetTransform().SetPos(Vector3f(0, 0, 25)); testMesh1->AddChild(testMesh2); AddToScene(planeObject); AddToScene(pointLightObject); AddToScene(spotLightObject); AddToScene(directionalLightObject); AddToScene(testMesh1); testMesh2->AddChild((new GameObject()) ->AddComponent(new Camera(Matrix4f().InitPerspective(ToRadians(70.0f), Window::GetAspect(), 0.1f, 1000.0f))) ->AddComponent(new FreeLook()) ->AddComponent(new FreeMove())); directionalLightObject->GetTransform().SetRot(Quaternion(Vector3f(1,0,0), ToRadians(-45))); }
void Assignment2::Init() { GameObject* planeObject = new GameObject(); GameObject* pointLightObject = new GameObject(); GameObject* spotLightObject = new GameObject(); GameObject* directionalLightObject = new GameObject(); planeObject->AddComponent(new MeshRenderer(new Mesh("./res/models/plane3.obj"), new Material(new Texture("bricks.jpg"), 1, 8))); planeObject->GetTransform().SetPos(Vector3f(0, -1, 5)); planeObject->GetTransform().SetScale(4.0f); pointLightObject->AddComponent(new PointLight(Vector3f(0,1,0),0.4f,Attenuation(0,0,1))); pointLightObject->GetTransform().SetPos(Vector3f(7,0,7)); spotLightObject->AddComponent(new SpotLight(Vector3f(0,1,1),0.4f,Attenuation(0,0,0.1f),0.7f)); spotLightObject->GetTransform().SetRot(Quaternion(Vector3f(0,1,0), ToRadians(90.0f))); directionalLightObject->AddComponent(new DirectionalLight(Vector3f(1,1,1), 0.4f)); GameObject* testMesh1 = new GameObject(); GameObject* testMesh2 = new GameObject(); testMesh1->GetTransform().SetPos(Vector3f(0, 2, 0)); testMesh1->GetTransform().SetRot(Quaternion(Vector3f(0,1,0), 0.4f)); testMesh1->GetTransform().SetScale(1.0f); testMesh2->GetTransform().SetPos(Vector3f(0, 0, 25)); testMesh1->AddChild(testMesh2); AddToScene(planeObject); AddToScene(pointLightObject); AddToScene(spotLightObject); AddToScene(directionalLightObject); AddToScene(testMesh1); testMesh2->AddChild((new GameObject()) ->AddComponent(new Camera(Matrix4f().InitPerspective(ToRadians(70.0f), Window::GetAspect(), 0.1f, 1000.0f))) ->AddComponent(new FreeLook()) ->AddComponent(new FreeMove())); directionalLightObject->GetTransform().SetRot(Quaternion(Vector3f(1,0,0), ToRadians(-45))); }
void Scene::Init(CoreEngine* _engine) { _engine->physicsEnabled = true; // Enable engine physics upon startup renderer = _engine->renderer; // Create default Materials Material defaultTexture("default_texture", Texture("default_texture.png"), NULL, 0.0f, 20.0f, NULL, NULL, 0.03f, -0.5f); // Set up main camera GameObject* mainCamera = new GameObject("Main Camera"); mainCamera->transform.isSelectable = false; mainCamera->transform.position = vec3(10, 15, 15); mainCamera->transform.LookAt(vec3(0)); Camera::current = mainCamera->AddComponent<Camera>(Camera((float)Window::width / (float)Window::height, 75.0f)); mainCamera->AddComponent<FlyCameraScript>(); AddToScene(mainCamera); // Set up directional light GameObject* directionalLight = new GameObject("Directional Light"); directionalLight->transform.isSelectable = false; directionalLight->transform.position = vec3(0,0,0); directionalLight->AddComponent<DirectionalLight>(); AddToScene(directionalLight); }
void TestGame::Init() { Entity *camera = new Entity( Vector3f( 0, 5, 15 ) ); camera->AddComponent( new FreeLookFreeMoveComponent() ); SetCamera( camera ); Planet *planet = new Planet( 12310, 4, 10.0f, 30 ); Entity *entity = new Entity(); RenderComponent* render = new RenderComponent( planet->CreateMesh() ); render->SetShaderType( ShaderType::SHADER_COLORIZED ); entity->AddComponent( render ); entity->AddComponent( new PlanetColorComponent( planet ) ); AddToScene( entity ); // Entity* cube = new Entity(); // cube->AddComponent( new RenderComponent( "cube.obj", "test.png" ) ); // AddToScene( cube ); }
void TestGame::Init(const Window& window) { Material bricks("bricks", Texture("bricks.jpg"), 0.0f, 0, Texture("bricks_normal.jpg"), Texture("bricks_disp.png"), 0.03f, -0.5f); Material bricks2("bricks2", Texture("bricks2.jpg"), 0.0f, 0, Texture("bricks2_normal.png"), Texture("bricks2_disp.jpg"), 0.04f, -1.0f); //Material skin("humanFace", Texture("human.jpg"), 0.0f, 0, Texture("human_normal_inv.jpg")); //Material skin("humanFace", Texture("human.jpg"), 0.08f, 8, Texture("human_normal_inv.jpg")); IndexedModel square; { square.AddVertex(1.0f, -1.0f, 0.0f); square.AddTexCoord(Vector2f(1.0f, 1.0f)); square.AddVertex(1.0f, 1.0f, 0.0f); square.AddTexCoord(Vector2f(1.0f, 0.0f)); square.AddVertex(-1.0f, -1.0f, 0.0f); square.AddTexCoord(Vector2f(0.0f, 1.0f)); square.AddVertex(-1.0f, 1.0f, 0.0f); square.AddTexCoord(Vector2f(0.0f, 0.0f)); square.AddFace(0, 1, 2); square.AddFace(2, 1, 3); } Mesh customMesh("square", square.Finalize()); AddToScene((new Entity(Vector3f(0, -1, 5), Quaternion(), 32.0f)) ->AddComponent(new MeshRenderer(Mesh("terrain02.obj"), Material("bricks")))); AddToScene((new Entity(Vector3f(7,0,7))) ->AddComponent(new PointLight(Vector3f(0,1,0), 0.4f, Attenuation(0,0,1)))); AddToScene((new Entity(Vector3f(20,-11.0f,5), Quaternion(Vector3f(1,0,0), ToRadians(-60.0f)) * Quaternion(Vector3f(0,1,0), ToRadians(90.0f)))) ->AddComponent(new SpotLight(Vector3f(0,1,1), 0.4f, Attenuation(0,0,0.02f), ToRadians(91.1f), 7, 1.0f, 0.5f))); AddToScene((new Entity(Vector3f(), Quaternion(Vector3f(1,0,0), ToRadians(-45)))) ->AddComponent(new DirectionalLight(Vector3f(1,1,1), 0.4f, 10, 80.0f, 1.0f))); AddToScene((new Entity(Vector3f(0, 2, 0), Quaternion(Vector3f(0,1,0), 0.4f), 1.0f)) ->AddComponent(new MeshRenderer(Mesh("plane3.obj"), Material("bricks2"))) ->AddChild((new Entity(Vector3f(0, 0, 25))) ->AddComponent(new MeshRenderer(Mesh("plane3.obj"), Material("bricks2"))) ->AddChild((new Entity()) ->AddComponent(new CameraComponent(Matrix4f().InitPerspective(ToRadians(70.0f), window.GetAspect(), 0.1f, 1000.0f))) ->AddComponent(new FreeLook(window.GetCenter())) ->AddComponent(new FreeMove(10.0f))))); AddToScene((new Entity(Vector3f(24,-12,5), Quaternion(Vector3f(0,1,0), ToRadians(30.0f)))) ->AddComponent(new MeshRenderer(Mesh("sphere.obj"), Material("bricks")))); AddToScene((new Entity(Vector3f(0,0,7), Quaternion(), 1.0f)) ->AddComponent(new MeshRenderer(Mesh("square"), Material("bricks2")))); }
void TestGame::Init(const Window& window) { //Materials Material bricks("bricks", Texture("bricks.jpg"), 0.0f, 0, Texture("bricks_normal.jpg"), Texture("bricks_disp.png"), 0.03f, -0.5f); Material bricks2("bricks2", Texture("bricks2.jpg"), 0.0f, 0, Texture("bricks2_normal.png"), Texture("bricks2_disp.jpg"), 0.04f, -1.0f); //Standard square mesh (1x1) IndexedModel square; { square.AddVertex(1.0f, -1.0f, 0.0f); square.AddTexCoord(Vector2f(1.0f, 1.0f)); square.AddVertex(1.0f, 1.0f, 0.0f); square.AddTexCoord(Vector2f(1.0f, 0.0f)); square.AddVertex(-1.0f, -1.0f, 0.0f); square.AddTexCoord(Vector2f(0.0f, 1.0f)); square.AddVertex(-1.0f, 1.0f, 0.0f); square.AddTexCoord(Vector2f(0.0f, 0.0f)); square.AddFace(0, 1, 2); square.AddFace(2, 1, 3); } Mesh customMesh("square", square.Finalize()); //Light Entity* mainLight = new Entity(Vector3f(0, 4, 0), Quaternion(Vector3f(1, 0, 0), ToRadians(270)), 1); Entity* pointLight = new Entity(Vector3f(-1, 1.5, 0), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 1); mainLight->AddModifier(new DirectionalLight(Vector3f(1, 1, 1), 0.4f, 10, 80, 1)); pointLight->AddModifier(new PointLight(Vector3f(0, 0, 1), 0.4f, Attenuation(0, 0, 1))); pointLight->AddModifier(new RepetitiveLinearMotionModifier(Vector3f(1, 0, 0), 0.015f, 1)); //pointLight->AddModifier(new FreeMove(5.0f)); AddToScene(mainLight); //AddToScene(pointLight); //Camera Entity* mainCamera = new Entity(Vector3f(-10, 5, 5), Quaternion(Vector3f(0, 0, 0), 0), 1); mainCamera->AddModifier(new CameraComponent(Matrix4f().InitPerspective(ToRadians(70), window.GetAspect(), 0.1f, 1000))); mainCamera->AddModifier(new FreeLook(window.GetCenter(), 0.15f)); mainCamera->AddModifier(new FreeMove(15)); AddToScene(mainCamera); //Environment /*Entity* floorPlane = new Entity(Vector3f(0, 0, 0), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 1); Entity* floatingCube = new Entity(Vector3f(0, 1, 0), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 0.3f); floorPlane->AddModifier(new MeshRenderer(Mesh("plane.obj"), Material("bricks"))); floatingCube->AddModifier(new MeshRenderer(Mesh("cube.obj"), Material("bricks2"))); floatingCube->AddModifier(new RepetitiveLinearMotionModifier(Vector3f(0, 1, 0), 0.01f, 2)); floatingCube->AddModifier(new RepetitiveRotationalMotionModifier(Vector3f(0, 1, 0), 0.02f, 1, false)); AddToScene(floorPlane); AddToScene(floatingCube);*/ Entity* sphere1 = new Entity(Vector3f(0, 0, -4), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 1); Entity* sphere2 = new Entity(Vector3f(0, 0, 1), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 1); Entity* sphere3 = new Entity(Vector3f(0, 0, 3), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 1); Entity* sphere4 = new Entity(Vector3f(0, 0, 5), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 1); Entity* sphere5 = new Entity(Vector3f(0, 0, 7), Quaternion(Vector3f(0, 0, 0), ToRadians(0)), 1); sphere1->AddModifier(new MeshRenderer(Mesh("sphere.obj"), Material("bricks"))); sphere2->AddModifier(new MeshRenderer(Mesh("sphere.obj"), Material("bricks2"))); sphere3->AddModifier(new MeshRenderer(Mesh("sphere.obj"), Material("bricks2"))); sphere4->AddModifier(new MeshRenderer(Mesh("sphere.obj"), Material("bricks2"))); sphere5->AddModifier(new MeshRenderer(Mesh("sphere.obj"), Material("bricks"))); AddToScene(sphere1); AddToScene(sphere2); AddToScene(sphere3); AddToScene(sphere4); AddToScene(sphere5); //Physics PhysicsEngine physicsEngine = PhysicsEngine(); PhysicsObject sphere1Rep = PhysicsObject(sphere1, new BoundingSphere(Vector3f(0, 0, -4), 1), Vector3f(0, 0, 1), Vector3f(0, 0, 0), false); PhysicsObject sphere2Rep = PhysicsObject(sphere2, new BoundingSphere(Vector3f(0, 0, 1), 1), Vector3f(0, 0, 0), Vector3f(0, 0, 0), false); PhysicsObject sphere3Rep = PhysicsObject(sphere3, new BoundingSphere(Vector3f(0, 0, 3), 1), Vector3f(0, 0, 0), Vector3f(0, 0, 0), false); PhysicsObject sphere4Rep = PhysicsObject(sphere4, new BoundingSphere(Vector3f(0, 0, 5), 1), Vector3f(0, 0, 0), Vector3f(0, 0, 0), false); PhysicsObject sphere5Rep = PhysicsObject(sphere5, new BoundingSphere(Vector3f(0, 0, 7), 1), Vector3f(0, 0, 0), Vector3f(0, 0, 0), false); physicsEngine.AddObject(sphere1Rep); physicsEngine.AddObject(sphere2Rep); physicsEngine.AddObject(sphere3Rep); physicsEngine.AddObject(sphere4Rep); physicsEngine.AddObject(sphere5Rep); SetPhysicsEngine(physicsEngine); }
void LevelFactory::ReadXML(const std::string& aFilePath) { Prism::Engine::GetInstance()->GetModelLoader()->Pause(); Prism::Engine::GetInstance()->myIsLoading = true; FindTextures("Data/Resource/Texture/Particle/"); myCurrentLevel->myScene = new Prism::Scene(); myCurrentLevel->myWeaponFactory = new WeaponFactory(); myCurrentLevel->myWeaponFactory->LoadWeapons("Data/Script/LI_list_weapon.xml"); myCurrentLevel->myWeaponFactory->LoadProjectiles("Data/Script/LI_list_projectile.xml"); myCurrentLevel->myEntityFactory = new EntityFactory(myCurrentLevel->myWeaponFactory); myCurrentLevel->myEntityFactory->LoadEntites("Data/Script/LI_list_entity.xml", myDifficults[myCurrentDifficultyID].myMultiplier); myCurrentLevel->myCollisionManager = new CollisionManager(); myCurrentLevel->myBulletManager = new BulletManager(*myCurrentLevel->myCollisionManager, *myCurrentLevel->myScene); myCurrentLevel->myBulletManager->LoadFromFactory(myCurrentLevel->myWeaponFactory, myCurrentLevel->myEntityFactory, "Data/Script/LI_list_projectile.xml"); myDirectionalLights.DeleteAll(); myPointLights.DeleteAll(); mySpotLights.DeleteAll(); LoadPlayer(); myCurrentLevel->myEmitterManager = new EmitterManager(myCurrentLevel->myPlayer); ReadLevelSettings(); myCurrentLevel->myEntities.Add(myCurrentLevel->myPlayer); myCurrentLevel->myCamera = new Prism::Camera(myCurrentLevel->myPlayer->myOrientation); myCurrentLevel->myPlayer->GetComponent<GUIComponent>()->SetCamera(myCurrentLevel->myCamera); myCurrentLevel->GetEmitterManager()->AddEmitter(myCurrentLevel->myPlayer->GetComponent<ParticleEmitterComponent>()); myCurrentLevel->myPlayer->SetPlayerScene(*myCurrentLevel->myScene); Sleep(10); XMLReader reader; reader.OpenDocument(aFilePath); tinyxml2::XMLElement* levelElement = reader.ForceFindFirstChild("root"); levelElement = reader.ForceFindFirstChild(levelElement, "scene"); std::string skySphere; std::string cubeMap; std::string missionXML; std::string eventXML; std::string conversationXML; reader.ForceReadAttribute(reader.ForceFindFirstChild(levelElement, "missionxml"), "source", missionXML); reader.ForceReadAttribute(reader.ForceFindFirstChild(levelElement, "eventxml"), "source", eventXML); reader.ForceReadAttribute(reader.ForceFindFirstChild(levelElement, "conversationxml"), "source", conversationXML); CU::Vector3<float> playerPos; CU::Vector3<float> playerRot; tinyxml2::XMLElement* playerPosElement; playerPosElement = reader.ForceFindFirstChild(levelElement, "PlayerStartTranslate"); playerPosElement = reader.ForceFindFirstChild(playerPosElement, "position"); reader.ForceReadAttribute(playerPosElement, "X", playerPos.x); reader.ForceReadAttribute(playerPosElement, "Y", playerPos.y); reader.ForceReadAttribute(playerPosElement, "Z", playerPos.z); playerPosElement = reader.ForceFindFirstChild(levelElement, "PlayerStartTranslate"); playerPosElement = reader.ForceFindFirstChild(playerPosElement, "rotation"); reader.ForceReadAttribute(playerPosElement, "X", playerRot.x); reader.ForceReadAttribute(playerPosElement, "Y", playerRot.y); reader.ForceReadAttribute(playerPosElement, "Z", playerRot.z); myCurrentLevel->myPlayer->myOrientation = CU::Matrix44f(); myCurrentLevel->myPlayer->myOrientation = myCurrentLevel->myPlayer->myOrientation.CreateRotateAroundX(playerRot.x) * myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->myOrientation = myCurrentLevel->myPlayer->myOrientation.CreateRotateAroundY(playerRot.y) * myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->myOrientation = myCurrentLevel->myPlayer->myOrientation.CreateRotateAroundZ(playerRot.z) * myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->myOrientation = CU::GetOrientation(myCurrentLevel->myPlayer->myOrientation, playerRot); myCurrentLevel->myPlayer->myOrientation.SetPos(playerPos * 10.f); myCurrentLevel->myPlayer->myOriginalOrientation = myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->Reset(); myCurrentLevel->myConversationManager = new ConversationManager(conversationXML); myCurrentLevel->myMissionManager = new MissionManager(*myCurrentLevel, *myCurrentLevel->myPlayer, missionXML); myCurrentLevel->myEventManager = new EventManager(eventXML, *myCurrentLevel->myConversationManager , *myCurrentLevel->myPlayer); reader.ReadAttribute(reader.ForceFindFirstChild(levelElement, "skysphere"), "source", skySphere); reader.ReadAttribute(reader.ForceFindFirstChild(levelElement, "cubemap"), "source", cubeMap); Prism::Engine::GetInstance()->GetEffectContainer()->SetCubeMap(cubeMap); SetSkySphere(skySphere, "Data/Resource/Shader/S_effect_skybox.fx"); LoadLights(reader, levelElement); LoadProps(reader, levelElement); LoadDefendables(reader, levelElement, myDifficults[myCurrentDifficultyID].myHealthMultiplier); LoadStructures(reader, levelElement); LoadTriggers(reader, levelElement); LoadPowerups(reader, levelElement); reader.CloseDocument(); myCurrentLevel->myEMPHexagon = new Entity(eEntityType::EMP, *myCurrentLevel->myScene, Prism::eOctreeType::STATIC , "EMP"); myCurrentLevel->myEMPHexagon->AddComponent<GraphicsComponent>()->Init("Data/Resource/Model/Weapon/SM_emp_hexasphere.fbx" , "Data/Resource/Shader/S_effect_emp.fx"); myCurrentLevel->myEMPHexagon2 = new Entity(eEntityType::EMP, *myCurrentLevel->myScene, Prism::eOctreeType::STATIC , "EMP"); myCurrentLevel->myEMPHexagon2->AddComponent<GraphicsComponent>()->Init("Data/Resource/Model/Weapon/SM_emp_hexasphere.fbx" , "Data/Resource/Shader/S_effect_emp.fx"); for (int i = 0; i < myCurrentLevel->myEntities.Size(); ++i) { if (myCurrentLevel->myEntities[i]->GetComponent<AIComponent>() != nullptr) { std::string targetName = myCurrentLevel->myEntities[i]->GetComponent<AIComponent>()->GetTargetName(); Entity* target = myCurrentLevel->GetEntityWithName(targetName); myCurrentLevel->myEntities[i]->GetComponent<AIComponent>()->SetEntityToFollow(myCurrentLevel->myPlayer, myCurrentLevel->myPlayer); if (target != nullptr) { myCurrentLevel->myEntities[i]->GetComponent<AIComponent>()->SetEntityToFollow(target, myCurrentLevel->myPlayer); } } if (myCurrentLevel->myEntities[i]->GetComponent<ParticleEmitterComponent>() != nullptr) { myCurrentLevel->myEmitterManager->AddEmitter(myCurrentLevel->myEntities[i]->GetComponent<ParticleEmitterComponent>()); } } for (int i = 0; i < static_cast<int>(eBulletType::COUNT); ++i) { if (i <= 8) { for (int j = 0; j < myCurrentLevel->myBulletManager->GetBullet(i)->myPlayerBullets.Size(); ++j) { if (myCurrentLevel->myBulletManager->GetBullet(i)->myPlayerBullets[j]->GetComponent<ParticleEmitterComponent>() != nullptr) { myCurrentLevel->myEmitterManager->AddEmitter(myCurrentLevel->myBulletManager->GetBullet(i)->myPlayerBullets[j]->GetComponent<ParticleEmitterComponent>()); } if (myCurrentLevel->myBulletManager->GetBullet(i)->myEnemyBullets[j]->GetComponent<ParticleEmitterComponent>() != nullptr) { myCurrentLevel->myEmitterManager->AddEmitter(myCurrentLevel->myBulletManager->GetBullet(i)->myEnemyBullets[j]->GetComponent<ParticleEmitterComponent>()); } } } } AddToScene(); myCurrentLevel->myMissionManager->Init(); myCurrentLevel->myPlayer->GetComponent<InputComponent>()->SetSkyPosition(); myCurrentLevel->myPlayer->GetComponent<GUIComponent>()->SetCockpitOrientation(); Prism::Engine::GetInstance()->GetModelLoader()->UnPause(); Prism::Engine::GetInstance()->GetModelLoader()->WaitUntilFinished(); Prism::Engine::GetInstance()->GetEffectContainer()->GetEffect("Data/Resource/Shader/S_effect_pbl.fx")->SetAmbientHue(myAmbientHue); Prism::Engine::GetInstance()->myIsLoading = false; myIsLoading = false; }