def InitRenderPasses(self): """Initiate and add realism passes to renderer""" cameraP = vtk.vtkCameraPass() opaque = vtk.vtkOpaquePass() peeling = vtk.vtkDepthPeelingPass() peeling.SetMaximumNumberOfPeels(1000) peeling.SetOcclusionRatio(0.1) translucent = vtk.vtkTranslucentPass() peeling.SetTranslucentPass(translucent) volume = vtk.vtkVolumetricPass() overlay = vtk.vtkOverlayPass() lights = vtk.vtkLightsPass() opaqueSequence = vtk.vtkSequencePass() passes2 = vtk.vtkRenderPassCollection() passes2.AddItem(lights) passes2.AddItem(opaque) opaqueSequence.SetPasses(passes2) opaqueCameraPass = vtk.vtkCameraPass() opaqueCameraPass.SetDelegatePass(opaqueSequence) shadowsBaker = vtk.vtkShadowMapBakerPass() shadowsBaker.SetOpaqueSequence(opaqueCameraPass) shadowsBaker.SetResolution(SHADOW_RENDER_RES) shadows = vtk.vtkShadowMapPass() shadows.SetShadowMapBakerPass(shadowsBaker) shadows.SetOpaqueSequence(opaqueSequence) seq = vtk.vtkSequencePass() passes = vtk.vtkRenderPassCollection() passes.AddItem(shadowsBaker) passes.AddItem(shadows) passes.AddItem(lights) passes.AddItem(peeling) passes.AddItem(volume) passes.AddItem(overlay) seq.SetPasses(passes) cameraP.SetDelegatePass(seq) self.renderer.SetPass(cameraP)
cameraP = vtk.vtkCameraPass() opaque = vtk.vtkOpaquePass() peeling = vtk.vtkDepthPeelingPass() peeling.SetMaximumNumberOfPeels(200) peeling.SetOcclusionRatio(0.1) translucent = vtk.vtkTranslucentPass() peeling.SetTranslucentPass(translucent) volume = vtk.vtkVolumetricPass() overlay = vtk.vtkOverlayPass() lights = vtk.vtkLightsPass() opaqueSequence = vtk.vtkSequencePass() pass2 = vtk.vtkRenderPassCollection() pass2.AddItem(lights) pass2.AddItem(opaque) opaqueSequence.SetPasses(pass2) opaqueCameraPass = vtk.vtkCameraPass() opaqueCameraPass.SetDelegatePass(opaqueSequence) shadowBaker = vtk.vtkShadowMapBakerPass() shadowBaker.SetOpaquePass(opaqueCameraPass) shadowBaker.SetResolution(1024) # to cancel self->shadowing
def __init__(self): self.renderer = vtk.vtkRenderer() self.renderer.GradientBackgroundOn() self.ren_win = ren_win = vtk.vtkRenderWindow() ren_win.SetSize(512,512) ren_win.SetMultiSamples(0) ren_win.SetAlphaBitPlanes(1) ren_win.SetOffScreenRendering(1) #default 1 iren = self.iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(ren_win) ren_win.AddRenderer(self.renderer) camera_pass = vtk.vtkCameraPass() opaque = vtk.vtkOpaquePass() peeling=vtk.vtkDepthPeelingPass() peeling.SetMaximumNumberOfPeels(200) peeling.SetOcclusionRatio(0.1) translucent=vtk.vtkTranslucentPass() peeling.SetTranslucentPass(translucent) volume=vtk.vtkVolumetricPass() overlay=vtk.vtkOverlayPass() lights=vtk.vtkLightsPass() opaque_sequence=vtk.vtkSequencePass() passes2=vtk.vtkRenderPassCollection() passes2.AddItem(lights) passes2.AddItem(opaque) opaque_sequence.SetPasses(passes2) opaque_camera_pass=vtk.vtkCameraPass() opaque_camera_pass.SetDelegatePass(opaque_sequence) shadows_baker=vtk.vtkShadowMapBakerPass() shadows_baker.SetOpaquePass(opaque_camera_pass) shadows_baker.SetResolution(1024) #To cancel self-shadowing. shadows_baker.SetPolygonOffsetFactor(3.1) shadows_baker.SetPolygonOffsetUnits(10.0) shadows=vtk.vtkShadowMapPass() shadows.SetShadowMapBakerPass(shadows_baker) shadows.SetOpaquePass(opaque_sequence) seq=vtk.vtkSequencePass() passes=vtk.vtkRenderPassCollection() passes.AddItem(shadows_baker) passes.AddItem(shadows) passes.AddItem(lights) passes.AddItem(peeling) passes.AddItem(volume) passes.AddItem(overlay) seq.SetPasses(passes) camera_pass.SetDelegatePass(seq) self.renderer.SetPass(camera_pass)