SubD Texturing issues

Hi there,

since SubD geometry is getting more common, i wanted to use them and apply UV mapping and textures for use in Rendered Viewport. While doing so, i ran into multiple issues:

Issue 1: Textures are displayed very blurry compared to meshes, below shows a SubD on the left and a mesh (the extracted RenderMesh of the SubD) on the right. Can the (simulated) texture display be improved for SubD as it has been done for meshes recently ?

Issue 2: Once i have used _Unwrap on even the simplest SubD geometry and try to switch back from RenderedViewport to ShadedViewport, i get a noticable delay until the operation completes. This happens even if no texture or material has been applied to the SubD object. If i have multiple textured SubD objects, in takes even longer to switch back to ShadedViewport, sometimes up to 5 seconds which interupts the workflow quite a lot.

Issue 3: When turning off a layer with multiple textured SubD objects and at a later time turning the layer on while beeing in RenderedViewport, all textures are regenerated and it takes quite some time until i get the final preview. Sometimes this can take up to 1 minute, however my textures are not very large (1K or 2K). Why does Rhino re-generate the textures at all when i did not change anything despite the objects visibility ?

Issue 4: Converting a perfectly UV mapped mesh to SubD seems to mess up the mapping. Could there be an option please to transfer the texture mapping from the mesh to the SubD object ?

Issue 5: Using _OffsetSubD on a custom mapped SubD object messes up the mapping of the offsetted result.

Issue 6: Display speed using textured SubD objects in RenderedViewport is noticably slower compared to using textured meshes. I’ve set the “SubD meshing parameters for raytracing” for all my textured SubD objects to the highest level and extracted the render meshes. Then i’ve turned Off mesh wires and SubD wire display in the RenderedViewport and compared the display speed using TestMaxSpeed with 76 textured objects:

SubD objects - 15fps
Mesh objects - 60fps

Is this normal ?

Issue 7: Using ExtractRenderMesh on SubD objects does automatically assign the material used on the SubD to the resulting mesh. However, decal assignments are lost.

c.

UV mapping and texture drawing is being improved in Rhino WIP by @Jussi_Aaltonen . I believe most of the points from 1-6 are being addressed in one way or another.

Regarding 7 I think that case hasn’t been considered before. Logged as RH-69029 ExtractRenderMesh doesn’t copy decals

1 Like

thanks @nathanletwory,

i hope that at least issue 1 can be fixed in Rhino 7, it is basically the same problem i had with meshes and was fixed in a recent SR.

There is a another small issue with textured SubD display in RenderedViewport. If you open below example which uses a constant colored dark texture, some wires of the SubD get visible when zooming out far enough even when SubD Wires is turned Off in the display mode options:

SubD_DisplayProblem.3dm (350.4 KB)

This would be great. Not sure if this is a bug but if i use the UV Editor on a SubD and then try to select an (naked) edge loop from the unwrapped mesh by holding Shift + Ctrl and double click on it, it does not select the edge loop. Instead it selects the single edge with the first click, then after the second click it shows a popup to choose if i want to select the (single) edge or connected face ?!

thanks for adding it to the bug tracker.

_
c.

Texture baking a.k.a. ATP (Advanced texture preview) in Rhino 7 is causing issues 1-3. ATP kicks in as soon as you use Unwrap or UVEditor. In Rhino WIP ATP is no longer needed for unwrapped objects.

Filed this bug: RH-69045 ToSubD: Texture mapping is not transferred correctly from mesh objects

Texture mapping tools in Rhino were designed to be used after the geometry is finished. We have seen that this is generally not what our users want to do. We are working towards improvements on this area. Filed this specific issue: RH-69047 OffsetSubD messes up the mapping on the offset part

If you need to turn off wires in Rendered mode it sounds like you may have tweaked something. Does that also happen with standard settings? I see 40 FPS for SubD and 60 FPS for meshes.

Hi @Jussi_Aaltonen,

thanks for adding this to the bugtracker. I’ve found another issue where ExtractRenderMesh fails to transfer the correct mapping from the UVMapped SubD to the extracted RenderMesh. I’m awaiting permission to send an example file via PM so you can repeat all these issues.

In my case, i had the SubD geometry and applied first only the Thickness modifier which did not behave as it usually does when used on meshes. The mapping was messed up. Then i’ve tried the command OffsetSubD to see the same.

