Micropoly displacement...?
Micropoly displacement...?
MPD is good, but vector displacement mapping is even better
you can displace in multiple vectors rather than just outwards
ie displace a mushroom from a flat plane
you can displace in multiple vectors rather than just outwards
ie displace a mushroom from a flat plane
- traditional difference map - you take TWO meshes. one mesh is hires sculpt, the other mesh is low poly cage that will be displaced at render time. the difference between HIRES and LORES is encoded into the LOW RES MESH'S UV MAP TEXTURE. only ONE uv map is taken into consideration.
- vector displacement map - you take TWO meshes. one mesh is hires sculpt, the other mesh is low poly cage that will be displaced at render time. the difference between HIRES and LORES is encoded in the LOW RES MESH"S UV MAP TEXTURE. BUT... when that comparison between hires and lores is made, BOTH the hires mesh's uvs and the lores mesh's uvs are taken into account and a CORRESPONDENCE is made between the uvs.
this allows the computer to say "ah, this vertex on the lores mesh CORRESPONDS to that vertex on the hires mesh". in traditional difference mapping, THEY DON'T CARE about correspondence, just the distance from hires to the NEAREST POINT on the lores.
since a correspondence is made, a determination can be made in regards not only how far away a point is from the nearest point on the other mesh, but we can say that the corresponding vertex went up 2 and left 3 and forward 7.
THIS allows you to encode undercuts like mushrooms.
_____
hum...
wouldn't that mean, you need a hires and a lores mesh?
or how does it work, with directly using a texture?
(MPD is clear, but VDM?)
_____
Edit: ah!
I found a pic of such a map I think, now I have a slight idea, how it works
http://www.xsibase.com/forum/index.php? ... 34;start=0
- vector displacement map - you take TWO meshes. one mesh is hires sculpt, the other mesh is low poly cage that will be displaced at render time. the difference between HIRES and LORES is encoded in the LOW RES MESH"S UV MAP TEXTURE. BUT... when that comparison between hires and lores is made, BOTH the hires mesh's uvs and the lores mesh's uvs are taken into account and a CORRESPONDENCE is made between the uvs.
this allows the computer to say "ah, this vertex on the lores mesh CORRESPONDS to that vertex on the hires mesh". in traditional difference mapping, THEY DON'T CARE about correspondence, just the distance from hires to the NEAREST POINT on the lores.
since a correspondence is made, a determination can be made in regards not only how far away a point is from the nearest point on the other mesh, but we can say that the corresponding vertex went up 2 and left 3 and forward 7.
THIS allows you to encode undercuts like mushrooms.
_____
hum...
wouldn't that mean, you need a hires and a lores mesh?
or how does it work, with directly using a texture?
(MPD is clear, but VDM?)
_____
Edit: ah!
I found a pic of such a map I think, now I have a slight idea, how it works
http://www.xsibase.com/forum/index.php? ... 34;start=0
VDM works with coloured maps, a bit like normal maps but with a broader spectrum. Somehow (and really I haven't got much of a clue) the colours and their intensity correspond to movements not just along the normals (as in the case of a 16 bits black and white displacement map), but also laterally along the two other axes. That's the gist of it as far as I understand it.
I wrote the XSI vector displacement plugin that Kram1032 referred to:
http://www.xsibase.com/forum/index.php? ... 34;start=0
It works exactly as he described. You bring both the low and high poly versions of an object into XSI from your sculpting program. Then XSI's Rendermap property walks the UV space to generate a difference map. The maps can get huge, e.g. hundreds of MB for 32 bits/channel and 2K or 4K size.
I also had to write a simple shader to expose Mental Ray's vector displacement capability.
Where vector displacement gets a little more complicated is if you use tangent space. Exactly as with normal mapping, if you want to be able to deform your low poly object after generating your displacement map, then you need to use tangent space. Unfortunately, there is no standardization of how tangent space is derived among different applications (and there are several possibilities). If you want to generate the displacement map in one app and render it in another, you have to be careful that the tangent space methods match up.
http://www.xsibase.com/forum/index.php? ... 34;start=0
It works exactly as he described. You bring both the low and high poly versions of an object into XSI from your sculpting program. Then XSI's Rendermap property walks the UV space to generate a difference map. The maps can get huge, e.g. hundreds of MB for 32 bits/channel and 2K or 4K size.
I also had to write a simple shader to expose Mental Ray's vector displacement capability.
Where vector displacement gets a little more complicated is if you use tangent space. Exactly as with normal mapping, if you want to be able to deform your low poly object after generating your displacement map, then you need to use tangent space. Unfortunately, there is no standardization of how tangent space is derived among different applications (and there are several possibilities). If you want to generate the displacement map in one app and render it in another, you have to be careful that the tangent space methods match up.
Re: Micropoly displacement...?
<3CoolColJ wrote:MPD is good, but vector displacement mapping is even better
you can displace in multiple vectors rather than just outwards
ie displace a mushroom from a flat plane
obsolete asset
- thesquirell
- Posts: 428
- Joined: Fri Aug 29, 2014 3:49 am
- Location: Novi Sad, Serbia
Re: Micropoly displacement...?
I would love to see this in Indigo, as well.
Who is online
Users browsing this forum: Yandex [Bot] and 32 guests