Cycles new microdisplacement testing, discussion and blend sharing

(Benny G) #401

You can use a normal map if you change it from Tangent space to object Space ,with adaptive displacement :eyebrowlift:

(titipuchal) #402

That is true, however the ram quantity involved in the use of displace modifier (actually, correct me if I am wrong, but, the adaptive subdivision must be in the remesh or subsurface modifier, and must to be driven for the displacement texture) make the modifier very GPU and CPU hungry, of course we have the work around of deactivate some subdivision levels, but some times is a pain in the a** when you need the geometry in the screen. I use it in my work (I mean the actual geometry for work in the screen, not just in render time. actually I never can render something in GPU when I am using displace modifier ¡¡¡¡¡¡never fit in VRAM!!!.) and I really will be happy if was an option in some place to make the subdivision only where is needed.


(Lsscpp) #403

afaik there’re plans to make it work in camera frustrum only (but what about mirror reflections then?). Another solution could be to make it driven by vertexgroup or weightpaint

(titipuchal) #404

I never use vertexgroup or weightpaint, but that will means to update both if I change the displacement texture, right?. However still being better than nothing.

(bcgreen24) #405

Looks awesome!


(Benny G) #406

Thanks Bryan , another basic idea simple sphere + adaptive displacement + procedural materials :eyebrowlift2:

(Benny G) #407

Base shader for the strawberry with adaptive displacement

(Ace Dragon) #408

Since this thread is still going, and since I have already done a few projects making use of microdisplacement, let me make a list of what the next developments should be for this feature.

  • A parameter that would a force a stop to tessellation when a user-defined memory limit is reached; - This arguably should be a high priority thing because of how the memory needs can be dependent on the viewing angle, resolution, and the topology of the object. That has gotten my machine well into swap range on multiple occasions (leading to me having to do a hard reset on a couple of them). I think anyone would be real unhappy if they accidentally messed up their machine as a result of the feature (thus the importance of an absolute memory limit).
  • Stitching between faces with non-continuous coordinates; - This would make it far easier to get good looking results in situations where a UVmap has to have seams in order to produce good results. I’m not talking so much about organic models here, but rather architectural or hard-surface models where such a feature becomes useful.
  • Stitching between faces with solid shading and different normal directions; - The decision to simply separate all geometry that is solid shaded can make the feature seem a bit primitive and hard to use if someone does not know of the workaround by way of smooth shading everything. This would also allow for objects to be seen the way they are supposed to in the viewport.

Anyway, the feature is already very useful for adding detail, but there’s still some outstanding issues to address (and I do hope we won’t have to wait a few more years based on how long it took to get this from a broken implementation to a proper one).

(Benny G) #409

Another Simple base Shader with adaptive displacement and the new smooth mortar from the brick texture shader:eyebrowlift2:


Cable displacement .blend (1010 KB)

ION cannon

x Benny G: nice tests.

(RickyBlender) #411

@Benny what is the mortar smooth ?
don’t see it in node in 2.78 !

I get something have to play some more

but interesting way to get large displacementon UV map

which Unwrap did u use ?
smart or with seam in the back ?

thanks for sharing
happy cl

(Benny G) #412

Download the new daily build and take a look to the updated bricktexture (there is a extra input mortar smooth ) if you take a look to the node setup that i have made for example i use it to make the displacement less or more sharp for example . For the uv unwrap you can use for example the addon tube unwrap

(Benny G) #413

Another one made with one off the example from (

(tobbew) #414

Do uv-maps work with adaptive subdivision and displacement in the microdisp branch? (It seems it still doesn’t in the latest buildbot? I found an old commit ( saying that opensubdiv does not fully support face varying attributes, but I get the impression that changed with opensubdiv 3.1 ( and I have some vague memories of working in the branch even before?

(zeauro) #415

microdisp branch does not evolve anymore.
Since september, improvements of displacement are directly added to master.
Displacement in 2.78a is more robust than in microdisp branch.

People are just continuing to use this thread to talk about displacement.

(nudelZ) #416

wip test scene :slight_smile:

edit: updated

(tungee) #417

NudelZ great Stuff as always!

(Ace Dragon) #418

Is there a reason why everything is triangles (as I don’t seem to see anything that depends on how many edges a face has)?

(burnin) #419

IMO (observing nudelZ fine work ;))… there are quads, one just doesn’t see them…
… image of a Wirefrime is not viewport/OGL snapshot, but a cycles render - wire shader (node) does not render quads

i know you’re familiar with the theory, but it’s useless without exercising it :eyebrowlift:

(RickyBlender) #420

why do we have to subdivide it ?

I thought the idea was to do that internally and not externally!

this is I think how it work before but then it was changes

happy cl