[vtkusers] Only flat shading with VRML data

Mika Fischer mika.fischer at zoopnet.de
Fri Jul 6 09:38:23 EDT 2012


Unfortnuately, that yields exactly the same results...

On Fri, Jul 6, 2012 at 3:33 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> 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
>



More information about the vtkusers mailing list