/*
===================
idPlayerView::RenderPlayerView
===================
*/
void idPlayerView::RenderPlayerView(idUserInterface *hud)
{
	const renderView_t *view = player->GetRenderView();

	if (g_skipViewEffects.GetBool()) {
		SingleView(hud, view);
	} else {
		if (player->GetInfluenceMaterial() || player->GetInfluenceEntity()) {
			InfluenceVision(hud, view);
		} else if (gameLocal.time < dvFinishTime) {
			DoubleVision(hud, view, dvFinishTime - gameLocal.time);
		} else if (player->PowerUpActive(BERSERK)) {
			BerserkVision(hud, view);
		} else {
			SingleView(hud, view);
		}

		ScreenFade();
	}

	if (net_clientLagOMeter.GetBool() && lagoMaterial && gameLocal.isClient) {
		renderSystem->SetColor4(1.0f, 1.0f, 1.0f, 1.0f);
		renderSystem->DrawStretchPic(10.0f, 380.0f, 64.0f, 64.0f, 0.0f, 0.0f, 1.0f, 1.0f, lagoMaterial);
	}
}
/*
===================
idPlayerView::InfluenceVision
===================
*/
void idPlayerView::InfluenceVision(idUserInterface *hud, const renderView_t *view)
{

	float distance = 0.0f;
	float pct = 1.0f;

	if (player->GetInfluenceEntity()) {
		distance = (player->GetInfluenceEntity()->GetPhysics()->GetOrigin() - player->GetPhysics()->GetOrigin()).Length();

		if (player->GetInfluenceRadius() != 0.0f && distance < player->GetInfluenceRadius()) {
			pct = distance / player->GetInfluenceRadius();
			pct = 1.0f - idMath::ClampFloat(0.0f, 1.0f, pct);
		}
	}

	if (player->GetInfluenceMaterial()) {
		SingleView(hud, view);
		renderSystem->CaptureRenderToImage("_currentRender");
		renderSystem->SetColor4(1.0f, 1.0f, 1.0f, pct);
		renderSystem->DrawStretchPic(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 0.0f, 1.0f, 1.0f, player->GetInfluenceMaterial());
	} else if (player->GetInfluenceEntity() == NULL) {
		SingleView(hud, view);
		return;
	} else {
		int offset =  25 + sinf(gameLocal.time);
		DoubleVision(hud, view, pct * offset);
	}
}
Esempio n. 3
0
/*
===================
idPlayerView::RenderPlayerView
===================
*/
void idPlayerView::RenderPlayerView( idUserInterface *hud )
{
	const renderView_t *view = player->GetRenderView();

	if(g_skipViewEffects.GetBool())
	{
		SingleView( hud, view );
	} else {

		/*if ( player->GetInfluenceMaterial() || player->GetInfluenceEntity() ) {
		InfluenceVision( hud, view );
		} else if ( gameLocal.time < dvFinishTime ) {
		DoubleVision( hud, view, dvFinishTime - gameLocal.time );
		} else {*/

		// greebo: For underwater effects, use the Doom3 Doubleview
		if (static_cast<idPhysics_Player*>(player->GetPlayerPhysics())->GetWaterLevel() >= WATERLEVEL_HEAD)
		{
			DoubleVision(hud, view, cv_tdm_underwater_blur.GetInteger());
		}
		else
		{
			// Do not postprocess the HUD
			// 			if ( r_bloom_hud.GetBool() || !r_bloom.GetBool() ) // If HUD blooming is enabled or bloom is disabled
			// 			{
			// 				SingleView( hud, view );
			// 			}
			// 			else
			{
				SingleView( hud, view, false );
			}
		}
		//}

		// Bloom related - J.C.Denton
		/* Update  post-process */
		this->m_postProcessManager.Update();

		ScreenFade();
	}

	player->DrawHUD(hud);


	// TDM Ambient Method checking. By Dram
	// Modified by JC Denton
	if ( cv_ambient_method.IsModified() ) // If the ambient method option has changed
	{
		UpdateAmbientLight();
	}
}
//Draw our post process effects using ping pong
void Renderer::DrawPostProcess(){
	glDisable(GL_DEPTH_TEST);
	SetupPPMatrices();
	glBindFramebuffer(GL_FRAMEBUFFER, processFBO);

	if (sobel) Sobel();
	if (sobelDepth) SobelDepth();
	if (quantizeCol) QuantizeCol();
	if (fog) Fog();
	if (bloom) Bloom();
	if (dubVis) DoubleVision();
	if (blur) Blur();

	glBindFramebuffer(GL_FRAMEBUFFER, 0);
	glUseProgram(0);

	glEnable(GL_DEPTH_TEST);
}
Esempio n. 5
0
/*
===================
idPlayerView::RenderPlayerView
===================
*/
void idPlayerView::RenderPlayerView( idUserInterface *hud ) {
	if ( !player ) {
		return;
	}

	const renderView_t *view = player->GetRenderView();
	if ( !view ) {
		return;
	}
	
	bool guiRendered = false;

	// place the sound origin for the player
	soundSystem->PlaceListener( view->vieworg, view->viewaxis, player->entityNumber + 1, gameLocal.time, "Undefined" );
	InfluenceVision( hud, view );
	if ( g_skipViewEffects.GetBool() ) {
		SingleView( hud, view );
	} else {
		if ( player->GetInfluenceMaterial() || player->GetInfluenceEntity() ) {
			InfluenceVision( hud, view );
			guiRendered = true;
		} else if ( g_doubleVision.GetBool() && gameLocal.time < dvFinishTime ) {
			DoubleVision( hud, view, dvFinishTime - gameLocal.time );
			guiRendered = false;
		} else {
			SingleView( hud, view, RF_NO_GUI | RF_PRIMARY_VIEW );
		}

		// Now draw GUI's.
		if ( !guiRendered ) {
			SingleView( hud, view, RF_GUI_ONLY );
		}

		ScreenFade();
	}

	if ( net_clientLagOMeter.GetBool() && lagoMaterial && gameLocal.isClient && !( gameLocal.GetDemoState() == DEMO_PLAYING && ( gameLocal.IsServerDemo() || gameLocal.IsTimeDemo() ) ) ) {
		renderSystem->SetColor4( 1.0f, 1.0f, 1.0f, 1.0f );
		renderSystem->DrawStretchPic( 10.0f, 380.0f, 64.0f, 64.0f, 0.0f, 0.0f, 1.0f, 1.0f, lagoMaterial );
	}

}
Esempio n. 6
0
/*
===================
idPlayerView::RenderPlayerView
===================
*/
void idPlayerView::RenderPlayerView( idUserInterface *hud )
{
	const renderView_t *view = player->GetRenderView();

	if ( g_skipViewEffects.GetBool() ) {
		SingleView( hud, view );
	} else {


		/* Render the standard view */
		if ( player->GetInfluenceMaterial() || player->GetInfluenceEntity() ) {
			InfluenceVision( hud, view );
		} else if ( gameLocal.time < dvFinishTime ) {
			DoubleVision( hud, view, dvFinishTime - gameLocal.time );
		} else if ( player->PowerUpActive( BERSERK ) ) {
			BerserkVision( hud, view );
		} else {
			SingleView( hud, view );
		}

#ifdef _DENTONMOD
		// HDR related - J.C.Denton
		/* Update HDR post-process */
		this->m_postProcessManager.Update();
#endif
			ScreenFade();
	}

	/* Render the hud on top of everything */
	if ( !pm_thirdPerson.GetBool() && !g_skipViewEffects.GetBool() && !player->objectiveSystemOpen && !player->spectating ) {
		player->DrawHUD( hud );
	}

	if ( net_clientLagOMeter.GetBool() && lagoMaterial && gameLocal.isClient ) {
		renderSystem->SetColor4( 1.0f, 1.0f, 1.0f, 1.0f );
		renderSystem->DrawStretchPic( 10.0f, 380.0f, 64.0f, 64.0f, 0.0f, 0.0f, 1.0f, 1.0f, lagoMaterial );
	}
}