import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable import lmfunctest as ft import lmscene import lightmetrica as lm os.getpid() # %load_ext lightmetrica_jupyter lm.init('user::default', {}) lm.parallel.init('parallel::openmp', {'numThreads': -1}) lm.log.init('logger::jupyter', {}) lm.info() scenes = lmscene.scenes_small() rmse_series = pd.Series(index=scenes) for scene in scenes: print("Testing [scene='{}']".format(scene)) lm.reset() lm.asset('film_output', 'film::bitmap', {'w': 1920, 'h': 1080}) # Load scene and render lmscene.load(ft.env.scene_path, scene) lm.build('accel::sahbvh', {}) lm.render('renderer::raycast', {'output': lm.asset('film_output')}) img_orig = np.copy(lm.buffer(lm.asset('film_output')))
accel = lm.load_accel('accel', accel_name) scene.set_accel(accel.loc()) scene.build() film = lm.load_film('film_output', 'bitmap', w=1920, h=1080) renderer = lm.load_renderer('renderer', 'raycast', scene=scene, output=film) renderer.render() return np.copy(film.buffer()) # + {"code_folding": []} # Accels and scenes accel_names = ['nanort', 'embree', 'embreeinstanced'] scene_names = lmscene.scenes_small() # + def rmse(img1, img2): return np.sqrt(np.mean((img1 - img2)**2)) def rmse_pixelwised(img1, img2): return np.sqrt(np.sum((img1 - img2)**2, axis=2) / 3) # - # Execute rendering for each scene and accel rmse_df = pd.DataFrame(columns=accel_names, index=scene_names)