コード例 #1
0
ファイル: conftest.py プロジェクト: wsrinin/fresnel
def device(request):
    mode = request.param[0]
    limit = request.param[1]

    dev = fresnel.Device(mode=mode, n=limit)

    return dev
コード例 #2
0
ファイル: conftest.py プロジェクト: jennyfothergill/fresnel
def device(request):
    """Create a Device object for use in the tests."""
    mode = request.param[0]
    limit = request.param[1]

    dev = fresnel.Device(mode=mode, n=limit)

    return dev
コード例 #3
0
ファイル: Scene.py プロジェクト: glotzerlab/plato
 def __init__(self, *args, tracer_kwargs={}, **kwargs):
     super(Scene, self).__init__(*args, **kwargs)
     self._device = fresnel.Device()
     self._fresnel_scene = fresnel.Scene(device=self._device)
     default_size = self.size_pixels.astype(np.uint32)
     self._preview_tracer = fresnel.tracer.Preview(
         device=self._device, w=default_size[0], h=default_size[1])
     self._path_tracer = fresnel.tracer.Path(
         device=self._device, w=default_size[0], h=default_size[1])
     self._geometries = []
     self._output = None
コード例 #4
0
def renderMeshCloud(    mesh=None, mesh_outline_width=None, meshflat=False,  # mesh settings
                        cloud=None, cloudR=0.006, cloudC=None,  # pc settings
                        camPos=None, camLookat=None, camUp=np.array([0,0,1]), camHeight=1.,  # camera settings
                        samples=8, axes=False, resolution=(1024,1024),  # render settings
                        **kwargs):
    device = fresnel.Device()

    scene = fresnel.Scene(device)
    if mesh is not None:
        mesh = fresnel.geometry.Mesh(scene,vertices=mesh['vert'][mesh['face']].reshape(-1,3) ,N=1)
        mesh.material = fresnel.material.Material(color=fresnel.color.linear([0.7,0.7,0.7]), 
                                                    roughness=0.3,
                                                    specular=1.,
                                                    spec_trans=0.)
        if mesh_outline_width is not None:
            mesh.outline_width = mesh_outline_width
    if cloud is not None:
        cloud = fresnel.geometry.Sphere(scene, position = cloud, radius=cloudR)
        solid = .7 if mesh is not None else 0.
        cloud.material = fresnel.material.Material(solid=solid, \
                                                    color=fresnel.color.linear([1,0.0,0]),\
                                                    roughness=1.0,
                                                    specular=0.0)
        if cloudC is not None:
            #cloudC = vis.rescale(cloudC, cloudC)
            cloud.material.primitive_color_mix = 1.0
            cloud.color[:] = fresnel.color.linear(plt.cm.plasma(cloudC)[:,:3])
    if axes == True:
       addAxes(scene)
    if camPos is None or camLookat is None:
        scene.camera = fresnel.camera.fit(scene,margin=0)
    else:
        scene.camera = fresnel.camera.orthographic(camPos, camLookat, camUp, camHeight)
    scene.lights = fresnel.light.cloudy()
    #scene.lights = fresnel.light.rembrandt()
    #scene.lights = fresnel.light.lightbox()
    #scene.lights = fresnel.light.loop()
    scene.lights = fresnel.light.butterfly()
    #scene.lights[0].theta = 3

    tracer = fresnel.tracer.Path(device=device, w=resolution[0], h=resolution[1])
    tracer.sample(scene, samples=samples, light_samples=8)
    #tracer.resize(w=450, h=450)
    #tracer.aa_level = 3
    image = tracer.render(scene)[:]
    return image
