void TerrainWrapper::Enable()
{




	Controller * ctrl = static_cast<Controller*>(GetManager()->Get("Controller"));
	DataManager * dm = static_cast<DataManager*>(GetManager()->Get("DataManager"));



	Techniques * tech = static_cast<Techniques*>(dm->Get("Techniques"));
	ResourceLoader * res = static_cast<ResourceLoader*>(dm->Get("Resources"));
	Environment * env = static_cast<Environment*>(res->Get("Environment"));
	Camera * camera = static_cast<Camera*>(ctrl->Get("Camera"));
	View * view = camera->GetView();
	ViewInfo * info = camera->GetInfo();



	Shader::Enable();
	Shader::Set("myTextureSampler", 0);
	Shader::Set("myTextureSampler2", 1);
	Shader::Set("myTextureSampler3", 2);
	Shader::Set("shadow_map", 3);
	TerrainShader::SendTextureAttributes(terra->GetTextureAttributes(), 4);


	/**
	Raising to power for gamma correction
	*/
	getLight()->SetFog(glm::pow(env->fog_color, glm::vec3(2.2)), env->fog_density);
	getLight()->SetDirectionalLight(env->terrain_bright*
		glm::pow(env->sun_color, glm::vec3(2.2)),
		env->sun_dir,
		env->terrain_ambient,
		env->terrain_diffuse);





	Set("LightMatrix", Math::GetBiasMatrix()*
		tech->GetShadow()->GetDirectionalShadow(env, info, view));



	tech->GetShadow()->GetShadowMap()->BindTexture(0, GL_TEXTURE3);
	tech->GetShadow()->GetShadowMap()->ResetTextureState();




	ManagePlayerCollision(ctrl, false);



}
void TerrainWrapper::Render()
{




	Controller * ctrl = static_cast<Controller*>(GetManager()->Get("Controller"));
	DataManager * dm = static_cast<DataManager*>(GetManager()->Get("DataManager"));


	Techniques * tech = static_cast<Techniques*>(dm->Get("Techniques"));
	ResourceLoader * res = static_cast<ResourceLoader*>(dm->Get("Resources"));
	Environment * env = static_cast<Environment*>(res->Get("Environment"));
	Camera * camera = static_cast<Camera*>(ctrl->Get("Camera"));
	View * view = camera->GetView();
	ViewInfo * info = camera->GetInfo();





	if (tech->GetSSAO()->OnGeometryPass())
	{


		tech->GetSSAO()->SetGeometryPassUniforms(view->getCamera(),
			view->getViewMatrix());


	}
	else if (tech->GetShadow()->OnShadowPass())
	{

		tech->GetShadow()->UniformMVP(tech->GetShadow()->GetDirectionalShadow(env, info, view));


	}
	else
	{


		Space(glm::mat4(1.0), view);


	}



	terra->Render(camera->GetFrustum(), false);




}
Exemple #3
0
void RootUI::Init()
{


	CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();
	Root = wmgr.loadLayoutFromFile("ui.layout");
	CEGUI::System::getSingleton().getDefaultGUIContext().setRootWindow(Root);


	Controller * ctrl = static_cast<Controller*>(GetManager()->Get("Controller"));
	DataManager * dm = static_cast<DataManager*>(GetManager()->Get("DataManager"));



	ResourceLoader * res = static_cast<ResourceLoader*>(dm->Get("Resources"));



	root_settings = new RootSettings(res, Root);
	top_root = new TopRoot(dm, Root);




}
AutoOnline::AutoOnline(DataManager &data, DataManager &sensitive_data) :
    data_(data),
    sensitive_data_(sensitive_data),
    enabled_(data_.GetBool("online_enabled")),
    url_(sensitive_data_.Get("online_url")),
    process_script_(data.Get("process_script")),
    previous_status_(true)  // set to true to force first refresh
{
    timer_.setInterval(kOnlineCheckInterval);
    connect(&timer_, &QTimer::timeout, this, &AutoOnline::Check);
    if (enabled_) {
        timer_.start();
        Check();
    }
}
void SkyWrapper::Enable()
{
	


	Controller * ctrl = static_cast<Controller*>(GetManager()->Get("Controller"));
	DataManager * dm = static_cast<DataManager*>(GetManager()->Get("DataManager"));




	ResourceLoader * res = static_cast<ResourceLoader*>(dm->Get("Resources"));
	Environment * env = static_cast<Environment*>(res->Get("Environment"));
	Camera * camera = static_cast<Camera*>(ctrl->Get("Camera"));
	ViewInfo * info = camera->GetInfo();
	View * view = camera->GetView();





	glm::mat4 m_rot = Math::Rotate(0, glfwGetTime() / 150.0, 0);
	glm::mat4 ModelMatrix = Math::Translation(info->getCameraPos() - info->getDirection()*info->getDistance())*
		m_rot*
		Math::Scale(glm::vec3(info->getRenderDistance()));




	Shader::Enable();
	Shader::Set("cube", 0);
    Shader::Set("MVP", view->getCamera()*ModelMatrix);
	Shader::Set("MV", view->getViewMatrix() * ModelMatrix);
	glm::vec4 f = glm::vec4(env->fog_color, 1.0);
	Shader::Set("fog_color", f);



	SkyRender::Enable();
	Shader::Stop();



}
void TerrainWrapper::Init()
{


	DataManager * dm = static_cast<DataManager*>(GetManager()->Get("DataManager"));
	ResourceLoader * res = static_cast<ResourceLoader*>(dm->Get("Resources"));



	terra = new Terrain();
	terra->LoadChunks(res->GetTerrainFile());
	terra->LoadColorFiles(res->GetColorFile(),
		res->GetTFile(),
		res->GetNFile(),
		res->GetAFile());



	dm->SetTree(terra->GetTree());


}
void MeshDrawer::Render()
{



    Controller * ctrl = static_cast<Controller*>(GetManager()->Get("Controller"));
    DataManager * dm = static_cast<DataManager*>(GetManager()->Get("DataManager"));
    MeshShader * shader = static_cast<MeshShader*>((GetManager()->Get("Pipeline"))->Get("MeshWrapper"));
    Techniques * tech = static_cast<Techniques*>(dm->Get("Techniques"));
    EntityManager * entity_manager = static_cast<EntityManager*>(Get("EntityManager"));
    EntityPalette * entity_palette = static_cast<EntityPalette*>(Get("EntityPalette"));




    shader->SetSpecular(0.0f, 1.0f);
    if (tech->GetShadow()->OnShadowPass())
    {
        glCullFace(GL_FRONT);
        entity_manager->Enable();
        entity_palette->Enable();
        glCullFace(GL_BACK);
    }
    else
    {
        entity_manager->Enable();
        entity_palette->Enable();
    }









}