Rhino 8 Render Texture Resolution degraded compared to 7

Hi there,

When rendering the same mesh with same material in Rhino 7 vs Rhino 8, the resolution of the colour channel is much lower in 8 even though they reference the same JPG image.
Maybe I’ve accidentally changed a setting in 8?

Rhino 7

Rhino 8 (note the fuzziness of the colour from the texture of the mesh)

These are from the exact same rhino file; Original file is rhino 8, then saved as Rhino7. Unfortunately, this will require me to re-render.

-Jeremy

I assume you’re using Rhino Render for the rendering?

Please run the Rhino command _SystemInfo and share the result in a reply, along with a Rhino 8 3dm file that shows this issue.

1 Like

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

Windows 11 (10.0.22631 SR0.0) or greater (Physical RAM: 64GB)
.NET 7.0.0

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 3080 (NVidia) Memory: 10GB, Driver date: 4-2-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 552.12
> 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: 4-2-2024
Driver Version: 31.0.15.5212
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 10 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.4.24044.15001
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\RhinoScript.rhp “RhinoScript”
C:\Program Files\Rhino 8\Plug-ins\IdleProcessor.rhp “IdleProcessor”
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\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”

Above is the sysinfo.

Here is the 2gb file:

I tried raytracing in 7, but it reverted to rhino render, and then 7 also had bad quality.
Raytracing in either 7 or 8 is sharp

When restarting 8, the texture seems sharp (sharp as it should) again for now.
image.

Just then, I switched from Rhino Render to wireframe, and then back to rhino render in 8. Now the resolution is bad again. This is quite inconsistent behaviour

image

I then switched to raytraced and back to rhino render, and it’s worse now. Note the little tree in the bottom right for sharpness comparison

Oh wow… RefreshAllTextures did the job!

Jeremy

Just to set some terminology straight. Rhino Render is what is used when using the _Render command (the render button in the toolbar). This is the same engine as Raytraced. You are talking about Rendered display mode.

Anyway, good to hear you found RefreshAllTextures.

There have lots of fixes to Raytraced/Rhino Render since Rhino 8.4 - it’d be great if you could update to 8.7 at your earliest convenience.

On my M2 PolygonCount fails to report faces on the mesh shown, so that is something that needs to be investigated. What gives info though, so it isn’t completely broken (180M faces is quite a bit, though).

Same symptoms in 8.7. Refreshtextures required.

Also getting inconsistent shadows in RHino Render. Sometimes they are very smooth and nice, but other times they are jagged. Not sure how to fix this one.

-Jeremy

After doing some experimentation, each time I print a rhino render to an image; I have to refresh all textures. Perhaps this is a bug?

-Jeremy

Are you talking about the production rendering (Rhino Render) here, or about Rendered mode in the viewport?

Your model is quite taxing though. For the land mesh you have over 180 million polygons. The texture on it as also huge at 25984x18898 pixels, on disk just 269MB, but in memory that is almost 8GB. Showing all trees and rendering this puts my GPU RAM usage close to 20% of 48GB, which is around 10GB.

Raytraced looks sharp to me (and so would Rhino Render, since it uses the same engine)

Rendered mode looks like this

@DavidEranen may be able to speak more to how Rendered mode does here, but I can imagine that there is potentially some automatic degradation of textures going on to be able to fit in memory. Opening this file in original state with also Firefox open on this machine has GPU memory on my display driving GPU already go to 25% percent of 48GB.

Rendering with Rhino Render will increase memory pressure on your GPU (assuming you render on your RTX 3080), and may cause textures being evicted from memory, potentially causing lower resolution being used when reread. Again, that part is more the area of @DavidEranen, but that is how I think it is going.

1 Like

Yes… it’s a big file with lots of data…

Unfortunately, I didn’t know how to deal with surface etc. Raytracing takes too long, I need to produce 24 images asap, and Rhino Render is much quicker.

In your second image, you have very blurred shadows. With display settings, I make them more visible like in the raytraced, but they’re very blocky and jagged. However, earlier today, also using Rhino Render, they were smooth like raytraced… I haven’t been able to replicate the same effect.

Jagged shadows in image above were smooth like raytracing but not raytraced earlier today using RHino Render

-Jeremy

