예제 #1
0
    def __setup_scene(self, depsgraph):
        scene = depsgraph.scene
        options = scene.tina_render
        self.scene = tina.PTScene((self.size_x, self.size_y),
                                  smoothing=options.smoothing,
                                  texturing=options.texturing)
        self.scene.lighting = tina.Lighting()

        for object in depsgraph.ids:
            if isinstance(object, bpy.types.Object):
                if object.type == 'MESH':
                    self.__setup_mesh_object(object, depsgraph)

        @ti.materialize_callback
        def init_scene():
            for world, verts, norms, coors, mtlid in self.object_to_mesh.values(
            ):
                self.scene.add_mesh(world, verts, norms, coors, mtlid)
예제 #2
0
import taichi as ti
import numpy as np
import tina

ti.init(ti.gpu)

dens = np.load('assets/smoke.npy')[::1, ::1, ::1]
scene = tina.PTScene()
scene.engine.skybox = tina.Atomsphere()
volume = tina.VolumeScale(tina.SimpleVolume(N=dens.shape[0]), scale=5)
scene.add_object(tina.MeshModel('assets/monkey.obj'))
g = tina.Param(float, initial=0.76)
scene.add_object(volume, tina.HenyeyGreenstein(g=g))
#scene.add_object(tina.MeshTransform(tina.MeshModel('assets/plane.obj'),
#    tina.translate([0, 0, 4]) @ tina.eularXYZ([ti.pi / 2, 0, 0])),
#    tina.Emission() * 4)

gui = ti.GUI('volume', scene.res)
g.make_slider(gui, 'g', -1, 1, 0.01)

volume.set_volume_density(dens)
scene.update()
while gui.running:
    scene.input(gui)
    scene.render()  #nsteps=32)
    gui.set_image(scene.img)
    gui.show()
예제 #3
0
import taichi as ti
import numpy as np
import tina

ti.init(ti.gpu)

scene = tina.PTScene(smoothing=True, texturing=True)
#scene.lighting.skybox = tina.Skybox('assets/skybox.jpg', cubic=True)
model = tina.MeshModel('assets/bunny.obj')
#material = tina.PBR(roughness=0.0, metallic=0.0)
material = tina.PBR(roughness=0.2, metallic=0.8)
scene.add_object(model, material)
denoise = tina.Denoise(scene.res)

if isinstance(scene, tina.PTScene):
    scene.update()

gui = ti.GUI('noise', scene.res)

while gui.running:
    scene.input(gui)
    if isinstance(scene, tina.PTScene):
        scene.render(nsteps=5)
    else:
        scene.render()
    #gui.set_image(scene.img)
    denoise.src.from_numpy(scene.img)
    denoise.nlm(radius=2, noiseness=0.9)
    gui.set_image(denoise.dst)
    gui.show()
예제 #4
0
import taichi as ti
import numpy as np
import tina

ti.init(ti.cpu)

scene = tina.PTScene(smoothing=True)
scene.engine.skybox = tina.PlainSkybox()

scene.add_object(tina.MeshModel('assets/monkey.obj'), tina.Lambert())

gui = ti.GUI('fpe', scene.res)

scene.update()
while gui.running:
    if scene.input(gui):
        scene.clear()
    scene.render()
    gui.set_image(scene.img)
    gui.show()