예제 #1
0
파일: renderer.py 프로젝트: awa5114/pyvista
    def enable_eye_dome_lighting(self):
        """Enable eye dome lighting (EDL)."""
        if hasattr(self, 'edl_pass'):
            return self
        # create the basic VTK render steps
        basic_passes = vtk.vtkRenderStepsPass()
        # blur the resulting image
        # The blur delegates rendering the unblured image to the basic_passes
        self.edl_pass = vtk.vtkEDLShading()
        self.edl_pass.SetDelegatePass(basic_passes)

        # tell the renderer to use our render pass pipeline
        self.glrenderer = vtk.vtkOpenGLRenderer.SafeDownCast(self)
        self.glrenderer.SetPass(self.edl_pass)
        return self.glrenderer
예제 #2
0
SetActiveView(None)

# create new layout object 'Layout #1'
layout1 = CreateLayout(name='Layout #1')
layout1.SplitHorizontal(0, 0.500000)
layout1.AssignView(1, renderView1)
layout1.AssignView(2, renderView2)

# ----------------------------------------------------------------
# restore active view
SetActiveView(renderView2)
## set Screen Space Ambien Occlusion on the current view
import vtk

ogl = vtk.vtkRenderStepsPass()
ssao = vtk.vtkSSAOPass()
sceneSize = 20.
ssao.SetRadius(0.1 * sceneSize)  # comparison radius
#ssao.SetBias(0.001 * sceneSize) # comparison bias
ssao.SetKernelSize(256)  # number of samples used
ssao.BlurOff()  # do not blur occlusion
ssao.SetDelegatePass(ogl)

v = GetRenderView()
renderer = v.GetRenderer()
renderer.SetPass(ssao)
Render()

#####################################################
# create a new 'PLY Reader'
예제 #3
0
def main():
    if not vtk_version_ok(9, 0, 20200909):
        print(
            'You need VTK version 9.0.20200909 or greater to run this program.'
        )
        return
    get_program_parameters()

    colors = vtk.vtkNamedColors()

    iren = vtk.vtkRenderWindowInteractor()
    renWin = vtk.vtkRenderWindow()
    renWin.SetMultiSamples(0)

    iren.SetRenderWindow(renWin)

    # Set up the renderers
    # One for the object and the other for the outline
    renderer = vtk.vtkRenderer()
    rendererOutline = vtk.vtkRenderer()
    rendererOutline.SetLayer(1)
    renWin.SetNumberOfLayers(2)
    renWin.AddRenderer(rendererOutline)
    renWin.AddRenderer(renderer)

    # Create an arrow.
    arrowSource = vtk.vtkArrowSource()
    # arrowSource.SetShaftRadius(1.0)
    # arrowSource.SetTipLength(1.0)
    arrowSource.Update()

    # Create mapper and actor for the main renderer
    coneMapperMain = vtk.vtkPolyDataMapper()
    coneMapperMain.SetInputConnection(arrowSource.GetOutputPort())

    coneActorMain = vtk.vtkActor()
    coneActorMain.SetMapper(coneMapperMain)
    coneActorMain.GetProperty().SetDiffuseColor(colors.GetColor3d("LimeGreen"))

    renderer.AddActor(coneActorMain)

    # Lets make the outline glow!
    # Create the render pass
    basicPasses = vtk.vtkRenderStepsPass()
    glowPass = vtk.vtkOutlineGlowPass()
    glowPass.SetDelegatePass(basicPasses)

    # Apply the render pass to the highlight renderer
    rendererOutline.SetPass(glowPass)

    # Create mapper and actor for the outline
    coneMapperOutline = vtk.vtkPolyDataMapper()
    coneMapperOutline.SetInputConnection(arrowSource.GetOutputPort())

    coneActorOutline = vtk.vtkActor()
    coneActorOutline.SetMapper(coneMapperOutline)
    coneActorOutline.GetProperty().SetColor(colors.GetColor3d("Magenta"))
    coneActorOutline.GetProperty().LightingOff()

    rendererOutline.AddActor(coneActorOutline)

    renWin.SetSize(600, 600)

    renderer.GradientBackgroundOn()
    renderer.SetBackground(colors.GetColor3d("DarkSlateGray"))
    renderer.SetBackground2(colors.GetColor3d("DarkSlateBlue"))

    renderer.ResetCamera()
    camera = renderer.GetActiveCamera()
    camera.Roll(45.0)
    camera.Azimuth(-30.0)
    camera.Elevation(-15.0)
    renderer.ResetCamera()
    # Now set the active camera for the outline
    rendererOutline.SetActiveCamera(camera)

    renWin.SetWindowName('OutlineGlowPass')

    renWin.Render()

    iren.Start()
