File tree Expand file tree Collapse file tree 2 files changed +5
-15
lines changed
src/appleseed/renderer/modeling/light Expand file tree Collapse file tree 2 files changed +5
-15
lines changed Original file line number Diff line number Diff line change 1010 <parameter name =" tile_ordering" value =" spiral" />
1111 </parameters >
1212 <parameters name =" ui" >
13- <parameters name =" file_dialog" >
14- <parameters name =" frames" >
15- <parameter name =" last_directory" value =" D:\appleseed-scenes" />
16- <parameter name =" selected_filter" value =" JPEG Files (*.jpg *.jpe *.jpeg *.jif *.jfif *.jfi)" />
17- </parameters >
18- <parameters name =" light_paths" >
19- <parameter name =" selected_filter" value =" " />
20- </parameters >
21- <parameters name =" projects" >
22- <parameter name =" last_directory" value =" D:\appleseed\sandbox\tests\test scenes\light importance multipliers" />
23- <parameter name =" selected_filter" value =" Project Files (*.appleseed *.appleseedz)" />
24- </parameters >
25- </parameters >
2613 <parameters name =" render_region" >
2714 <parameter name =" triggers_rendering" value =" true" />
2815 </parameters >
Original file line number Diff line number Diff line change @@ -146,6 +146,9 @@ bool SunLight::on_frame_begin(
146146 m_values.m_size_multiplier = 1 .0f ;
147147 }
148148
149+ // Keep sun's irradiance constant for different sizes and distances.
150+ m_values.m_radiance_multiplier = 1 .0f / m_values.m_size_multiplier * m_values.m_distance / 149 .6f ;
151+
149152 // Compute the Sun's solid angle.
150153 // Reference: https://en.wikipedia.org/wiki/Solid_angle#Sun_and_Moon
151154 m_sun_solid_angle = TwoPi<float >() * (1 .0f - std::cos (std::atan (SunRadius * m_values.m_size_multiplier / m_values.m_distance )));
@@ -566,7 +569,7 @@ void SunLight::sample_sun_surface(
566569
567570 outgoing = normalize (target_point - position);
568571 Vector2d test = static_cast <double >(SunRadius * m_values.m_size_multiplier ) * p;
569- float squared_distance_to_center = test[0 ] * test[0 ] + test[1 ] * test[1 ];
572+ double squared_distance_to_center = test[0 ] * test[0 ] + test[1 ] * test[1 ];
570573
571574
572575 RegularSpectrum31f radiance;
@@ -575,7 +578,7 @@ void SunLight::sample_sun_surface(
575578 m_values.m_turbidity ,
576579 m_values.m_radiance_multiplier ,
577580 radiance,
578- squared_distance_to_center);
581+ static_cast < float >( squared_distance_to_center) );
579582
580583 value.set (radiance, g_std_lighting_conditions, Spectrum::Illuminance);
581584
You can’t perform that action at this time.
0 commit comments