コード例 #5
0
ファイル: fresnelvis.py プロジェクト: QhelDIV/xgutils
    def setup_scene(self, camera_kwargs={}, lights="rembrandt"):
        device = fresnel.Device()
        scene = fresnel.Scene(device)

        self.camera_opt = camera_opt = copy.deepcopy(dflt_camera)
        camera_opt.update(camera_kwargs)
        self.camera_kwargs = camera_opt

        if camera_opt["fit_camera"] == True:
            print("Camera is not setup, now auto-fit camera")
            scene.camera = fresnel.camera.fit(scene, margin=0)
        else:
            camPos = camera_opt["camPos"]
            camLookat = camera_opt["camLookat"]
            camUp = camera_opt["camUp"]
            camHeight = camera_opt["camHeight"]
            scene.camera = fresnel.camera.orthographic(camPos, camLookat,
                                                       camUp, camHeight)
        # setup lightings
        if "lights" in camera_kwargs:
            lights = camera_kwargs["lights"]
        if type(lights) is not str:
            scene.lights = camera_kwargs["lights"]
        elif lights == "cloudy":
            scene.lights = fresnel.light.cloudy()
        elif lights == "rembrandt":
            scene.lights = fresnel.light.rembrandt()
        elif lights == "lightbox":
            scene.lights = fresnel.light.lightbox()
        elif lights == "loop":
            scene.lights = fresnel.light.loop()
        elif lights == "butterfly":
            scene.lights = fresnel.light.butterfly()
        elif lights == "up":
            scene.lights = get_world_lights([np.array([0, 1, 0])],
                                            colors=[np.array([1, 1, 1])],
                                            thetas=[1.],
                                            camera_pos=camPos)
        # addAxes(scene)
        # addBBox(scene)
        self.scene, self.device = scene, device
import gsd
import gsd.fl
import gsd.hoomd
import PIL
import os
import io
import math
import sys
import itertools
import csv
import matplotlib.pyplot as plt
import freud
import argparse
import random

device = fresnel.Device(mode='cpu')
path_tracer = fresnel.tracer.Path(device, 1920, 1080)

blue = fresnel.color.linear([0.25, 0.5, 1]) * 0.9
orange = fresnel.color.linear([1.0, 0.714, 0.169]) * 0.9


def render_sphere_frame(frame, height=None):

    if height is None:
        if hasattr(frame, 'configuration'):
            Ly = frame.configuration.box[1]
            height = Ly * math.sqrt(3)
        else:
            Ly = frame.box.Ly
            height = Ly * math.sqrt(3)
コード例 #7
0
ファイル: cuboid.py プロジェクト: wsrinin/fresnel
import fresnel, numpy, math, PIL

data = numpy.load('cuboids.npz')

scene = fresnel.Scene(fresnel.Device(mode='cpu'))
scene.lights = fresnel.light.lightbox()
W, H, D = data['width']
poly_info = fresnel.util.convex_polyhedron_from_vertices([[-W, -H, -D],
                                                          [-W, -H, D],
                                                          [-W, H, -D],
                                                          [-W, H, D],
                                                          [W, -H, -D],
                                                          [W, -H,
                                                           D], [W, H, -D],
                                                          [W, H, D]])

geometry = fresnel.geometry.ConvexPolyhedron(scene,
                                             poly_info,
                                             position=data['position'],
                                             orientation=data['orientation'],
                                             outline_width=0.015)
geometry.material = fresnel.material.Material(color=fresnel.color.linear(
    [0.1, 0.1, 0.6]),
                                              roughness=0.1,
                                              specular=1)
geometry.outline_material = fresnel.material.Material(color=(0.95, 0.93, 0.88),
                                                      roughness=0.1,
                                                      metal=1.0)

scene.camera = fresnel.camera.fit(scene, view='front')
out = fresnel.pathtrace(scene, samples=64, light_samples=32, w=580, h=580)
コード例 #8
0
def test_cpu():
    """Test the CPU device."""
    if 'cpu' in fresnel.Device.available_modes:
        fresnel.Device(mode='cpu')
コード例 #9
0
def test_gpu_limit():
    """Test the GPU n argument."""
    if 'gpu' in fresnel.Device.available_modes:
        fresnel.Device(mode='gpu', n=1)
コード例 #10
0
def test_gpu():
    """Test the GPU device."""
    if 'gpu' in fresnel.Device.available_modes:
        fresnel.Device(mode='gpu')
コード例 #11
0
def test_cpu_limit():
    """Test the cpu n argument."""
    if 'cpu' in fresnel.Device.available_modes:
        fresnel.Device(mode='cpu', n=2)
コード例 #12
0
def test_cpu_limit():
    if 'cpu' in fresnel.Device.available_modes:
        dev = fresnel.Device(mode='cpu', n=2)
コード例 #13
0
def test_cpu():
    if 'cpu' in fresnel.Device.available_modes:
        dev = fresnel.Device(mode='cpu')