Ejemplo n.º 1
0
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')))
Ejemplo n.º 2
0
    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)