I’m attaching my Rendered display mode below. The things changed are disable curve drawing and all wires for meshes and subd objects.

Rendered.ini (12.8 KB)

I’ll need to test this. But i generally do not want any wires in Rendered display since we’re using this as the main presentation for materials. Btw, is there a setting maybe which i am missing to change the resolution of subd display meshes without extracting the RenderMeshes from them ?

thanks,
c.

Hi @Jussi_Aaltonen,

I’ve found the setting in the document properties under Mesh>Custom>Level. While checking my density using ShowRenderMesh, i’ve discovered another issue, to repeat it please follow below steps:

  1. Create a SubD box
  2. Switch to Shaded display mode
  3. Select the SubD box and enable ShowRenderMesh
  4. Under Document Properties>Mesh>Custom>Level change the slider value
  5. Click on the Preview button

At this point, the ShowRenderMesh is removed from the display conduit of the SubD object, like if you would have typed HideRenderMesh. If you OK the Document Properties dialog and use ShowRenderMesh again on the SubD box, you can actually see that the render mesh has changed.

@nathanletwory, imho the textual description under Document Properties>Mesh is wrong and misleading: “SubD meshing parameters for Raytracing” is a setting which affects the SubD render mesh and counts for all display modes not only Raytraced. You can validate this by changing the Level value and using either ExtractRenderMesh or PolygonCount.

thanks,
c.

Hi @clement

I may have misunderstood this issue. I thought this has to do with texture baking on SubD objects. But if you’ve had the same issue with meshes then it can’t be because meshes never use texture baking. If you still have that file and you can find it could you upload it here so I can check what other factors there are that could be causing this issue?

This happens because custom object texture mapping triggers texture baking on the SubD. Rendered display mode samples the baked texture in a way that makes some of the unbaked pixels visible along the SubD edges. That does not happen in Rhino WIP anymore.

Thanks. Logged RH-69182 UVEditor: can not select edge loops by ctrl + shift + double clicking

If you can’t send via private message you can use Rhino - Upload to Support
and set recipient to jussi@mcneel.com.

Thanks, logged a bug: RH-69183 Rendered display: poor performance with textured SubD objects

Logged RH-69184 ShowRenderMesh: disabled when SubD mesh level changed in document properties

Hi @Jussi_Aaltonen, below is the same file i posted above with a different embedded texture. This is issue 1, it shows the blurry texture display on the UV mapped SubD, for comparison i’ve included the extracted rendermesh of the SubD which displays the texture much sharper.

The file also shows the problem with visible edges on the SubD If you zoom out, there are some leaks as shown in below image. SubD is left, mesh is right:

OK, is there any chance to fix this in V7 ? I’m trying to do some displacements (using custom tools) and the leaking pixels causes unwanted distorsions in the displaced results.

I’m in the process of uploading a larger file to my server and will send you the link via email.

thanks for adding other 2 bugs to the bugtracker.

_
c.

Hi @clement

Thanks for the model. We are working on some improvements to the performance.

This is something we discussed today and decided to try and fix it.
RH-69272 Textures re-bake after hiding and showing object

Sorry, this is something we don’t want to fix in Rhino 7. That change is big and the risk as well. The only way around this issue at the moment is to disable Advanced texture preview in the display settings. But doing that might cause other types of mapping artifacts.

Thank you, it will help us to work faster.

_
c.

RH-69272 is fixed in Rhino 7 Service Release 21

Hi @Jussi_Aaltonen,

I’d like to report another thing which makes texturing really a tedious process. When using the _Unwrap command on a SubD object, edge selection does not work.

Issue 7: by default it is possible to perform a SubD edge loop selection using CTRL+SHIFT double click. However, when the _Unwrap command is started and prompts for SubD edges, it does not allow this kind of edge loop selection, edges need to be selected one by one.

thanks,
c.

Hi @clement ,

When you’re in Unwrap with a SubD, you can double click an edge to get a loop selection without holding ctrl+shift.

There are some other commands that will work like this too such as DupEdge which doesn’t require the keyboard combo but in that case holding ctrl+shift doesn’t cause it to not work. I think the same should be done for Unwrap to avoid this confusion, thanks for bringing it up. Filed as RH-69549

Hi @BrianJ, thanks for this useful tip. I’ve been so used to the keyboard combo so i did not try such a simple thing :slight_smile:

_
c.

1 Like