Texturing problem or bug? R7 vs R8

If I open the linked file in rhino 7, the textures are fine. Opening it in rhino 8 changes the mapping and scale of the textures.
TexturesProblem_R7vsR8.gh.3dm (3.3 MB)

Here is the screenshot of both side by side

The geometry was generated with grasshopper. I simplified the file and it is linked here also. It uses Human for mapping on the meshes.
TexturesProblem_R7vsR8.gh (2.0 MB)

Am I missing a setting or there is something wrong in the way rhino 8 is handling texturing?

Can anybody please open the file in r7 and r8 to see if it’s just a problem on my computer?

@Jussi_Aaltonen probably something you want to look into.

It looks fine in Rhino 7 but in fact the surface parameter mapping on those meshes is already wrong. Mesh objects state to use surface mapping but what is visible on the object is something else. Something has tweaked the texture coordinates on the meshes without modifying the surface parameters.

So the rhino 7 is wrong but looks right :slight_smile: ?
Exporting it from 7 works fine also

I did it with grasshopper and human. I used a surface (made with sweep) to generate the mapping for the mesh. In rhino 7 it works as expected, nothing weird from a user perspective.
If I do the same in rhino 8 it doesn’t work… even worse sometimes it does, and when it does it is only for certain geometries but I couldn’t make it work for all… really frustrating.

I know it sounds stupid. I’ll try to explain.

The mesh objects you have in the 3dm file use material with a base color texture. That base color texture uses texture mapping from channel 1. Those mesh objects have surface parameter mapping on channel 1 (all meshable objects have that by default). Surface parameter mapping computes texture coordinates by applying a transform to surface parameters.

So in order to modify the surface parameter mapping one needs to modify the surface parameters. It seems like the components in your Grasshopper document are modifying the texture coordinates (result) instead of the surface parameters (definition). Modifying the texture coordinates directly seems to work as long as the texture mapping isn’t re-evaluated.

There’s a lot of legacy code out there that sets the mesh texture coordinates to whatever they need and a lot of code that assumes the texture coordinates are set to whatever they need :slight_smile: We are working to stop that.

With help from @nathanletwory I added a new C# script component to your Grasshopper document. It sets the surface parameters according to the texture coordinates after the PlanarMap component has modified them. Could you check that it fixes the issue with the deck meshes?
TexturesProblem_R7vsR8-srfp-fix.gh (2.0 MB)

1 Like

Hi. Thanks!
there are still some weird things happening.

If I open the original rhino 7 file in rhino 8, the grasshopper file doesn’t display any textures.
If I delete the geometry present in rhino, then the textures are fine in grasshopper, but…
If I bake the meshes, the textures are fine for a while and then they disappear (in rendered view) and the meshes turn to white.
Then I opened a new rhino 8 file and everything worked fine. Only for the deck of course.