def create_mpm_sand_block(fn): particles = tc_core.RenderParticles() assert particles.read(fn) downsample = grid_downsample tex = Texture.from_render_particles((255 / downsample, 255 / downsample, 255 / downsample), particles) * 5 # tex = Texture('sphere', center=(0.5, 0.5, 0.5), radius=0.5) with tc.transform_scope(scale=2): return tc.create_volumetric_block(tex, res=(128, 128, 128))
def create_mpm_snow_block(fn): particles = tc_core.RenderParticles() assert particles.read(fn) downsample = grid_downsample tex = Texture.from_render_particles( (511 / downsample, 127 / downsample, 255 / downsample), particles) * 5 # tex = Texture('sphere', center=(0.5, 0.5, 0.5), radius=0.5) with tc.transform_scope(translate=(0, -0.75, 0), scale=(2, 0.5, 1)): return tc.create_volumetric_block(tex, res=(256, 256, 256))
def create_mpm_snow_block(fn): particles = tc_core.RenderParticles() assert particles.read(fn) tex = Texture.from_render_particles((grid_x, grid_y, grid_z), particles) * 5 mesh_transform = tc_core.Matrix4(1.0).scale_s(0.3).translate(Vector(0.5, 0.5, 0.5)) transform = tc_core.Matrix4(1.0).scale_s(2).scale(Vector(2.0, 0.5, 1.0)).translate(Vector(-2, -0.99, -1)) vol = VolumeMaterial('sdf_voxel', scattering=5, absorption=0, tex=tex, resolution=(grid_x, grid_y, grid_z), transform_ptr=transform.get_ptr_string()) material = SurfaceMaterial('plain_interface') material.set_internal_material(vol) return Mesh('cube', material=material, transform=transform * mesh_transform)
def view(self, frame, camera): particles = tc_core.RenderParticles() ret = particles.read(self.input_directory + 'particles%05d.bin' % frame) if not ret: print 'read file failed' return False image_buffer = tc_core.Array2DVector3(self.video_manager.width, self.video_manager.height, Vector(0, 0, 0.0)) self.particle_renderer.set_camera(camera) self.particle_renderer.render(image_buffer, particles) img = image_buffer_to_ndarray(image_buffer) #img = LDRDisplay(exposure=1, adaptive_exposure=False).process(img) show_image('Vis', img) self.video_manager.write_frame(img) return True