Commit bf743236 authored by MURRAY David's avatar MURRAY David

now log option + test scenes

parent 9eea57b2
Pipeline #107121 skipped with stage
......@@ -26,3 +26,5 @@ apps/OPTIX_RENDERER_SPECTRAL
tests/rng_benchs/build_optim/
/imgui.ini
/apps/malia/output/results
\ No newline at end of file
......@@ -4,8 +4,7 @@
uniform sampler2D display_buffer;
uniform sampler2D output_buffer;
uniform sampler2DArray alpha_buffer;
// uniform sampler2D rad_sqr_buffer;
uniform sampler2D alpha_buffer;
uniform sampler2D variance_buffer;
uniform vec2 viewport;
......@@ -146,7 +145,7 @@ main(void)
{
// vec4 alpha_tex = texture(alpha_buffer, screen_coord);
vec4 alpha_tex = texelFetch(alpha_buffer, ivec3(gl_FragCoord.xy, alpha_layer), 0);
vec4 alpha_tex = texelFetch(alpha_buffer, ivec2(gl_FragCoord.xy), 0);
if(alpha_tex.a >= 0)
{
ret_color = vec4(alpha_tex.rg, 0.0, 1.0);
......
This diff is collapsed.
......@@ -62,6 +62,10 @@ private:
void variancePopUp();
void saveConfig();
optix::float3 meanVariance();
void saveMeanVariance(std::string filename);
void useConfig(int nb);
enum VisuMode {
RADIANCE_ADJUSTED,
......@@ -89,6 +93,25 @@ private:
float* _time;
bool _save_all;
bool _log_picked;
float _prev_alpha;
int _samples_done;
struct Config
{
float start;
bool balancing;
bool reset;
bool clamp;
int sample = 128;
int passes = 32;
int tot = 4096;
Config(float s, bool b, bool r, bool c) { start = s; clamp = c; reset = r; balancing = b; }
Config(float s, bool b, bool r, bool c, int sp, int p) { start = s; clamp = c; reset = r; balancing = b; sample = sp; passes = p; }
Config(float s, bool b, bool r, bool c, int sp, int p, int t) { start = s; clamp = c; reset = r; balancing = b; sample = sp; passes = p; tot = t; }
};
std::vector<Config> _config_list;
int _config_done;
};
......@@ -77,8 +77,8 @@ rtBuffer<float4, 2> output_buffer;
rtDeclareVariable(float3, bad_color,, );
#endif
rtBuffer<Metrics, 3> metrics_buffer;
rtBuffer<float4, 3> alpha_buffer;
rtBuffer<Metrics, 2> metrics_buffer;
rtBuffer<float4, 2> alpha_buffer;
rtBuffer<float4, 2> variance_buffer;
rtBuffer<float4, 2> rad_sqr_buffer;
rtDeclareVariable(int, alpha_samples,, );
......@@ -127,16 +127,16 @@ RT_PROGRAM void pathtrace_camera()
if(use_balancing == 1)
{
for(int i =0; i <= max_path_length;++i)
// for(int i =0; i <= max_path_length;++i)
{
Metrics tmp;
metrics_buffer[make_uint3(launch_index, i)].is_bg = false;
metrics_buffer[launch_index].is_bg = false;
if(frame_number <= 1) //First frame, initialize alpha_0
{
alpha_buffer[make_uint3(launch_index, i)] = make_float4(0.f, 0.f, start_alpha, -1.f);
metrics_buffer[make_uint3(launch_index, i)].alpha_comp = make_float2(0.f);
metrics_buffer[make_uint3(launch_index, i)].prev_alpha = start_alpha;
metrics_buffer[make_uint3(launch_index, i)].nb_samples = 0;
alpha_buffer[launch_index] = make_float4(0.f, 0.f, start_alpha, -1.f);
metrics_buffer[launch_index].alpha_comp = make_float2(0.f);
metrics_buffer[launch_index].prev_alpha = start_alpha;
metrics_buffer[launch_index].nb_samples = 0;
}
// metrics_buffer[make_uint3(launch_index, i)] = tmp;
}
......@@ -200,11 +200,12 @@ RT_PROGRAM void pathtrace_camera()
float pcont = fmaxf(prd.attenuation);
if(rnd(prd.seed) >= pcont)
{
for(int i = 0; i <= max_path_length; ++i)
if(use_balancing == 1)
// for(int i = 0; i <= max_path_length; ++i)
{
uint3 index = make_uint3(launch_index, i);
metrics_buffer[index].alpha_comp_num = make_float3(0.f);
metrics_buffer[index].alpha_comp_den = make_float3(0.f);
// uint3 index = make_uint3(launch_index, i);
metrics_buffer[launch_index].alpha_comp_num = make_float3(0.f);
metrics_buffer[launch_index].alpha_comp_den = make_float3(0.f);
}
break;
}
......@@ -214,11 +215,12 @@ RT_PROGRAM void pathtrace_camera()
//WARNING recursivity bias
if(prd.depth >= max_path_length)
{
for(int i = 0; i <= max_path_length; ++i)
if(use_balancing == 1)
// for(int i = 0; i <= max_path_length; ++i)
{
uint3 index = make_uint3(launch_index, i);
metrics_buffer[index].alpha_comp_num = make_float3(0.f);
metrics_buffer[index].alpha_comp_den = make_float3(0.f);
// uint3 index = make_uint3(launch_index, i);
metrics_buffer[launch_index].alpha_comp_num = make_float3(0.f);
metrics_buffer[launch_index].alpha_comp_den = make_float3(0.f);
}
break;
}
......@@ -243,32 +245,32 @@ RT_PROGRAM void pathtrace_camera()
add_color(result, prd.result);
seed = prd.seed;
Metrics all_metrics = metrics_buffer[make_uint3(launch_index, 0)];
Metrics all_metrics = metrics_buffer[launch_index];
if(all_metrics.nb_samples < alpha_samples * alpha_passes && use_balancing == 1)
// if(frame_number < alpha_samples * alpha_passes)
{
int path_depth = 0;
if(!all_metrics.is_bg)
{
while(path_depth <= prd.depth && path_depth < max_path_length)
// while(path_depth <= prd.depth && path_depth < max_path_length)
{
all_metrics = metrics_buffer[make_uint3(launch_index, path_depth)];
all_metrics = metrics_buffer[launch_index];
int nb_samples = all_metrics.nb_samples + 1;
metrics_buffer[make_uint3(launch_index, path_depth)].nb_samples = nb_samples;
metrics_buffer[launch_index].nb_samples = nb_samples;
// float3 alpha_comp1 = all_metrics.alpha_comp_num;
float toRad1 = toRadiance(all_metrics.alpha_comp_num);//(alpha_comp1.x*0.265f + 0.67f*alpha_comp1.y + 0.065f*alpha_comp1.z);
// float3 alpha_comp2 = all_metrics.alpha_comp_den;
float toRad2 = toRadiance(all_metrics.alpha_comp_den);//(alpha_comp2.x*0.265f + 0.67f*alpha_comp2.y + 0.065f*alpha_comp2.z);
metrics_buffer[make_uint3(launch_index, path_depth)].alpha_comp += make_float2(toRad1, toRad2);
metrics_buffer[launch_index].alpha_comp += make_float2(toRad1, toRad2);
if((frame_number)%alpha_samples == 0)
{
float2 alpha_comp = metrics_buffer[make_uint3(launch_index, path_depth)].alpha_comp/(float)(alpha_samples);
float2 alpha_comp = metrics_buffer[launch_index].alpha_comp/(float)(alpha_samples);
if(reset_iteration == 1)
metrics_buffer[make_uint3(launch_index, path_depth)].alpha_comp = make_float2(0.f);
metrics_buffer[launch_index].alpha_comp = make_float2(0.f);
float alpha = all_metrics.prev_alpha;
if(alpha_comp.y == 0.f || alpha_comp.x == 0.f)
......@@ -276,10 +278,10 @@ RT_PROGRAM void pathtrace_camera()
// else if(isnan(alpha_comp.x))// / alpha_comp.y))
// alpha = -2.f;
else
alpha = clamp(alpha + 0.5f * alpha_comp.x / alpha_comp.y, 0.f + clamp_alpha * 0.025f, 1.f - clamp_alpha * 0.025f);
alpha = clamp(alpha + 0.5f * alpha_comp.x / alpha_comp.y, 0.f + clamp_alpha * 0.1f, 1.f - clamp_alpha * 0.1f);
// if(alpha == -2.f)
// alpha_buffer[make_uint3(launch_index, path_depth)] = make_float4(0.f, 0.f, start_alpha, -2.f);
// alpha_buffer[launch_index] = make_float4(0.f, 0.f, start_alpha, -2.f);
// else
{
float3 color = make_float3(1.f - alpha, alpha, alpha);
......@@ -290,12 +292,12 @@ RT_PROGRAM void pathtrace_camera()
color = lerp(yellow, green, 2.f*alpha - 1.f);
else
color = lerp(red, yellow, 2.f*alpha);
alpha_buffer[make_uint3(launch_index, path_depth)] = make_float4(color, 1.f);
alpha_buffer[launch_index] = make_float4(color, 1.f);
metrics_buffer[make_uint3(launch_index, path_depth)].prev_alpha = alpha;
metrics_buffer[launch_index].prev_alpha = alpha;
}
}
++path_depth;
// ++path_depth;
}
}
}
......@@ -473,13 +475,14 @@ RT_PROGRAM void miss()
if(use_balancing == 1)
{
if(current_prd.depth == 0)
metrics_buffer[make_uint3(launch_index, 0)].is_bg = true;
metrics_buffer[launch_index].is_bg = true;
for(int i = 0; i < current_prd.depth; ++i)
// for(int i = 0; i < current_prd.depth; ++i)
else
{
uint3 index = make_uint3(launch_index, i);
metrics_buffer[index].alpha_comp_num = make_float3(0.f);
metrics_buffer[index].alpha_comp_den = make_float3(0.f);
// uint3 index = make_uint3(launch_index, i);
metrics_buffer[launch_index].alpha_comp_num = make_float3(0.f);
metrics_buffer[launch_index].alpha_comp_den = make_float3(0.f);
}
}
......
<cameras>
<camera id="Camera" type="pinhole">
<position x="-277.99993896484375" y="273.0" z="800.0" />
<lookat x="-277.99993896484375" y="273.0" z="790.0" />
<up x="-2.2799733224976824e-14" y="1.0" z="-7.549790126404332e-08" />
<fovy value="39.14625251087677" />
<lens focal_length="0.045" />
<sensor spp="1000">
<resolution height="500" width="500" />
<size height="18.0" width="32.0" />
<distance value="0.1590" />
</sensor>
</camera>
</cameras>
<scene>
<lights>
<area_light>
<emittance name="Area" type="diffuse">
<radiance value="100.0" />
<rgb_color b="1.0" g="1.0" r="1.0" />
<spectrum value="0:1.0,1000:1.0" />
</emittance>
<transformations>
<transform>
<scale x="99.99999237060547" y="99.99999237060547" z="1.0" />
<translation x="-278.0" y="547.802978515625" z="-279.49969482421875" />
<rotation>
<angle value="89.99998884409983" />
<axis x="-1.0000001192092896" y="0.0" z="0.0" />
</rotation>
</transform>
</transformations>
</area_light>
</lights>
<materials>
<material name="default_lambert" type="Lambert">
<rgb_color b="0.8" g="0.8" r="0.8" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_assets/default_lambert.spd" />
</material>
<material name="cbox" type="Lambert">
<rgb_color b="0.4000000059604645" g="0.4000000059604645" r="0.4000000059604645" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_assets/cbox.spd" />
</material>
<material name="cbox_green" type="Lambert">
<rgb_color b="0.0" g="0.5" r="0.0" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_assets/cbox_green.spd" />
</material>
<material name="cbox_red" type="Lambert">
<rgb_color b="0.0" g="0.0" r="0.5" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_assets/cbox_red.spd" />
</material>
<material alpha_g="0.05000000074505806" name="glossy_gold" type="ggx">
<fresnel>
<eta>
<rgb_color b="1.52729918371" g="2.78414080912" r="3.67774339501" />
</eta>
<kappa>
<rgb_color b="0.16543084396" g="1.91004239769" r="7.18843591721" />
</kappa>
</fresnel>
</material>
</materials>
<shapes>
<shape ref_material="cbox">
<mesh>
<obj file="./cornell_box_lucy_assets/cbox.obj" />
</mesh>
</shape>
<shape ref_material="cbox_green">
<mesh>
<obj file="./cornell_box_lucy_assets/cbox_green.obj" />
</mesh>
</shape>
<shape ref_material="cbox_red">
<mesh>
<obj file="./cornell_box_lucy_assets/cbox_red.obj" />
</mesh>
</shape>
<!-- <shape ref_material="default_lambert"> -->
<shape ref_material="glossy_gold">
<mesh>
<obj file="./cornell_box_lucy_assets/lucy.obj" />
</mesh>
</shape>
</shapes>
</scene>
<cameras>
<camera id="test" type="pinhole">
<position x="-277.99994" y="273" z="790.00061"/>
<lookat x="-277.99994" y="273" z="790"/>
<up x="-2.2799733e-14" y="1" z="-7.5497901e-08"/>
<fovy value="39.146252"/>
<sensor spp="100">
<resolution height="500" width="500"/>
<size height="16" width="32"/>
<distance value="0.159"/>
</sensor>
</camera>
</cameras>
<scene>
<lights>
<area_light>
<emittance name="Area" type="diffuse">
<radiance value="100.0" />
<rgb_color b="1.0" g="1.0" r="1.0" />
<spectrum value="0:1.0,1000:1.0" />
</emittance>
<transformations>
<transform>
<scale x="99.99999237060547" y="99.99999237060547" z="1.0" />
<translation x="-278.0" y="547.802978515625" z="-279.49969482421875" />
<rotation>
<angle value="89.99998884409983" />
<axis x="-1.0000001192092896" y="0.0" z="0.0" />
</rotation>
</transform>
</transformations>
</area_light>
</lights>
<materials>
<material name="default_lambert" type="Lambert">
<rgb_color b="0.8" g="0.8" r="0.8" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_all_box_assets/default_lambert.spd" />
</material>
<material name="cbox" type="Lambert">
<rgb_color b="0.4000000059604645" g="0.4000000059604645" r="0.4000000059604645" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_all_box_assets/cbox.spd" />
</material>
<material name="cbox_green" type="Lambert">
<rgb_color b="0.0" g="0.5" r="0.0" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_all_box_assets/cbox_green.spd" />
</material>
<material name="cbox_red" type="Lambert">
<rgb_color b="0.0" g="0.0" r="0.5" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_all_box_assets/cbox_red.spd" />
</material>
<material name="small_box" type="Lambert">
<rgb_color b="0.5" g="0.5" r="0.5" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_all_box_assets/small_box.spd" />
</material>
<material alpha_g="0.05000000074505806" name="glossy_gold" type="ggx">
<fresnel>
<eta>
<rgb_color b="1.52729918371" g="2.78414080912" r="3.67774339501" />
</eta>
<kappa>
<rgb_color b="0.16543084396" g="1.91004239769" r="7.18843591721" />
</kappa>
</fresnel>
</material>
</materials>
<shapes>
<shape ref_material="default_lambert">
<mesh>
<obj file="./cornell_box_lucy_all_box_assets/back.obj" />
</mesh>
</shape>
<shape ref_material="cbox">
<mesh>
<obj file="./cornell_box_lucy_all_box_assets/cbox.obj" />
</mesh>
</shape>
<shape ref_material="cbox_green">
<mesh>
<obj file="./cornell_box_lucy_all_box_assets/cbox_green.obj" />
</mesh>
</shape>
<shape ref_material="cbox_red">
<mesh>
<obj file="./cornell_box_lucy_all_box_assets/cbox_red.obj" />
</mesh>
</shape>
<shape ref_material="default_lambert">
<mesh>
<obj file="./cornell_box_lucy_all_box_assets/large_box.obj" />
</mesh>
</shape>
<shape ref_material="glossy_gold">
<mesh>
<obj file="./cornell_box_lucy_all_box_assets/lucy.obj" />
</mesh>
</shape>
<shape ref_material="default_lambert">
<mesh>
<obj file="./cornell_box_lucy_all_box_assets/small_box.obj" />
</mesh>
</shape>
</shapes>
</scene>
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy_all_box.blend'
# www.blender.org
o Light
v -213.000000 547.799988 -227.000015
v -213.000000 547.799988 -332.000000
v -343.000000 547.799988 -227.000000
v -343.000000 547.799988 -332.000000
vn 0.0000 -1.0000 0.0000
s off
f 3//1 2//1 1//1
f 3//1 4//1 2//1
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy_all_box.blend'
# www.blender.org
o back_Plane
v -567.341309 -33.903381 1108.027344
v 12.658600 -33.903381 1108.027344
v -567.341309 566.096619 1108.027344
v 12.658600 566.096619 1108.027344
vn 0.0000 0.0000 1.0000
s off
f 2//1 3//1 1//1
f 2//1 4//1 3//1
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy_all_box.blend'
# www.blender.org
o cbox
v -549.600220 0.000127 -559.550049
v -552.799988 0.000000 1118.050049
v -0.000253 0.000127 -559.550171
v 0.000000 0.000000 1118.049927
v 0.000000 548.799988 1118.049927
v -0.000253 548.800110 -559.550171
v -556.000244 548.800110 -559.550049
v -556.000000 548.799988 1118.050049
vn 0.0000 1.0000 0.0000
vn -0.0000 -1.0000 -0.0000
vn 0.0000 0.0000 1.0000
s off
f 1//1 4//1 3//1
f 7//2 5//2 8//2
f 6//3 1//3 3//3
f 1//1 2//1 4//1
f 7//2 6//2 5//2
f 6//3 7//3 1//3
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy_all_box.blend'
# www.blender.org
o cbox_green
v -0.000253 0.000127 -559.550171
v 0.000000 0.000000 1118.049927
v 0.000000 548.799988 1118.049927
v -0.000253 548.800110 -559.550171
vn -1.0000 0.0000 0.0000
s off
f 3//1 1//1 2//1
f 3//1 4//1 1//1
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy_all_box.blend'
# www.blender.org
o cbox_red
v -549.600220 0.000127 -559.550049
v -552.799988 0.000000 1118.050049
v -556.000244 548.800110 -559.550049
v -556.000000 548.799988 1118.050049
vn 0.9999 0.0117 0.0019
vn 1.0000 0.0058 -0.0000
s off
f 3//1 2//1 1//1
f 3//2 4//2 2//2
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy_all_box.blend'
# www.blender.org
o large_box
v -422.352661 -0.359955 -247.760956
v -422.352661 329.640045 -247.761017
v -471.239044 329.640015 -405.352661
v -471.239044 -0.359985 -405.352600
v -264.761017 -0.359955 -296.647339
v -264.761017 329.640045 -296.647400
v -313.647400 329.640015 -454.239044
v -313.647400 -0.359985 -454.238983
vn 0.2963 0.0000 0.9551
vn -0.0000 1.0000 0.0000
vn -0.2963 -0.0000 -0.9551
vn 0.0000 -1.0000 0.0000
vn -0.9551 0.0000 0.2963
vn 0.9551 0.0000 -0.2963
s off
f 6//1 1//1 5//1
f 7//2 2//2 6//2
f 8//3 3//3 7//3
f 5//4 4//4 8//4
f 2//5 4//5 1//5
f 7//6 5//6 8//6
f 6//1 2//1 1//1
f 7//2 3//2 2//2
f 8//3 4//3 3//3
f 5//4 1//4 4//4
f 2//5 3//5 4//5
f 7//6 6//6 5//6
This diff is collapsed.
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy_all_box.blend'
# www.blender.org
o small_box
v -129.536377 -0.489998 -66.353592
v -129.536377 164.510010 -66.353577
v -287.646423 164.510010 -113.536346
v -287.646423 -0.489998 -113.536362
v -82.353600 -0.489983 -224.463654
v -82.353600 164.510040 -224.463638
v -240.463654 164.510040 -271.646423
v -240.463654 -0.489983 -271.646423
vn 0.9582 0.0000 0.2860
vn -0.0000 1.0000 0.0000
vn -0.9582 0.0000 -0.2860
vn 0.0000 -1.0000 -0.0000
vn -0.2860 -0.0000 0.9582
vn 0.2860 0.0000 -0.9582
s off
f 6//1 1//1 5//1
f 7//2 2//2 6//2
f 8//3 3//3 7//3
f 5//4 4//4 8//4
f 2//5 4//5 1//5
f 7//6 5//6 8//6
f 6//1 2//1 1//1
f 7//2 3//2 2//2
f 8//3 4//3 3//3
f 5//4 1//4 4//4
f 2//5 3//5 4//5
f 7//6 6//6 5//6
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy.blend'
# www.blender.org
o cbox
v -549.600037 0.000042 -559.199951
v -552.799988 0.000000 0.000083
v -0.000084 0.000042 -559.200012
v 0.000000 0.000000 0.000000
v 0.000000 548.799988 0.000041
v -0.000084 548.800049 -559.199951
v -556.000061 548.800049 -559.199890
v -556.000000 548.799988 0.000125
vn 0.0000 1.0000 0.0000
vn -0.0000 -1.0000 0.0000
vn 0.0000 -0.0000 1.0000
s off
f 1//1 4//1 3//1
f 6//2 8//2 7//2
f 6//3 1//3 3//3
f 1//1 2//1 4//1
f 6//2 5//2 8//2
f 6//3 7//3 1//3
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy.blend'
# www.blender.org
o cbox_green
v -0.000084 0.000042 -559.200012
v 0.000000 0.000000 0.000000
v 0.000000 548.799988 0.000041
v -0.000084 548.800049 -559.199951
vn -1.0000 0.0000 0.0000
s off
f 3//1 1//1 2//1
f 3//1 4//1 1//1
# Blender v2.79 (sub 0) OBJ File: 'cornell_box_lucy.blend'
# www.blender.org
o cbox_red
v -549.600037 0.000042 -559.199951
v -552.799988 0.000000 0.000083
v -556.000061 548.800049 -559.199890
v -556.000000 548.799988 0.000125
vn 0.9999 0.0117 0.0057
vn 1.0000 0.0058 -0.0000
s off
f 3//1 2//1 1//1
f 3//2 4//2 2//2
This diff is collapsed.
<cameras>
<camera id="Camera" type="pinhole">
<position x="-277.99993896484375" y="273.0" z="800.0" />
<lookat x="-277.99993896484375" y="273.0" z="790.0" />
<up x="-2.2799733224976824e-14" y="1.0" z="-7.549790126404332e-08" />
<fovy value="39.14625251087677" />
<lens focal_length="0.045" />
<sensor spp="1000">
<resolution height="500" width="500" />
<size height="18.0" width="32.0" />
<distance value="0.1590" />
</sensor>
</camera>
</cameras>
<scene>
<lights>
<area_light>
<emittance name="Area" type="diffuse">
<radiance value="100.0" />
<rgb_color b="1.0" g="1.0" r="1.0" />
<spectrum value="0:1.0,1000:1.0" />
</emittance>
<transformations>
<transform>
<scale x="99.99999237060547" y="99.99999237060547" z="1.0" />
<translation x="-278.0" y="547.802978515625" z="-279.49969482421875" />
<rotation>
<angle value="89.99998884409983" />
<axis x="-1.0000001192092896" y="0.0" z="0.0" />
</rotation>
</transform>
</transformations>
</area_light>
</lights>
<materials>
<material name="default_lambert" type="Lambert">
<rgb_color b="0.8" g="0.8" r="0.8" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_small_box_assets/default_lambert.spd" />
</material>
<material name="cbox" type="Lambert">
<rgb_color b="0.4000000059604645" g="0.4000000059604645" r="0.4000000059604645" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_small_box_assets/cbox.spd" />
</material>
<material name="cbox_green" type="Lambert">
<rgb_color b="0.0" g="0.5" r="0.0" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_small_box_assets/cbox_green.spd" />
</material>
<material name="cbox_red" type="Lambert">
<rgb_color b="0.0" g="0.0" r="0.5" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_small_box_assets/cbox_red.spd" />
</material>
<emittance name="Light" type="diffuse">
<radiance value="100.0" />
<rgb_color b="1.0" g="1.0" r="1.0" />
<spectrum file="./cornell_box_lucy_small_box_assets/Light.spd" />
</emittance>
<material name="small_box" type="Lambert">
<rgb_color b="0.5" g="0.5" r="0.5" />
<albedo value="1.0" />
<spectrum file="./cornell_box_lucy_small_box_assets/small_box.spd" />
</material>
</materials>
<shapes>
<shape ref_material="cbox">
<mesh>
<obj file="./cornell_box_lucy_small_box_assets/cbox.obj" />
</mesh>
</shape>
<shape ref_material="cbox_green">
<mesh>
<obj file="./cornell_box_lucy_small_box_assets/cbox_green.obj" />
</mesh>
</shape>
<shape ref_material="cbox_red">
<mesh>
<obj file="./cornell_box_lucy_small_box_assets/cbox_red.obj" />
</mesh>
</shape>
<shape ref_material="Light">
<mesh>
<obj file="./cornell_box_lucy_small_box_assets/Light.obj" />
</mesh>
</shape>
<shape ref_material="default_lambert">
<mesh>
<obj file="./cornell_box_lucy_small_box_assets/lucy.obj" />