[vtkusers] Only flat shading with VRML data

Bill Lorensen bill.lorensen at gmail.com
Fri Jul 6 09:33:27 EDT 2012


on the normals filter try
->SplittingOff();

On Fri, Jul 6, 2012 at 9:22 AM, Mika Fischer <mika.fischer at zoopnet.de>wrote:

> Ok, unfortunately now I get a problem when mapping the texture on the
> surface. There are strage "seams" in some places:
> http://zoopnet.de/vrml2.png
>
> Without vtkCleanPolyData the texture mapping worked fine. I think the
> problem might be caused by the vertices of the polygons being changed
> by vtkCleanPolyData. Is there something I can do to transform the
> texture in the same way?
>
> The code used for texturing is below.
>
> Thanks a lot in advance!
>
> Best,
>  Mika
>
> ------------------------------------------------------------
> vtkSmartPointer<vtkBMPReader> bmpReader =
> vtkSmartPointer<vtkBMPReader>::New();
> bmpReader->SetFileName(fileBmp.c_str());
> bmpReader->Update();
>
> vtkImageData* image = bmpReader->GetOutput();
> vtkTexture *texture = vtkTexture::New();
> texture->SetInputConnection(bmpReader->GetOutputPort());
> texture->InterpolateOn();
>
> [...]
>
> solidActor->SetTexture(texture);
>
>
> On Fri, Jul 6, 2012 at 3:06 PM, Mika Fischer <mika.fischer at zoopnet.de>
> wrote:
> > Yes, that fixed it! Thanks a lot!
> >
> > Best,
> >  Mika
> >
> > On Fri, Jul 6, 2012 at 3:01 PM, Bill Lorensen <bill.lorensen at gmail.com>
> wrote:
> >> Try running vtkCleanPolyData before the normals calculation. The data
> may
> >> duplicate the points for each triangle. clean polydata will remove
> duplicate
> >> points.
> >>
> >> On Fri, Jul 6, 2012 at 5:21 AM, Mika Fischer <mika.fischer at zoopnet.de>
> >> wrote:
> >>>
> >>> Hi,
> >>>
> >>> first of all I have to say that is the first time that I use vtk and I
> >>> don't have much experience with 3D graphics.
> >>>
> >>> I have a 3d triangle mesh of a face in wrl format. I also managed to
> >>> display it. However the shading of the triangles seems to be flat.
> >>> Calling SetInterpolationToGouraud() or SetInterpolationToFlat() seems
> >>> to make no difference.
> >>>
> >>> The code used to load the data and display it is below. Am I missing
> >>> an important step here?
> >>>
> >>> Also, if I load the file in ParaView, it has the same issue and
> >>> switching from Flat to Gouraud makes no visible difference. However if
> >>> I use a CylinderSource, the shading is smooth as I would expect it
> >>> (and switching to flat makes a huge difference).
> >>>
> >>> Here's a screenshot of the data in paraview:
> http://zoopnet.de/vrml.png
> >>>
> >>> Any tips would be very much appreciated!
> >>>
> >>> Best,
> >>>  Mika
> >>>
> >>> -------------------------------------
> >>> vtkSmartPointer<vtkVRMLImporter> importer =
> >>> vtkSmartPointer<vtkVRMLImporter>::New();
> >>> importer->SetFileName(fileWrl.c_str());
> >>> importer->Read();
> >>> importer->Update();
> >>>
> >>> vtkActorCollection* actors = importer->GetRenderer()->GetActors();
> >>> actors->InitTraversal();
> >>> vtkDataSet* pDataset = actors->GetNextActor()->GetMapper()->GetInput();
> >>>
> >>> vtkPolyData* polyData = vtkPolyData::SafeDownCast(pDataset);
> >>> polyData->Update();
> >>>
> >>> vtkSmartPointer<vtkPolyDataNormals> skinNormals =
> >>> vtkSmartPointer<vtkPolyDataNormals>::New();
> >>> skinNormals->SetFeatureAngle(90.0);
> >>> skinNormals->SetInput(polyData);
> >>> skinNormals->Update();
> >>>
> >>> vtkSmartPointer<vtkPolyDataMapper> solidMapper =
> >>> vtkSmartPointer<vtkPolyDataMapper>::New();
> >>> solidMapper->SetInputConnection(skinNormals->GetOutputPort());
> >>> solidMapper->ScalarVisibilityOff();
> >>>
> >>> vtkSmartPointer<vtkActor> solidActor =
> vtkSmartPointer<vtkActor>::New();
> >>> solidActor->SetMapper(solidMapper);
> >>> solidActor->GetProperty()->SetInterpolationToGouraud();
> >>>
> >>> -------------------------------------
> >>> _______________________________________________
> >>> Powered by www.kitware.com
> >>>
> >>> Visit other Kitware open-source projects at
> >>> http://www.kitware.com/opensource/opensource.html
> >>>
> >>> Please keep messages on-topic and check the VTK FAQ at:
> >>> http://www.vtk.org/Wiki/VTK_FAQ
> >>>
> >>> Follow this link to subscribe/unsubscribe:
> >>> http://www.vtk.org/mailman/listinfo/vtkusers
> >>
> >>
> >>
> >>
> >> --
> >> Unpaid intern in BillsBasement at noware dot com
> >>
>



-- 
Unpaid intern in BillsBasement at noware dot com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120706/f1171049/attachment.htm>


More information about the vtkusers mailing list