I’ve tried using the CPU only for rendering, and it also blurs after each print to image using rhino render

Please to limit confusion: Rendered mode != Rhino Render.

Rhino Render is what is used when you use this blue sphere button

image

That will pop up a new window (the Render Window)

Rendered mode is what you use in the viewport

Can you show a screenshot of the settings you are currently using to try achieve sharp shadows in Rendered mode?

I apologise for the incorrect terminology. I’ve been using Rendered mode, vs Raytraced mode.
Raytraced mode gives excellent results, but limited resolution/time spent, and quite often crashes.
Rendered mode gives blocky shadows like in the image above; but I can print at 300dpi A3 which is what I need.

I’ve tried many combinations with the display settings for Rendered mode, and the current settings are the ones which somewhat simulate the actual shading seen in raytraced mode; but they’re jagged.

I just found an image I exported using Rendered mode earlier which has shadows which have much greater definition; closer to raytraced:

All I can say is that with the geometry and textures you are using you’re really pushing your GPU that has only 10GB to spare.

Things to try to get better results and performance:

  1. QuadRemesh on your huge open mesh. Setting target faces to 1000000 gave me 1800000 polygons, which is already a huge saving. My collegue @DavidEranen says ReduceMesh is probably the better command to use here. You can test with either and see what gives you the most useful end result. I tried it and was able to get the mesh down to fewer than 1million polygons.
  2. Resave your Test.jpg, the largest texture at 25k x 18k. You probably can do with each side halved (12.5k x 9k)


edit: I have not yet been able to get sharper shadows in Rendered mode

1 Like

Thanks so much for your work Nathan.

I spent 7 hours yesterday waiting for the computer to work (i9 + 3080); trying to figure out a way where I could get a smooth and efficient mesh, whilst retaining the hundreds of hours which have been spent into shaping this mesh surface. The 0.1m contours smoothened + 1m interval points into the delauney mesh worked really well. It would also take the large bitmap albedo.

I was thinking of doing it in 4 separate mesh quadrants; but didn’t end up trying that this time.

-Jeremy

Hi Nathan,

I tried with four separate meshes each with their own bitmap to see if it would help.
It may have helped a bit compared to the single mesh with large bitmap, but the rendering is still soft after export. I have to refresh all textures after each export from Rendered mode.

image

Perhaps there’s a theoretical limit given GPU capacity, and texture size etc.

-Jeremy

Well, your GPU has only 10GB. Using that amount of data you’re working with on the GPU that also drives your monitor for your operating system (and any other application you may have running at the time of rendering) means you don’t have actually 10GB of memory on the GPU to use. As mentioned this model uses ~20% of 48GB on my GPU, meaning around 10GB.

The driver most likely will evict data from the GPU which will have to be read back in once required again (evicting other data where necessary). Rhino rendered mode will choose to dynamically change the resolution of textures, which can lead to the softer appearance you have noticed. Refreshing the texture will probably clear out enough GPU ram for the big textures to fit as well, but doesn’t mean it will work always.

1 Like

What are the pixel resolutions of these bitmaps? I assume you cropped the original Test.jpg into 4 smaller ones?

1 Like

Yes, I cropped them to be a quarter the resolution each: 11978 x 9406.

Do you think a GPU with more memory would handle situations like this with less softness?

-Jeremy

I think so - at least I haven’t seen difference before and after using the _Render command.

Perhaps its a limitation of the Rendered mode? You’re right that 10gb isn’t the latest multi-thousand dollar 24gb quadro card, but perhaps there’s some limitations with that rendered mode or the way it was designed?

This is before refresh all textures with one quadrant mesh at the previously mentioned resolution
image

This is after refresh. However, If i try to render out a bunch of frames for animation, it goes soft again.
image

I might trial V-Ray to see if it has something a bit different. I would love to use raytraced mode, but it keeps crashing on 7 or 8. I don’t know how you managed to do it in the image you sent.

-Jeremy

Hi Nathan,

Just wanted to update that I think you’re dead on with the memory limitation. It seems that for rendering, It’s best to have only Rhino open, and no other programs running simultaneously which might use gpu. If I do this, then Rhino renders using Rendered mode come out true resolution.

Best,
Jeremy

1 Like