def breakfast_room(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [0.195303, 2.751188, 7.619322], 'center': [0.139881, 2.681201, 6.623315], 'up': [0,1,0], 'vfov': 39.384486 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'breakfast_room/breakfast_room.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def bedroom(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [22.634083, -19.868534, 24.155586], 'center': [22.027370, -19.116102, 23.899178], 'up': [0,0,1], 'vfov': 57.978600 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'bedroom/iscv2.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def vokselia_spawn(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [1.525444, 0.983225, 0.731648], 'center': [0.780862, 0.377208, 0.451751], 'up': [0,1,0], 'vfov': 49.857803 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'vokselia_spawn/vokselia_spawn.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def fireplace_room(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [5.101118, 1.083746, -2.756308], 'center': [4.167568, 1.078925, -2.397892], 'up': [0,1,0], 'vfov': 43.001194 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'fireplace_room/fireplace_room.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def cornell_box_sphere(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [0,1,5], 'center': [0,1,0], 'up': [0,1,0], 'vfov': 30 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'cornell_box/CornellBox-Sphere.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def cube(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [2, 2, 2], 'center': [0, 0, 0], 'up': [0,1,0], 'vfov': 30 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'cube/cube.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def powerplant(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [-200000, 200000, 200000], 'center': [0, 0, 0], 'up': [0,1,0], 'vfov': 30 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'powerplant/powerplant.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def conference(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [926.391602, 329.094299, 141.714554], 'center': [925.628784, 328.858490, 141.112488], 'up': [0,1,0], 'vfov': 50.717898 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'conference/conference.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def cloud(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [22.288721, 32.486145, 85.542023], 'center': [22.218456, 32.084743, 84.628822], 'up': [0,1,0], 'vfov': 53.023230 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'cloud/altostratus00.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def bunny(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [-0.191925, 2.961061, 4.171464], 'center': [-0.185709, 2.478091, 3.295850], 'up': [0,1,0], 'vfov': 28.841546 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'bunny/bunny.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def buddha(scene_path): lm.asset('camera_main', 'camera::pinhole', { 'position': [0.027255, 0.941126, -2.217943], 'center': [0.001645, 0.631268, -1.267505], 'up': [0,1,0], 'vfov': 19.297509 }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(scene_path, 'buddha/buddha.obj') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') })
def scene_setup(): lm.reset() lm.asset( 'mesh_sphere', 'mesh::raw', { 'ps': vs.flatten().tolist(), 'ns': ns.flatten().tolist(), 'ts': ts.flatten().tolist(), 'fs': { 'p': fs.flatten().tolist(), 't': fs.flatten().tolist(), 'n': fs.flatten().tolist() } }) lm.asset('camera_main', 'camera::pinhole', { 'position': [0, 0, 50], 'center': [0, 0, 0], 'up': [0, 1, 0], 'vfov': 30 }) lm.asset('material_white', 'material::diffuse', {'Kd': [1, 1, 1]}) lm.primitive(lm.identity(), {'camera': lm.asset('camera_main')})
# Pinhole camera lm.asset( 'camera1', 'camera::pinhole', { 'position': [5.101118, 1.083746, -2.756308], 'center': [4.167568, 1.078925, -2.397892], 'up': [0, 1, 0], 'vfov': 43.001194 }) # OBJ model lm.asset('obj1', 'model::wavefrontobj', { 'path': os.path.join(ft.env.scene_path, 'fireplace_room/fireplace_room.obj') }) # Camera lm.primitive(lm.identity(), {'camera': lm.asset('camera1')}) # Create primitives from model asset lm.primitive(lm.identity(), {'model': lm.asset('obj1')}) # - lm.build('accel::sahbvh', {}) lm.render('renderer::ao', {'output': lm.asset('film1'), 'spp': 10}) img = np.copy(lm.buffer(lm.asset('film1'))) f = plt.figure(figsize=(15, 15)) ax = f.add_subplot(111) ax.imshow(np.clip(np.power(img, 1 / 2.2), 0, 1), origin='lower') plt.show()
# Scene lm.asset( 'camera_main', 'camera::pinhole', { 'position': [5.101118, 1.083746, -2.756308], 'center': [4.167568, 1.078925, -2.397892], 'up': [0, 1, 0], 'vfov': 43.001194 }) lm.asset( 'model_obj', 'model::wavefrontobj', { 'path': os.path.join(ft.env.scene_path, 'fireplace_room/fireplace_room.obj'), 'base_material': lm.asset('mat_vis_normal') }) lm.primitive(lm.identity(), {'camera': lm.asset('camera_main')}) lm.primitive(lm.identity(), {'model': lm.asset('model_obj')}) # - lm.build('accel::sahbvh', {}) # + # Render lm.asset('film_output', 'film::bitmap', {'w': 640, 'h': 360}) lm.render('renderer::raycast', {'output': lm.asset('film_output')}) img = np.copy(lm.buffer(lm.asset('film_output'))) # Visualize f = plt.figure(figsize=(15, 15)) ax = f.add_subplot(111) ax.imshow(np.clip(np.power(img, 1 / 2.2), 0, 1), origin='lower')
}) lm.asset('camera_main', 'camera::pinhole', { 'position': [5.101118, 1.083746, -2.756308], 'center': [4.167568, 1.078925, -2.397892], 'up': [0,1,0], 'vfov': 43.001194 }) lm.asset('obj_base_mat', 'material::diffuse', { 'Kd': [.8,.2,.2] }) lm.asset('model_obj', 'model::wavefrontobj', { 'path': os.path.join(ft.env.scene_path, 'fireplace_room/fireplace_room.obj'), 'base_material': lm.asset('obj_base_mat') }) lm.primitive(lm.identity(), { 'camera': lm.asset('camera_main') }) lm.primitive(lm.identity(), { 'model': lm.asset('model_obj') }) lm.build('accel::sahbvh', {}) lm.asset('film_output', 'film::bitmap', {'w': 1920, 'h': 1080}) lm.render('renderer::raycast', { 'output': lm.asset('film_output') }) img = lm.buffer(lm.asset('film_output')) f = plt.figure(figsize=(10,10)) ax = f.add_subplot(111) ax.imshow(np.clip(np.power(img,1/2.2),0,1), origin='lower')
# ### Missing reference lm.asset( 'mesh1', 'mesh::raw', { 'ps': [-1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1], 'ns': [0, 0, 1], 'ts': [0, 0, 1, 0, 1, 1, 0, 1], 'fs': { 'p': [0, 1, 2, 0, 2, 3], 'n': [0, 0, 0, 0, 0, 0], 't': [0, 1, 2, 0, 2, 3] } }) # material1 is undefined lm.primitive(lm.identity(), { 'mesh': lm.asset('mesh1'), 'material': lm.asset('material1') }) # Define a missing asset lm.asset('material1', 'material::diffuse', {'Kd': [1, 1, 1]}) # 'material1' is not a valid locator use lm.asset() lm.primitive(lm.identity(), { 'mesh': lm.asset('mesh1'), 'material': 'material1' }) # This is correct lm.primitive(lm.identity(), {