void tpDynamicToneMappingManager::SetMethode(tpDynamicToneMappingManager::TypeMethode m) { m_methode = m; UpdateFilter(); ComputeLuminance(); }
void tpDynamicToneMappingManager::SetRayon(int v) { m_rayon = v; UpdateFilter(); ComputeLuminance(); }
void tpDynamicToneMappingManager::ResetModification(bool recompute) { m_image.copy(m_imageCache); if(recompute) { ComputeLuminance(); } }
void tpDynamicToneMappingManager::SetPixel(int x, int y) { m_x = x; m_y = y; // On fait attentions aux valeurs m_x = std::max(0,std::min((int)m_image.getHeight()-1, m_x)); m_y = std::max(0,std::min((int)m_image.getWidth()-1, m_y)); ComputeLuminance(); }
void tpDynamicToneMappingManager::BlurImage(int taille) { ResetModification(false); tpFilter g = tpMath::GaussianKernel2D(taille); tpFilterResultDouble res; tpImageFilter::ApplyFilter(m_image, res, g); m_image.copy(res); ComputeLuminance(); }
void tpDynamicToneMappingManager::SetImage(const tpImageLuminanceHDR& I) { m_image.copy(I); tpImageConvert::Calibration(m_image); m_imageCache.copy(m_image); // On met a jour les coordonnee de pixels m_x = std::max(0,std::min((int)m_image.getHeight()-1, m_x)); m_y = std::max(0,std::min((int)m_image.getWidth()-1, m_y)); m_laImage = tpHDROperations::GetMean(m_image); ComputeLuminance(); }
void ColorSetting::Update() { float multiplier = 1.0f; if(hdr) { multiplier = intensity.Value(); if(units != ColorUnit::None) { float clrLum = ComputeLuminance(val); if(clrLum > 0.00001f) multiplier *= 1.0f / clrLum; } } Float3 newVal = val * multiplier; changed = oldVal != newVal; oldVal = newVal; }
/** * Returns a desaturated color, with 0 meaning no desaturation and 1 == full desaturation * * @param Desaturation Desaturation factor in range [0..1] * @return Desaturated color */ FLinearColor FLinearColor::Desaturate( float Desaturation ) const { float Lum = ComputeLuminance(); return FMath::Lerp( *this, FLinearColor( Lum, Lum, Lum, 0 ), Desaturation ); }