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