i downloaded this rug i feel the only way to get it to look good is with displacement and subsurf modifier. is there a different technique that im unaware of?
i know one option is a particle system but that is defeating the purpose of a detailed mat like this imo.
You might want to learn about adaptive subdivision. It’s a feature that subdivides faces more when they are close to the camera and less when they are far away. It can allow very fine displacement in Cycles, with a detail level you couldn’t reach with traditional subdivision.
It’s only available for Cycles though (low poly solutions are more suited in Eevee anyway).
I would recommend using the latest version (Blender 4.5) if possible, because adaptive subdiv was recently reworked in that version and some bugs were fixed.
You first need to switch Cycles to experimental to access it.
Then, put a subdivision modifier on the object. It needs to be last in the list, as it all happens at render, after everything else has been calculated. There will be a checkbox to switch to adaptive mode. When adaptive is used, the “levels” no longer matter, it’s the new setting “dicing scale” that decides the quality.
The dicing scale is in pixels. The default of 1 means that every face of the object will be subdivided until it’s 1 pixel wide in the render. 2 means every face will be subdivided until it’s 2 pixels wide, so lower in quality. 1 is fine enough that you can set the material to “displacement only” and get details almost as fine as bump would give you, but with true displacement. If you use “displacement and bump” you might get away with a dicing scale of 3, as the bump helps with finer details.
There is also a new subdivision section that will appear in the main render settings.
This is important, because there is a setting there that controls the viewport quality. You can also change the “dicing rate render” and it will act as a quality multiplier for every object in the scene. This can be useful if you change the resolution of the render but don’t want the subdivision to change (it’s pixel-based, so the render resolution affects the quality).
Here is a scene where I render fine detail using purely true displacement, no bump. adaptive_sub.blend (538.9 KB)
This feature exists in most modern renderers. Cycles is actually lagging a bit behind adopting it.
If you know how to adjust the settings for good performance, you could have an entire scene where the bump is mostly real, with proper shadows and parallax. It’s especially worth it for rock, brick, ground textures and anything that’s deeply bumpy.
It can also be used purely for subdivision, without displacement. Lets’s say you have a camera moving down a long street with a bunch of cars. The closer cars will get more subdivision and the farther ones will get less, with the amounts getting auto-adjusted each frame for the camera’s position. This can save performance if you know to adjust the dicing scale well.
–
Nanite does have a similar result visually and is capable of doing adaptive subdivision+displacement like this.
But in its most common use, it actually works in reverse from this. You feed it the highest detail mesh and it decimates it the farther it gets.