예제 #4
0
def main():
    fileName = get_program_parameters()

    colors = vtk.vtkNamedColors()

    colors.SetColor("A1Diff", [255, 204, 77, 255])
    colors.SetColor("A2Amb", [51, 51, 255, 255])
    colors.SetColor("A2Diff", [51, 255, 204, 255])
    colors.SetColor("A3Amb", [230, 230, 230, 255])
    colors.SetColor("Bkg", [128, 166, 255, 255])

    renderer = vtk.vtkRenderer()
    renderer.SetBackground(colors.GetColor3d("Bkg"))
    renderWindow = vtk.vtkRenderWindow()
    renderWindow.SetSize(500, 500)
    renderWindow.AddRenderer(renderer)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renderWindow)

    reader = vtk.vtkPLYReader()
    reader.SetFileName(fileName)
    reader.Update()

    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(reader.GetOutputPort())

    # create three models

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetAmbientColor(colors.GetColor3d("Red"))
    actor.GetProperty().SetDiffuseColor(colors.GetColor3d("A1Diff"))
    actor.GetProperty().SetSpecular(0.0)
    actor.GetProperty().SetDiffuse(0.5)
    actor.GetProperty().SetAmbient(0.3)
    actor.SetPosition(-0.1, 0.0, -0.1)
    renderer.AddActor(actor)

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetAmbientColor(colors.GetColor3d("A2Amb"))
    actor.GetProperty().SetDiffuseColor(colors.GetColor3d("A2Diff"))
    actor.GetProperty().SetSpecularColor(colors.GetColor3d("Black"))
    actor.GetProperty().SetSpecular(0.2)
    actor.GetProperty().SetDiffuse(0.9)
    actor.GetProperty().SetAmbient(0.1)
    actor.GetProperty().SetSpecularPower(10.0)
    renderer.AddActor(actor)

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetDiffuseColor(colors.GetColor3d("A3Amb"))
    actor.GetProperty().SetSpecularColor(colors.GetColor3d("White"))
    actor.GetProperty().SetSpecular(0.7)
    actor.GetProperty().SetDiffuse(0.4)
    actor.GetProperty().SetSpecularPower(60.0)
    actor.SetPosition(0.1, 0.0, 0.1)
    renderer.AddActor(actor)

    renderWindow.SetMultiSamples(0)

    # create the basic VTK render steps
    basicPasses = vtk.vtkRenderStepsPass()

    motion = vtk.vtkSimpleMotionBlurPass()
    motion.SetDelegatePass(basicPasses)

    # Tell the renderer to use our render pass pipeline.
    renderer.SetPass(motion)

    numRenders = 30

    renderer.GetActiveCamera().SetPosition(0, 0, -1)
    renderer.GetActiveCamera().SetFocalPoint(0, 0, 0)
    renderer.GetActiveCamera().SetViewUp(0, 1, 0)
    renderer.ResetCamera()
    renderer.GetActiveCamera().Azimuth(15.0)
    renderer.GetActiveCamera().Zoom(1.2)

    renderWindow.Render()

    for i in range(0, numRenders):
        renderer.GetActiveCamera().Azimuth(10.0 / numRenders)
        renderer.GetActiveCamera().Elevation(10.0 / numRenders)
        renderWindow.Render()

    iren.Start()
#shadow & DOF
light1 = vtk.vtkLight()
light1.SetFocalPoint(0, 0, 0)
light1.SetPosition(0, 10, 0.2)
light1.SetColor(0.95, 0.97, 1.0)
light1.SetIntensity(0.8)
ren.AddLight(light1)

light2 = vtk.vtkLight()
light2.SetFocalPoint(0, 0, 0)
light2.SetPosition(10.0, 10.0, 10.0)
light2.SetColor(1.0, 0.8, 0.7)
light2.SetIntensity(0.5)
ren.AddLight(light2)

renWin.SetMultiSamples(0)

basicPasses = vtk.vtkRenderStepsPass()

# dof_pass = vtk.vtkDepthOfFieldPass()
# dof_pass.SetDelegatePass(basicPasses);
# dof_pass.AutomaticFocalDistanceOff();
# ren.SetPass(dof_pass);
# ren.GetActiveCamera().SetFocalDisk(0.250)
# ren.GetActiveCamera().SetFocalPoint(0, 0, 0)

iact.Initialize()
renWin.Render()
iact.Start()