Slow performance on imported obj that has no texture coordinates

another potential clue: I noticed my renderer viewport has super laggy camera navigation with a particular model, and eventually narrowed it down to there being a mesh with no uvs and a material with a texture

in addition to being slow navigating with my renderer, I noticed remarkable lag in selecting/deselecting the mesh, to the point of being basically unusable

the mesh is a client one I cannot share, so to create an equivalent one from scratch:

  1. make a mesh sphere 100 x 100 segments
  2. array the sphere 10 x 10 x 1 and join
  3. export without uvs to obj
  4. delete the original and import the obj

this video shows select/deselect with/without a texture:

this video shows select/deselect with/without uvs:

and this video shows my renderer camera navigation with/without uvs (behavior is similar with/without texture, as above):

my plugin was load protected for the first two videos, and the status messages printed by it in the third indicate that only camera changes are being sent to the renderer during the camera navigation

this example is using rhino physically based material with rhino grid texture, but it is interesting that the same lag occurs if I use my materials & textures with texture generation disabled as described in the previous post (even more so – now passing TextureGeneration.Disallow for texture generation in SimulateMaterial when texture generation is disabled in the plugin)

system info

Rhino 8 SR4 2024-2-13 (Rhino 8, 8.4.24044.15001, Git hash:master @ 5d3f86ffffae3c2ed84d21147c008b3907a40a2e)
License type: Not For Resale Lab, build 2024-02-13
License details: Cloud Zoo

Windows 11 (10.0.22621 SR0.0) or greater (Physical RAM: 64GB)
.NET Framework 4.8.9181.0

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 2070 SUPER (NVidia) Memory: 8GB, Driver date: 2-15-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 551.61
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0

Secondary graphics devices.
NVIDIA Quadro P620 (NVidia) Memory: 2GB, Driver date: 2-15-2024 (M-D-Y).
> Accelerated graphics device with 4 adapter port(s)
- There are no monitors attached to this device!

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 2x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 2-15-2024
Driver Version: 31.0.15.5161
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Rhino plugins that do not ship with Rhino
C:\Users\jeremy\AppData\Roaming\McNeel\Rhinoceros\8.0\Plug-ins\Bella (813de3fb-18eb-405f-bfcd-b0b4d3da91fb)\24.2.0.0\bella_rhino.rhp “Bella” 24.2.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\AnimationTools.rhp “AnimationTools”
C:\Program Files\Rhino 8\Plug-ins\export_OBJ.rhp “export_OBJ” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\RhinoRender.rhp “Legacy Rhino Render”
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\RhinoCode\RhinoCodePlugin.rhp “RhinoCodePlugin” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.4.24044.15001
C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”
C:\Program Files\Rhino 8\Plug-ins\import_OBJ.rhp “Import_OBJ” 8.4.24044.15001

1 Like

Out of curiosity is this slowness also there with the Rendered display mode?

nvm, I watched the video now.

I think this is something for @DavidEranen and @Jussi_Aaltonen to look into.

hi @jdhill so far I was not able to reproduce the issue.
I added a wood material from the library. If I set viewport to raytraced I can still quickly select and deselect the mesh. I see no difference between the original and the imported mesh.
If possible send a file where you can reproduce this behavior, thanks.

I gave the instructions since it produces a huge obj, but I guess it zips pretty well so here you go, just open the provided 3dm, import the obj, assign the material

vp-selection-issue.7z (9.3 MB)

systeminfo

Rhino 8 SR6 2024-3-26 (Rhino 8, 8.6.24086.11001, Git hash:master @ 8e3b686f596bb6443e56e6dbecf0f54f4888713a)
License type: Not For Resale Lab, build 2024-03-26
License details: Cloud Zoo

Windows 11 (10.0.22621 SR0.0) or greater (Physical RAM: 64GB)
.NET 7.0.16

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 2070 SUPER (NVidia) Memory: 8GB, Driver date: 3-12-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 551.86
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0

Secondary graphics devices.
NVIDIA Quadro P620 (NVidia) Memory: 2GB, Driver date: 3-12-2024 (M-D-Y).
> Accelerated graphics device with 4 adapter port(s)
- There are no monitors attached to this device!

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 2x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 3-12-2024
Driver Version: 31.0.15.5186
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.6.24086.11001
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.6.24086.11001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.6.24086.11001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.6.24086.11001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.6.24086.11001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.6.24086.11001
C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”
C:\Program Files\Rhino 8\Plug-ins\import_OBJ.rhp “Import_OBJ” 8.6.24086.11001

1 Like

to be clear, I only used .obj here to easily get a mesh without texcoords, I know of no reason to believe the issue is specifically related to importing .obj

thanks @jdhill
RH-81312 slow performance with imported obj that has no texture coordinates

1 Like