示例#1
0
def get_render_view(size):
    '''Similar to GetRenderView except if a new view is created, it's
    created with the specified size instead of having t resize afterwards
    '''
    view = active_objects.view
    if not view:
        # it's possible that there's no active view, but a render view exists.
        # If so, locate that and return it (before trying to create a new one).
        view = servermanager.GetRenderView()
    if not view:
        view = CreateRenderView(ViewSize=size)
    return view
示例#2
0
def run(filename=None, nframes=60):
    """ Runs the benchmark. If a filename is specified, it will write the
  results to that file as csv. The number of frames controls how many times
  a particular configuration is rendered. Higher numbers lead to more accurate
  averages. """
    # Turn off progress printing
    if servermanager.progressObserverTag:
        servermanager.ToggleProgressPrinting()

    # Create a sphere source to use in the benchmarks
    pm = servermanager.ProxyManager()
    ss = servermanager.sources.SphereSource(
        ThetaResolution=1000,
        PhiResolution=500,
        registrationGroup="sources",
        registrationName="benchmark source")

    # The view and representation
    v = servermanager.GetRenderView()
    if not v:
        v = servermanager.CreateRenderView()

    rep = servermanager.CreateRepresentation(
        ss,
        v,
        registrationGroup="representations",
        registrationName="benchmark rep")

    results = []

    # Start with these defaults
    v.RemoteRenderThreshold = 0
    v.UseImmediateMode = 0
    v.UseTriangleStrips = 0

    # Test different configurations
    v.UseImmediateMode = 0
    title = 'display lists, no triangle strips, solid color'
    v.UseTriangleStrips = 0
    results.append(render(ss, v, title, nframes))

    title = 'display lists, triangle strips, solid color'
    v.UseTriangleStrips = 1
    results.append(render(ss, v, title, nframes))

    v.UseImmediateMode = 1
    title = 'no display lists, no triangle strips, solid color'
    v.UseTriangleStrips = 0
    results.append(render(ss, v, title, nframes))

    title = 'no display lists, triangle strips, solid color'
    v.UseTriangleStrips = 1
    results.append(render(ss, v, title, nframes))

    # Color by normals
    lt = servermanager.rendering.PVLookupTable()
    rep.LookupTable = lt
    rep.ColorAttributeType = 0  # point data
    rep.ColorArrayName = "Normals"
    lt.RGBPoints = [-1, 0, 0, 1, 0.0288, 1, 0, 0]
    lt.ColorSpace = 1  # HSV
    lt.VectorComponent = 0

    v.UseImmediateMode = 0
    title = 'display lists, no triangle strips, color by array'
    v.UseTriangleStrips = 0
    results.append(render(ss, v, title, nframes))

    title = 'display lists, triangle strips, color by array'
    v.UseTriangleStrips = 1
    results.append(render(ss, v, title, nframes))
    v.UseImmediateMode = 1

    v.UseImmediateMode = 1
    title = 'no display lists, no triangle strips, color by array'
    v.UseTriangleStrips = 0
    results.append(render(ss, v, title, nframes))

    title = 'no display lists, triangle strips, color by array'
    v.UseTriangleStrips = 1
    results.append(render(ss, v, title, nframes))

    newr = []
    for r in v.Representations:
        if r != rep:
            newr.append(r)
    v.Representations = newr

    pm.UnRegisterProxy("sources", "benchmark source", ss)
    pm.UnRegisterProxy("representations", "benchmark rep", rep)

    ss = None
    rep = None

    v.StillRender()
    v = None

    if filename:
        f = open(filename, "w")
    else:
        f = sys.stdout
    print >> f, 'configuration, %d, %d' % (results[0][1][0], results[0][2][0])
    for i in results:
        print >> f, '"%s", %g, %g' % (i[0], i[1][1], i[2][1])
sphere2 = None
sphere3 = None
pxm.UnRegisterProxies()
pxm.UnRegisterAllLinks()

# Load the saved state which also has the links.
smtesting.LoadServerManagerState(temp_state)
try:
    os.remove(saved_state)
except:
    pass
sphere1 = pxm.GetProxy("sources", "Sphere1")
sphere2 = pxm.GetProxy("sources", "Sphere2")
sphere3 = pxm.GetProxy("sources", "Sphere3")

# Do some changes.
sphere1.GetProperty("StartPhi").SetElement(0, 25)
sphere1.UpdateVTKObjects()

sphere3.GetProperty("EndTheta").SetElement(0, 100)
sphere3.GetProperty("ThetaResolution").SetElement(0, 10)
sphere3.GetProperty("PhiResolution").SetElement(0, 10)
sphere3.UpdateVTKObjects()

rmProxy = servermanager.GetRenderView()
rmProxy.StillRender()

if not smtesting.DoRegressionTesting():
    # This will lead to VTK object leaks.
    sys.exit(1)
    print("  with")
    print("    state-file - paraview state file, e.g. alpha_kernel.pvsm")
    print(
        "    counter    - (optional) integer counter appended to filename, e.g. 0"
    )
    sys.exit(1)

#outfile = "paraview_movie." + number
outfile = "image" + number
print("file root: ", outfile)

## paraview
servermanager.Connect()
view = servermanager.CreateRenderView()
servermanager.LoadState(filename)
view = servermanager.GetRenderView()

# turn off axis visibility
view.CenterAxesVisibility = 0
view.OrientationAxesVisibility = 0

# to avoid segmentation fault
if servermanager.vtkSMProxyManager.GetVersionMajor(
) <= 5 and servermanager.vtkSMProxyManager.GetVersionMinor() < 5:
    view.UseOffscreenRenderingForScreenshots = 0

# sets view size for display
#view.ViewSize = [1920,1080] # width x height
print("view size: " + str(view.ViewSize))

## save as jpeg