void TCompLightDirShadowsDynamic::generateShadowMap() {
	if (!enabled)
		return;
	
	if (!is_inRoom) return;

	assert(rt_shadows);

	PROFILE_FUNCTION("shadows: generateShadowMap");

	// Vamos a empezar a pintar en el shadow map
	rt_shadows->clearZ();
	//rt_shadows->setZ(rt_shadows_base->getZ(), rt_shadows_base->getRT());
	//
	rt_shadows->activateRT();
	activateRS(RSCFG_SHADOWS);

	// Desde MI punto de vista, el pt de vista de la luz direccional
	// que genera sombras
	activateCamera(this);

	// activar la tech de shadow map generation
	Resources.get("shadow_gen.tech")->as<CRenderTechnique>()->activate();

	// Pintar los shadow casters
	RenderManager.renderShadowCasters(CHandle(this).getOwner(), SBB::readSala(), true);

	// activar la tech de shadow map generation
	Resources.get("shadow_gen_skin.tech")->as<CRenderTechnique>()->activate();

	// Pintar los shadow casters
	RenderManager.renderShadowCastersSkin(CHandle(this).getOwner(), SBB::readSala());

	activateRS(RSCFG_DEFAULT);
}
Esempio n. 2
0
void CGFscene::initCameras()
{
	CGFcamera* first = new CGFcamera();
	CGFcamera* second = new CGFcamera();
	CGFcamera* third = new CGFcamera();

	first->moveTo(25,0,0);
	first->rotate(0,20);
	first->rotate(1,-45);

	second->moveTo(20,20,20);

	third->moveTo(0,30,0);
	
	scene_cameras.push_back(first);
	scene_cameras.push_back(second);
	scene_cameras.push_back(third);

	activateCamera(0);
}