[vtkusers] Problem with lookup table, mapper, and number of colors in 5.8
Riku
subs at collab.se
Mon Feb 21 07:34:53 EST 2011
Hello,
So far no new input regarding my problem (see below), so I thought I'd
report some more on the problem and my recent findings. (Hoping
someone might have a lead on this.)
I have attached two PNG images that highlight my present problem.
It seems that the problem is in some way related to OSMesa and/or what
happens in VTK when that implementation is used. For my testing, I
have created four different builds for shared objects:
vtk-5.6.1
vtk-5.6.1-osmesa
vtk-5.8
vtk-5.8-osmesa <-- problem is here
The CMake settings are the same for the four build, except for the
OSMesa settings. (VTK_OPENGL_HAS_OSMESA is true, VTK_USE_X
is false, OPENGL_gl_LIBRARY is set to the empty string.) For the
OSMesa builds, the resulting libraries have no dependencies on X
libraries or on libGL, only on libOSMesa.
With the testing program (below), all is fine for the three first
cases. For vtk-5.8-osmesa the colors go "wild". Is this a bug in the
VTK code? I have started to review the code changes that I think are
involved, but have so far not found anything obviously useful.
Still hoping for some leads! I am very thankful for any help, as I
need precisely my last case to work.
Riku
On 17 February 2011 12:49, Riku <subs at collab.se> wrote:
> Hello all,
>
> I have a weird problem using the VTK source code from the release head
> in git. The results differ consistently between VS2008 (Windows 7
> 64-bit) and gcc (Ubuntu 10.10).
>
> In the test program I set the number of table values (colors) in the
> lookup table to 10. In the rendered image this is reflected correctly
> by the scalar bar actor, but NOT by the sliced structured grid, but
> only when running the program on Linux. I get a higher number of
> colors than requested, but it seems different inputs give different
> results. I have not been able to understand the logic of the problem.
> The Windows compiled program behaves "well".
>
> My test program below reproduces the problem. Am I missing anything
> obvious? Can someone else reproduce the problem? (Is this an issue for
> the developers?)
>
> I have compiled the release head in different varieties, all with the
> same result.
>
> Thanks for any help!
>
> Riku
>
> --- Test code below ---
>
> #include "vtkSmartPointer.h"
> #include "vtkDataSetReader.h"
> #include "vtkPlane.h"
> #include "vtkCutter.h"
> #include "vtkLookupTable.h"
> #include "vtkDataSetMapper.h"
> #include "vtkActor.h"
> #include "vtkScalarBarActor.h"
> #include "vtkRenderer.h"
> #include "vtkRenderWindow.h"
> #include "vtkWindowToImageFilter.h"
> #include "vtkPNGWriter.h"
>
> #define VTK_CREATE(type, var) vtkSmartPointer<type> var =
> vtkSmartPointer<type>::New()
>
> int main(int argc, char* argv[])
> {
> VTK_CREATE(vtkDataSetReader, reader);
> reader->SetFileName("SampleStructGrid.vtk");
> reader->Update();
>
> VTK_CREATE(vtkPlane, plane);
> plane->SetOrigin(0.5, 0.5, 0.26);
> plane->SetNormal(0, 0, 1);
>
> VTK_CREATE(vtkCutter, cutter);
> cutter->SetCutFunction(plane);
> cutter->SetInputConnection(reader->GetOutputPort());
>
> VTK_CREATE(vtkLookupTable, lut);
> lut->SetNumberOfTableValues(10);
> lut->SetHueRange(0.66667, 0);
> lut->Build();
>
> VTK_CREATE(vtkDataSetMapper, mapper);
> mapper->SetInputConnection(cutter->GetOutputPort());
> mapper->SetLookupTable(lut);
> mapper->InterpolateScalarsBeforeMappingOn();
> mapper->SetScalarRange(0.3, 1.1);
>
> VTK_CREATE(vtkActor, actor);
> actor->SetMapper(mapper);
>
> VTK_CREATE(vtkScalarBarActor, bar);
> bar->SetLookupTable(lut);
> bar->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport();
> bar->GetPositionCoordinate()->SetValue(0.25, 0.01);
> bar->SetOrientationToHorizontal();
> bar->SetWidth(0.5);
> bar->SetHeight(0.11);
>
> VTK_CREATE(vtkRenderer, renderer);
> renderer->AddViewProp(actor);
> renderer->AddViewProp(bar);
> renderer->SetBackground(1, 1, 1);
> renderer->ResetCamera();
>
> VTK_CREATE(vtkRenderWindow, window);
> window->OffScreenRenderingOn();
> window->AddRenderer(renderer);
> window->SetSize(600, 600);
>
> VTK_CREATE(vtkWindowToImageFilter, wti);
> wti->SetInput(window);
>
> VTK_CREATE(vtkPNGWriter, writer);
> writer->SetInputConnection(wti->GetOutputPort());
> writer->SetFileName("test-color.png");
> writer->Write();
>
> return 0;
> }
>
> --- End test code ---
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-color-err.png
Type: image/png
Size: 10581 bytes
Desc: not available
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110221/8db59ef8/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-color-ok.png
Type: image/png
Size: 9045 bytes
Desc: not available
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110221/8db59ef8/attachment-0001.png>
More information about the vtkusers
mailing list