[VTK 9.0.0rc3][Python] SetMultiSamples has not effect on output
Calling SetMultiSamples
has no affect on the output using VTK 9.0.0rc3.
Running the following script in both environment produces different results. In 8.2.0 the output shows a difference when Setting MultiSamples to greater than 0 but 9.0.0rc3 shows no difference.
The expected behavior would show a difference in both environments.
VTK 8.2.0 environment:
conda create -n vcs-mesa-18.3.1-8.2.0 -c conda-forge/label/vtk_dev -c conda-forge "vtk=8.2.0" "mesalib=18.3.1" pillow
VTK 9.0.0rc3
conda create -n vcs-mesa-18.3.1-9.0.0 -c conda-forge/label/vtk_dev -c conda-forge "vtk=9.0.0rc3" "mesalib=18.3.1" pillow
Script:
import vtk
from PIL import ImageChops
from PIL import Image
colors = vtk.vtkNamedColors()
def draw_line(aa=None):
renderer = vtk.vtkRenderer()
window = vtk.vtkRenderWindow()
window.SetSize(640, 480)
window.AddRenderer(renderer)
source = vtk.vtkLineSource()
source.SetPoint1([0.0, 0.0, 0.0])
source.SetPoint2([640.0, 480.0, 0.0])
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(source.GetOutputPort())
actor = vtk.vtkActor()
actor.GetProperty().SetLineWidth(1.0)
actor.GetProperty().SetColor(colors.GetColor3d('Black'))
actor.SetMapper(mapper)
renderer.AddActor(actor)
renderer.SetBackground(colors.GetColor3d('White'))
if aa is not None:
window.SetMultiSamples(aa)
value = window.GetMultiSamples()
window.Render()
image = vtk.vtkWindowToImageFilter()
image.SetInput(window)
image.SetInputBufferTypeToRGB()
image.ReadFrontBufferOff()
image.Update()
filename = f'vtk-{vtk.VTK_VERSION}_{value}.png'
writer = vtk.vtkPNGWriter()
writer.SetFileName(filename)
writer.SetInputConnection(image.GetOutputPort())
writer.Write()
return filename
base = draw_line(0)
aa32 = draw_line(32)
img1 = Image.open(base)
img2 = Image.open(aa32)
diff = ImageChops.difference(img1, img2)
diff.save(f'vtk-{vtk.VTK_VERSION}-diff.png')