EddyLoonstijn opened this issue on May 24, 2007 · 35 posts
EddyLoonstijn posted Thu, 24 May 2007 at 1:12 PM
I followed the instructions from the Pixologic-site to create a displacement map in ZB3; meaning I ended up with an alpha which I exported.
The lowresmesh from which I started I imported in Poser7. That only worked out all right if I imported with normals flipped.
Then I applyed the alpha as a displacement map in Poser7. Rendered and some weard things happened with the mesh. It seemed asif the displacement moved into the inside of the mesh.
Maybe that has also to do with the flipped normals?
Can someone who succeeded where I failed help me?
SAMS3D posted Thu, 24 May 2007 at 3:22 PM
I hope someone can help, I would like to see the answer, I use Poser 7 also. Sharen
pjz99 posted Thu, 24 May 2007 at 5:36 PM
From reading the Zbrush forum there appears to be a bug with import and/or export of Wavefront OBJ that may be hurting you here, see the Zbrush forum.
bagginsbill posted Thu, 24 May 2007 at 9:10 PM
Negate the numeric value in the displacement channel - that will reverse the sense of the disp map.
Basically the normals (and your displacements) were all backwards. You flipped the normals, but the displacements were still specified in the direction before you flipped them. If you set a disp-map up with a value of, say .02, then -.02 will do the same amount, but in the opposite direction.
A lot of people think that displacement can only be "outward" but that's because you can't make an image with "negative" numbers. A negative displacemnt is "inward", and you can get these by either doing math on an image (for example, mutiply * -1 as I'm discussing or you can subtract .5 - thus 0 to 1 becomes -.5 to .5) or you can generate displacements entirely without images, using nodes alone.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
EddyLoonstijn posted Fri, 25 May 2007 at 7:12 AM
Thanks bagginsbill for the suggestion,
I will try this one out.
EddyLoonstijn posted Sat, 26 May 2007 at 4:48 AM
Hai bagginsbill,
Back again but applying the displmap does not do something that I could see in Poser after rendering in FireFly with 'use displacement' checked. Also using a negative displacement amount does not show up.
So I'm really stuck.
bagginsbill posted Sat, 26 May 2007 at 10:13 AM
Eddy,
There is something important that you are not telling me, probably because you don't know it is important.
You said in your first post that you SAW displacement and it was INWARD.
I instructed you to negate the displacement amount in the shader - i.e. if it said .83, change it to -.83. If it said -.35, change it to .35.
Given that you DID see displacement, and the only change you made was to flip the sign of the amount, then it is impossible that you no longer see displacement, or that the displacement is the same inward as before.
As you have given me almost no information, I have to take wild guesses at what you're doing wrong. If you show me your material, and a render of it, with positive, 0, and negative displacement, I might see the problem. Since you claim that you had inward displacement, you have to prove to me that you're manipulating the right shader zone - that is why I want you to show with postivie, 0, and negative. They HAVE to look different.
Many people get confused by multiple material zones and they modify the PREVIEW zone. This ZONE does nothing when the figure is completely covered by other zones. They spend days insisting they did all I said and saw no changes. This was because they were accidentally not telling the truth - they were changing SOMETHING, but not the thing I told them to change.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
ClawShrimp posted Sat, 26 May 2007 at 8:10 PM
Screen grab?
*Materials room.
*Example render.
*Displacement map generated.
My experience with DispMaps is limited, but I've never really had any problems I couldn't solve.
If we can hit that bullseye, the rest of the dominos will fall like a house of cards...checkmate!
stonemason posted Sat, 26 May 2007 at 11:35 PM
here's an example of the node setup for zbrush generated maps..as Baggins mentioned you'll need to tell Poser to use 'outward' & 'inward' displacement via the subtract node
Cheers
Stefan
EddyLoonstijn posted Sun, 27 May 2007 at 5:52 AM
Dear ZB_P7helpers,
I have made a remake of my problematic works with pictures to illustrate so you can see for your self what I am doing (wrong).
[However I don't know how to place the .bmp screenshots I made for this purpose into this reply-box. So you can instruct me how to do that, then I can give you an illustrated version of this reply!]
First I made in ZBrush 3 a simpel lowsres mesh that has already some characteristics of the headmesh I want to displace later on in Poser 7:
<Displ_MT.bmp>
Because it is just for learning how to do so I made a highres mesh to displace to which has some highly visible features, like R (right) and L (left) on the cheeks, a big nose, etc:
<Displ_HiRes.bmp>
The displacementpallet ( mode is on to get a displ.map in stead of just a bumpmap) generated an alpha which I flippedV, as you suggested) and exported:
Then in Poser 7 I imported the LoRes headobject:
<PoserImport_LoResHead>
I prepared the Rendersettings for displacement in FireFly:
Finally I imported the exported alpha as a displacementmap, I checked "displacement" and put in AdvancedMaterialsRoom a Substractnode in between (like in Stonemason's example); then finally I rendered the picture:
<DisplMap_InPoser_SubtractNode_IncRender>
And as you can see, nothing is happening in any way to displace the LoResMesh.
So, I hope this description of my workflow will help you in helping me (and I hope many other ZB3 to P7 users)
Greetings, EddyL
EddyLoonstijn posted Sun, 27 May 2007 at 5:55 AM
Dear ZB_P7helpers,
I have made a remake of my problematic works with pictures to illustrate so you can see for your self what I am doing (wrong).
[However I don't know how to place the .bmp screenshots I made for this purpose into this reply-box. So you can instruct me how to do that, then I can give you an illustrated version of this reply!]
First I made in ZBrush 3 a simpel lowsres mesh that has already some characteristics of the headmesh I want to displace later on in Poser 7:
<Displ_MT.bmp>
Because it is just for learning how to do so I made a highres mesh to displace to which has some highly visible features, like R (right) and L (left) on the cheeks, a big nose, etc:
<Displ_HiRes.bmp>
The displacementpallet ( mode is on to get a displ.map in stead of just a bumpmap) generated an alpha which I flippedV, as you suggested) and exported:
Then in Poser 7 I imported the LoRes headobject:
<PoserImport_LoResHead>
I prepared the Rendersettings for displacement in FireFly:
Finally I imported the exported alpha as a displacementmap, I checked "displacement" and put in AdvancedMaterialsRoom a Substractnode in between (like in Stonemason's example); then finally I rendered the picture:
<DisplMap_InPoser_SubtractNode_IncRender>
And as you can see, nothing is happening in any way to displace the LoResMesh.
So, I hope this description of my workflow will help you in helping me (and I hope many other ZB3 to P7 users)
Greetings, EddyL
EddyLoonstijn posted Sun, 27 May 2007 at 5:57 AM
Dear ZB_P7helpers,
I have made a remake of my problematic works with pictures to illustrate so you can see for your self what I am doing (wrong).
[However I don't know how to place the .bmp screenshots I made for this purpose into this reply-box. So you can instruct me how to do that, then I can give you an illustrated version of this reply!]
First I made in ZBrush 3 a simpel lowsres mesh that has already some characteristics of the headmesh I want to displace later on in Poser 7:
<Displ_MT.bmp>
Because it is just for learning how to do so I made a highres mesh to displace to which has some highly visible features, like R (right) and L (left) on the cheeks, a big nose, etc:
<Displ_HiRes.bmp>
The displacementpallet ( mode is on to get a displ.map in stead of just a bumpmap) generated an alpha which I flippedV, as you suggested) and exported:
Then in Poser 7 I imported the LoRes headobject:
<PoserImport_LoResHead>
I prepared the Rendersettings for displacement in FireFly:
Finally I imported the exported alpha as a displacementmap, I checked "displacement" and put in AdvancedMaterialsRoom a Substractnode in between (like in Stonemason's example); then finally I rendered the picture:
<DisplMap_InPoser_SubtractNode_IncRender>
And as you can see, nothing is happening in any way to displace the LoResMesh.
So, I hope this description of my workflow will help you in helping me (and I hope many other ZB3 to P7 users)
Greetings, EddyL
pjz99 posted Sun, 27 May 2007 at 6:01 AM
I don't think your attached images are quite showing through :) And by the way, you may want to convert .bmp files to .jpg format (compress the image so the forum will allow you to post it).
by the way if you had not looked at this already, you may want to take a close look at the ZB wiki doc on displacement maps, it has some very specific steps:
http://www.zbrush.info/wiki/index.php/Tool:Displacement_Subpalette
EddyLoonstijn posted Sun, 27 May 2007 at 6:48 AM
Hi pjz99,
Thx for your comment. I converted my bmp-illustrations into .jpg for the web, but how do I get them on the right places in my replytext?
Waiting (im)patiently
EddyL
bagginsbill posted Sun, 27 May 2007 at 7:00 AM
Eddi,
Take each screen shot and save it as jpg and make sure the size is under 200K bytes. Renderosity forums limit the size of attached images.
Then post each using the Attach a File: feature, beneath the text editor. Use the "Browse..." button to select the image you want to show us.
Do this once for each image.
If you have photoshop, the best way to compress is to use photoshop's "File/Save for Web" option. This uses better algorithms than "Save As" does. If an image cannot fit in 200K, reduce its size first.
But don't reduce matroom screen shots in size - then we can't read them. Just push the nodes closer together.
Can I also suggest this? Until you've successfully used displacement, you should try doing it with something we know works. Go to your figure. Attach a Turbulence node to the Displacement channel, with a Displacement Value of .5. Render your figure. If you do not see the displacement, then:
If it still doesn't show displacment, perhaps your display units are wierd, soincrease the .5 displacement value to 5 and render. If it still shows no change then increase the 5 to 50 and render. If it still doesn't show displacement, then I suggest you try pottery instead of computer graphics :biggrin:
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
EddyLoonstijn posted Sun, 27 May 2007 at 7:34 AM
And get it on top of this reply.
Greetings EddyL
pjz99 posted Sun, 27 May 2007 at 7:48 AM
The forum doesn't support adding images to posts that way, but you can make a separate post that contains each image, or you can store the images on some web service and then link them here with the editor functions (much easier to just make separate posts for each image).
EddyLoonstijn posted Sun, 27 May 2007 at 7:52 AM
Thx pjz99,
You are very helpful.
I do as you suggest
Greetings
EddyL
EddyLoonstijn posted Sun, 27 May 2007 at 11:10 AM
I'm not completely stuck anymore, thanks to your advise!
As you will see on the pictures I have succeeded in displacing the lores object in Poser.
In this reply I show you the 'original' HiRes object in ZB3
Because this one is just for learning I made a highres mesh that has some highly visible features, like R (right) and L (left) on the cheeks, a big nose, etc:
(Will be continued in next Reply)
EddyLoonstijn posted Sun, 27 May 2007 at 11:22 AM
-Then in Poser 7 I imported the LoRes headobject with Flip Normals checked:
-I prepared the Rendersettings for displacement in FireFly:
-Finally I imported the exported alpha as a displacementmap, I checked "displacement" and set the depth of displacement to 1,5;
-Then finally I rendered the picture.
As you can see there is - at last Halleluja! - something that resembles the ZBrush hires head.
But there is much difference, that I cannot account for nor can I change that one.
It would be very nice if someone could help me some further it making it somewhat better.
EddyLoonstijn posted Sun, 27 May 2007 at 11:26 AM
EddyLoonstijn posted Sun, 27 May 2007 at 11:47 AM
BTW: The displacement strength is set to 1,2
bagginsbill posted Sun, 27 May 2007 at 12:09 PM
Good job.
The reason you may or may not need to do Displacement - .5 is that you need to take into account that displacements can be positive or negative. In a image map, this is handled by letting 50% gray represent "no displacement". But numerically 50% gray means .5 times displacement, White, numerically 1, means 100% displacement. Black, numerically 0, means 0% displacement. By subtracting .5 (50%) you get the following:
100% => 50%
80% => 30%
50% => 0 % (No displacemnet)
20% => -30%
0% => -50%
The other issues of why this is not working out for you perfectly may have to do with the scaling. You need to get the total displacement amount to be the same as was internally used by ZBrush before converting that to an image. I don't know anything about Zbrush so can't help with that.
The other thing that may be different, is it looks like ZBrush was starting from the premise of un-smoothed polygons. So perhaps you should turn off smoothing on this figure in Poser. The small curved waves below the "ear" look like mismatch on smoothed versus unsmoothed low-poly.
Remember that the purpose of smoothing is to make a rough, choppy, low-poly figure into a smooth one that looks very high-poly. It is an automatic form of displacement. But you're trying to get the ZBrush defined displacement to do that. As a result, you may have BOTH going at once.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
EddyLoonstijn posted Sun, 27 May 2007 at 12:27 PM
Thanks Bagginsbill for your good help. Now I understand the negative issue better.
I uncheckes the Smooth polygons, but this didnot make any difference.
Greetings, EddyL
bagginsbill posted Sun, 27 May 2007 at 3:45 PM
Perhaps you are just seeing the limits of resolution obtainable with only 256 levels of displacement.
In the attached image, from an image I used in another discussion on displacement, I rendered a face entirely based on displacement - the one on the left is 8 bits - the one on the right is 9.58 bits. (Don't worry what that means) The point is, even just a little more bits per pixel can make a big difference.
Are you using P7? Perhaps P7 can let you use one of those newer file formats that hold 16 bits. And perhaps ZBrush can export 16-bit displacement?
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Khai posted Sun, 27 May 2007 at 4:16 PM
a lot of Zbrush -> poser Displacement information here -
http://forum.daz3d.com/viewtopic.php?t=25013&highlight=zbrush+wacro++bit
and how to export smooth 16bit maps from Zbrush into Poser with a WACRO for importing the D88 file exported from Zbrush using the Displacement Exporter. (found here - http://206.145.80.239/zbc/showthread.php?t=029789 )
Khai posted Sun, 27 May 2007 at 4:18 PM
***Perhaps P7 can let you use one of those newer file formats that hold 16 bits. And perhaps ZBrush can export 16-bit displacement?
****as such no. but Stew's WACRO allows you to load in a 16bit D88 format file exported from Zbrush into Poser and have that rendered correctly (posers 5,6,7) it also allows you to load JPG's in and have them render smoothly.
pjz99 posted Wed, 13 June 2007 at 8:20 AM
bagginsbill posted Wed, 13 June 2007 at 8:53 AM
PJZ:
Off topic - that's a great texture and skin shader there. What are you using?
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
ClawShrimp posted Wed, 13 June 2007 at 7:51 PM
Great proof of concept pjz99.
That ear crease is something I've learned to live with from using Carodan's face wrinkle displacement on Apollo.
If we can hit that bullseye, the rest of the dominos will fall like a house of cards...checkmate!
bagginsbill posted Wed, 13 June 2007 at 9:16 PM
Load the disp map into some tool where you can eye-dropper the neutral gray. It may not be exactly 50%. Suppose it is 51%, then you need to subtract .51 to bias the neutral level correctly.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
ClawShrimp posted Wed, 13 June 2007 at 9:19 PM
I just assumed there was nothing I could about it!
Is there anything you don't know? :)
If we can hit that bullseye, the rest of the dominos will fall like a house of cards...checkmate!
bagginsbill posted Wed, 13 June 2007 at 10:23 PM
LOL.
Now that I think about it, I was wrong to tell you to subtract .5. Poser's interpretation of the 8-bit values in a height image map is that these are fractional parts of 1, represented as values from 0 to 255. So to calculate the Poser fraction for any given 8-bit value, divide by 255. So 255/255 = 1. And 0/255 = 0 Now show me the integer value for .5. You can't - there is no integer value K, such that K/255 = .5.
So, I'm guessing that the "neutral" value in your zbrush disp map is 128. Numerically, Poser will see that as 128/255 which is approximately .5019607843137 - you probably should be using that as your bias.
If, however the neutral value is 127, then you need to subtract 127/255 which is approximately .4980392156863
When you find out which is correct, let me know so that I know what to tell people from now on. I've been telling the subtract .5 story for quite a while. That works fine if you use it on the whole figure or prop. Nobody I've talked to about this ever used displacements selectively on a subset of material zones, so the issue of mat zone boundary disagreement is new to me.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
pjz99 posted Wed, 13 June 2007 at 10:31 PM
That's a modified version of the DAZ V4 high-rez materials. The shader settings are pretty much set to default, the texture has been modified kind of a lot (lightened, a faint bit of freckles). Probably the biggest change is actually the lighting, also your suggestion originally; 4096 shadowmap and shadow min bias of something like .2 or .25 ... setting it smaller tends to make the shadow go funny, with a visible bright offset from the part casting the shadow.
I tried a variety of values to subtract all the way up to 1.0, and I'm satisfied with .5 really - as you say the proper thing to do is use a displacement map on all the zones so this isn't an issue, or be prepared for a little bit of postwork.
Phuzzie posted Fri, 15 June 2007 at 3:28 PM
Hey Baggins...
THANK YOU !..
I am just nosing around the forums trying to learn odds and ends so that I can eventually be good at this and the explination of the positive and negative displacement was OUTSTANDING. I am sure that it will come in handy later.
;-)