V8 OBJ Export Texture Maps Broken

I’m texture mapping meshes and surfaces in Rhino and exporting them as OBJs into Revit to render in Enscape. V7 exports OBJs as expected, V8 translates texture maps incorrectly. Exporting the same exact thing in between v7 and V8 produces very different results. See files attached.

V8-OBJ-TEST.zip (860.4 KB)

Rhino 8 SR5 2024-3-12 (Rhino 8, 8.5.24072.13001, Git hash:master @ e3530849b75f00b2b977766a567ae29b055837e9)
License type: Commercial, build 2024-03-12
License details: Cloud Zoo

Windows 11 (10.0.22631 SR0.0) or greater (Physical RAM: 32GB)
.NET 7.0.18

Computer platform: LAPTOP - Plugged in [100% battery remaining]

Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 3080 Ti Laptop GPU (NVidia) Memory: 16GB, Driver date: 4-11-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 552.22
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
- Secondary monitor attached to adapter port 1
Primary OpenGL: NVIDIA GeForce RTX 3080 Ti Laptop GPU (NVidia) Memory: 16GB, Driver date: 4-11-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 552.22
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
- Secondary monitor attached to adapter port 1

Secondary graphics devices.
Intel(R) Iris(R) Xe Graphics (Intel) Memory: 1GB, Driver date: 11-3-2021 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- Secondary monitor is laptop’s integrated screen or built-in port

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: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 4-11-2024
Driver Version: 31.0.15.5222
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 16 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.5.24072.13001
C:\Program Files\Rhino 8\Plug-ins\WebBrowser.rhp “WebBrowser”
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\export_OBJ.rhp “export_OBJ” 8.5.24072.13001
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.5.24072.13001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.5.24072.13001
C:\Users\odomr\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\PanelingTools\2021.3.2.446\PanelingTools.rhp “PanelingTools”
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.5.24072.13001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.5.24072.13001
C:\Program Files\Rhino 8\Plug-ins\RhinoCode\RhinoCodePlugin.rhp “RhinoCodePlugin” 8.5.24072.13001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.5.24072.13001
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”

Hi Ryan -

There isn’t enough information in this bug report for me to be able to tell how you are testing this. When I open the 3dm file in Rhino 8, export as OBJ, and import that OBJ into Rhino 8, this is what I see:

Is your test from Revit and/or Enscape?
Apart from that, you are running Rhino 8.5 whereas I’m on an internal 8.9 but a public 8.8 version is available and contains lots of fixes.
-wim

Rhino 8 does read the OBJ files it creates correctly. There is something different about the way Enscape is reading the OBJ file exported from Rhino 8 vs Rhino 7.

My company vets service releases and before releasing them firmwide. I’ll try to do this export on my home PC with the latest service release.

@wim - I tried this on my home PC with the latest update and the problem persists.

Rhino 8 SR8 2024-5-28 (Rhino 8, 8.8.24149.15001, Git hash:master @ 49367284ece6544c4e32d4d2fce81c37a1bd9dff)
License type: Commercial, build 2024-05-28
License details: Cloud Zoo

Windows 10 (10.0.19045 SR0.0) or greater (Physical RAM: 32GB)
.NET 7.0.0

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce GTX 980 (NVidia) Memory: 4GB, Driver date: 6-8-2023 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 536.23
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0

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: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 6-8-2023
Driver Version: 31.0.15.3623
Maximum Texture size: 16384 x 16384
Z-Buffer depth: 24 bits
Maximum Viewport size: 16384 x 16384
Total Video Memory: 4 GB

Rhino plugins that do not ship with Rhino
C:\Program Files\Rhino 7\Plug-ins\RhinoCAM 2022 for R7\RhinoArt1FileExporter For Rhino7.0.rhp “RhinoArt1FileExporter”

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.8.24149.15001
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.8.24149.15001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.8.24149.15001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.8.24149.15001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.8.24149.15001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.8.24149.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”

It’s likely a variation on how the mapping is processed in Enscape-

In Rhino you have your textures planar mapped in UV space.

it could be as simple as changing it to planar uvw space.

I don’t have enscape to test here, but simply changing the mapping style to something that Enscape can grok may solve your issue.

you also have your wall as a mesh, and your doors as NURBS.

might be worth meshing the doors in Rhino, setting up the mapping then exporting that instead of letting Rhino mesh the nurbs surfaces as part of the obj export. That way you can control what you see explicitly instead of having stuff happen behind the scenes

now…to be clear all the stuff behind the scenes SHOULD do the right things… but until we can sort that, I’m just spitballing ideas to get you a workaround.

OBJ format does not store any texture mappings. It’s all just bare texture coordinates. So as long as Rhino applies its texture mappings correctly they should all show up correctly in Enscape.

@theoutside Where did you get a file with NURBS doors? I can only see meshes.

@ryan.odom Rya

How did you create the door surfaces? Can I have the original file with surface objects?

@Jussi_Aaltonen In this case, I used the _Picture command to bring in a texture map, positioned it in place, and then drew lines to Split the surface for the “doors” and extracted the render mesh to export. I want to add that this is not the only instance of this problem. I’ve seen this consistently when exporting OBJs from v8 and it’s one of the issues preventing me from doing any real work in v8.

picture may be the issue here…
that is a special use case thing for rhino.

if you redo this file with a planar image map does it still misbehave for you?

make you object, assign a material, add a texture, then map it using a planar map, then export…

still bad?