@@ -123,6 +123,43 @@ def test_sample_ray(variant_scalar_rgb, direction, origin):
123123 ray = sensor .sample_ray_differential (1. , 1. , sample2 , sample1 , True )
124124 assert ek .allclose (ray [0 ].o , origin )
125125 assert ek .allclose (ray [0 ].d , ek .normalize (direction ))
126- assert ray [0 ].has_differentials
127- assert ek .allclose (ray [0 ].d_x , 0. )
128- assert ek .allclose (ray [0 ].d_y , 0. )
126+ assert not ray [0 ].has_differentials
127+
128+
129+ @pytest .mark .parametrize ("radiance" , [10 ** x for x in range (- 3 , 4 )])
130+ def test_render (variant_scalar_rgb , radiance ):
131+ # Test render results with a simple scene
132+ from mitsuba .core .xml import load_string
133+ import numpy as np
134+
135+ scene_xml = """
136+ <scene version="2.0.0">
137+ <default name="radiance" value="1.0"/>
138+ <default name="spp" value="1"/>
139+
140+ <integrator type="path"/>
141+
142+ <sensor type="radiancemeter">
143+ <film type="hdrfilm">
144+ <integer name="width" value="1"/>
145+ <integer name="height" value="1"/>
146+ <string name="pixel_format" value="rgb"/>
147+ <rfilter type="box"/>
148+ </film>
149+
150+ <sampler type="independent">
151+ <integer name="sample_count" value="$spp"/>
152+ </sampler>
153+ </sensor>
154+
155+ <emitter type="constant">
156+ <spectrum name="radiance" value="$radiance"/>
157+ </emitter>
158+ </scene>
159+ """
160+
161+ scene = load_string (scene_xml , spp = 1 , radiance = radiance )
162+ sensor = scene .sensors ()[0 ]
163+ scene .integrator ().render (scene , sensor )
164+ img = sensor .film ().bitmap ()
165+ assert np .allclose (np .array (img ), radiance )
0 commit comments