| 1404 | } |
| 1405 | |
| 1406 | void 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 | |
| 1435 | void Tr2PostProcessRenderer::RenderTaa( const Tr2TextureAL& dest, const Tr2TextureAL& velocity, const Tr2TextureAL& opaqueColor, Tr2GpuResourcePool& gpuResourcePool, Tr2RenderContext& renderContext, Tr2PPTaaEffect* taa, Tr2PPDynamicExposureEffect* dynamicExposure ) |
| 1436 | { |
no test coverage detected