MCPcopy Create free account
hub / github.com/carbonengine/trinity / RenderFog

Method RenderFog

trinity/PostProcess/Tr2PostProcessRenderer.cpp:1406–1433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1404}
1405
1406void Tr2PostProcessRenderer::RenderFog( const Tr2TextureAL& dest, const Tr2TextureAL& source, Tr2GpuResourcePool& gpuResourcePool, Tr2RenderContext& renderContext, Tr2PPFogEffect* fog )
1407{
1408 GPU_REGION( renderContext, "Fog" );
1409 renderContext.m_esm.ApplyStandardStates( Tr2EffectStateManager::RM_FULLSCREEN );
1410
1411
1412 // render fog color
1413 auto rt1 = gpuResourcePool.GetTempTexture( "Fog Color", TextureSize2D( dest.GetDesc() ) * 0.5f, dest.GetFormat(), RENDER_TARGET );
1414 TEMP_PARAM( m_fogColorEffect, "BlitCurrent", dest );
1415 m_fogColorEffect->SetParameter( MEMOIZED_STRING( "Params" ), Vector4( fog->m_nebulaInfluence, fog->m_nebulaBlur, fog->m_originalBrightenOnly, fog->m_colorInfluence ) );
1416 m_fogColorEffect->SetParameter( MEMOIZED_STRING( "Color" ), Vector4( fog->m_color ) );
1417 DrawInto( rt1, Tr2LoadAction::DONT_CARE, m_fogColorEffect, renderContext );
1418
1419 // blur
1420 auto blurred = Blur( std::move( rt1 ), gpuResourcePool, renderContext, {} );
1421
1422 // final composite
1423 m_fogCompositeEffect->SetParameter( MEMOIZED_STRING( "FogParameters" ), Vector4( fog->m_totalAmount, fog->m_totalPower, fog->m_backgroundOcclusion, fog->m_intensity ) );
1424 m_fogCompositeEffect->SetParameter( MEMOIZED_STRING( "BrightnessAdjustment" ), Vector4( fog->m_brightnessThreshold0, fog->m_brightnessThreshold1, fog->m_brightnessAdjustmentAmount, 0.0f ) );
1425 m_fogCompositeEffect->SetParameter( MEMOIZED_STRING( "BlendFunction0" ), Vector4( fog->m_blendDistance0, fog->m_blendBias0, fog->m_blendAmount0, fog->m_blendPower0 ) );
1426 m_fogCompositeEffect->SetParameter( MEMOIZED_STRING( "BlendFunction1" ), Vector4( fog->m_blendDistance1, fog->m_blendBias1, fog->m_blendAmount1, fog->m_blendPower1 ) );
1427 m_fogCompositeEffect->SetParameter( MEMOIZED_STRING( "BlendFunction2" ), Vector4( fog->m_blendDistance2, fog->m_blendBias2, fog->m_blendAmount2, fog->m_blendPower2 ) );
1428 m_fogCompositeEffect->SetParameter( MEMOIZED_STRING( "AreaSize" ), Vector4( fog->m_areaSize, fog->m_areaScale.x ) );
1429 m_fogCompositeEffect->SetParameter( MEMOIZED_STRING( "AreaCenter" ), Vector4( fog->m_areaCenter, fog->m_areaScale.y ) );
1430 TEMP_PARAM( m_fogCompositeEffect, "BlitCurrent", blurred );
1431 TEMP_PARAM( m_fogCompositeEffect, "BlitOriginal", source );
1432 DrawInto( dest, Tr2LoadAction::DONT_CARE, m_fogCompositeEffect, renderContext );
1433}
1434
1435void Tr2PostProcessRenderer::RenderTaa( const Tr2TextureAL& dest, const Tr2TextureAL& velocity, const Tr2TextureAL& opaqueColor, Tr2GpuResourcePool& gpuResourcePool, Tr2RenderContext& renderContext, Tr2PPTaaEffect* taa, Tr2PPDynamicExposureEffect* dynamicExposure )
1436{

Callers 1

RenderVolumetricsMethod · 0.45

Calls 7

TextureSize2DClass · 0.85
DrawIntoFunction · 0.85
ApplyStandardStatesMethod · 0.80
GetTempTextureMethod · 0.80
Vector4Class · 0.50
GetFormatMethod · 0.45
SetParameterMethod · 0.45

Tested by

no test coverage detected