trouble transforming texture mapped objects

Hi,

I’m not sure whether I’m doing something wrong, this is expected behavior, or a bug.

I create a Sphere source
Apply TextureMapToSphere
Load an image to use as texture

Things look as expected.

If I then apply a Transform to the TextureMapToSphere object, I get the correct transformation, and under the Info panel it says that the Transform object has texture coordinates, but there is no longer a texture applied. Under Texture for the Transform object it lists Texture as None. And it is grayed out, so I cannot add one.

I see this same behavior for pv 5.5.2 and 5.6.0. Am I doing something wrong here?

Thanks
joe

Hi Joe,

Looking at the source code for vtkTransformFilter.cxx, it appears the texture coordinate is copied to the output (which we see in the Information panel), but it is not set as the texture coordinates array. This is a bug for which I’ve filed a report.

As a workaround in 5.5.2, and 5.6.0, you can add the following programmable filter after the Transform filter:

output.PointData.VTKObject.ShallowCopy(inputs[0].PointData.VTKObject)

tcoords = inputs[0].PointData["Texture Coordinates"]
output.PointData.VTKObject.SetTCoords(tcoords.VTKObject)

Hi Cory,

Thanks, that worked great. Now here’s the new problem I’m seeing. My intent is to take the transformed textured sphere and use it as a custom glyph with the GlyphWithCustomSource filter. This seems to work in 5.5.2, so I am not blocking on this. But with 5.6.0 there is again no texture. And no TCoords array. In fact the only data array listed is Normals. The Velocity vector from the data is not listed. The filter seems to know about the Velocity, because I can select it as the Orientation Array for the glyphs, but it does not show in the Information panel, or in the Coloring dropdown.

Best

joe

Joe,

It sounds like you are running into this bug: https://gitlab.kitware.com/paraview/paraview/issues/18662

Attributes like texture coordinates are not being copied over to the glyph filter output. There isn’t an easy workaround for that one, I’m afraid. But it will be fixed in the next version of ParaView.

Note that the arrays displayed in the Properties Panel reflect arrays available in the input to a filter, while the content of the Information Panel reflects info about the output of a filter. So if the array is not being copied to the output, it will not appear in the Information Panel.