Jump to content
3DCoat Forums

PPP mode depth displacement painting baked into mesh


Ascensi
 Share

Recommended Posts

  • Contributor

Hi everyone, I'm looking for help if anyone can point me in the right direction or give a simple point form process.  I've been looking  on youtube  and in the manual trying to figure out how to apply the depth (specifically displacement) information to be baked into the mesh so I don't have to use tessellation on game models -any help would be highly appreciated! thank you.

Link to comment
Share on other sites

  • Reputable Contributor

There is no way to make a displacement map really work well except on a tessellated model at runtime. You can only bake the height information into a normal map or bump map (old way) There is another way which I state below.

You will want to use Parallax mapping in your game engine for the displacement map (height). 

Parallax mapping does not need tessellation. Generally it is reserved for larger environmental assets but possible on any model really.  Parallax is expensive as a rendering technique for your FYI, Now having said that it is used in modern games though as I stated mainly for environmental assets. 

You can adjust the amount of parallax mapping, pushing out it for greater effect but you can push it too far and you will get artifacts. Unity and Unreal both support Parallax mapping.

Just a short video showing the difference between a bump map and parallax mapping.  They were really pushing it a little to much but they wanted to show the effect. Lots of Youtube videos out there on Parallax mapping.

 

Edited by digman
Link to comment
Share on other sites

  • Contributor
45 minutes ago, digman said:

There is no way to make a displacement map really work well except on a tessellated model at runtime. You can only bake the height information into a normal map or bump map (old way) There is another way which I state below.

You will want to use Parallax mapping in your game engine for the displacement map (height). 

Parallax mapping does not need tessellation. Generally it is reserved for larger environmental assets but possible on any model really.  Parallax is expensive as a rendering technique for your FYI, Now having said that it is used in modern games though as I stated mainly for environmental assets. 

You can adjust the amount of parallax mapping, pushing out it for greater effect but you can push it too far and you will get artifacts. Unity and Unreal both support Parallax mapping.

Just a short video showing the difference between a bump map and parallax mapping.  They were really pushing it a little to much but they wanted to show the effect. Lots of Youtube videos out there on Parallax mapping.

 

Applying a heightmap/depth texture to a mesh with displacement  can be done in Zbrush  and can optionally be set to create/bake a new the model  from the height/displacement information but is time consuming -  I'd have to  export everything from 3DCoat then import into Zbrush. So I was looking for a simple way to do this in 3DCoat.  I've done this before but not with the color texture, I need the texture to line up with the height map when baked to new mesh.

 

Edited by Ascensi
Link to comment
Share on other sites

  • Contributor
15 minutes ago, Carlosan said:

Export high poly is not enough ?

 

HighPoly.jpg

I'm using the latest beta and don't have that option showing on my except for export objects & textures or export for 3D printing.   I created the  subdivided/displaced painting in PPP mode and have tried to look for other export or bake options that will change the polygons permanently then decimate. 

Link to comment
Share on other sites

  • Reputable Contributor

As I have mentioned before, PPP mode is not for exporting real tessellation depth geometry that was created but the creation of normal maps and yes you can export a displacement map on any depth painting you create in PPP mode after importing a model. Your post mentioned this was about PPP mode.

I also have mentioned before Micro-vertex mode for exporting real tessellated geometry that has the real displacement. That is where you get the exporting that Carlison posted about.

Not sure the reason you would not want to use parallax mapping, as it will save on vertex count that your GPU has to render in your game engine of choice.  Unity has a limit on the vertices which I believe is around 65,000 per model still, after that  it will break apart a larger vertex count model to smaller chucks to save memory resoures.  I am not sure about the limits that other games engines have.

The call is up to you of course as an artist for your game and I am not privy to your entire workflow so am only trying to answer best way I know.

 

 

 

Edited by digman
Link to comment
Share on other sites

  • Contributor
1 hour ago, digman said:

As I have mentioned before, PPP mode is not for exporting real tessellation geometry but the creation of normal maps and yes you can export a displacement map on any depth painting you create in PPP mode after importing a model. 

I also have mentioned before Micro-vertex mode for exporting real tessellated geometry that has the real displacement. That is where you get the exporting that Carlison posted about.

Not sure the reason you would not want to use parallax mapping, as it will save on vertex count that your GPU has to render in your game engine of choice.  Unity has a limit on the vertices which I believe is around 65,000 per model still, after that  it will break apart a larger vertex count model to smaller chucks to save memory resoures.  I am not sure about the limits that other games engines have.

The call is up to you of course as an artist for your game.

Exporting "tessellation geometry" to use displacement maps was fine to export.. there were a couple  betas that didn't export them correctly but when I was informed to install the latest build it worked correctly again.

The issue I'm wanting to do now is to create and export new geometry from painting with displacement from PPP mode because the Microvertex mode doesn't seem to allow painting with smart materials (depth map influence doesn't show) -and the smart materials I've created are from 8 K scanned displacement textures that need to be painted. So unless there is a solution to be able to paint with the texture map's depth information like in PPP mode, Microvertex mode for me is not useful at all.

I'm creating models for VR - bump mapping is only good at distances but fails realism close up because in VR you see everything flat with bump mapping.  I'm aware of the file limit in Unity, so I plan to decimate as much as I can first then in Unity I have tools to make a new single optimal mesh with the texture  out of any pieces Unity makes.. then I plan to use a fragment system  for destruction so they will be smaller anyway. Then once fragmented, all the fragments are combined into a skinned mesh so there is one draw call.. each fragment inside also has an "InstantOC" component so any fragment that isn't seen by the camera (behind you, in front of you but behind another object etc) has the rendering of that chunk automatically shut off until the camera is very close to seeing it.   I can have hundreds of thousands of objects in the scene, including dense meshes and my video performance will still be high -even for VR. There are also streaming texture add-ons for Unity that allow Gb of texture data to stream on low end devices without compromising performance  so people can finally start using 8k textures or higher if they like.

I find the performance is awesome when using denser meshes compared to using tessellation. Tessellation is good for saving file size/space but not good for performance. 

So back to the topic, the displacement shows itself in PPP mode if enabled -"if the model was painted by smart materials with depth/height maps" rather than normal maps and I am simply looking for a way to convert the models into a non tessellating type of model that shows the shape & detail when it was subdivided, has view displacement enabled and painted with the height mapped smart materials.  

 

Thank you for trying to help!

Edited by Ascensi
update
Link to comment
Share on other sites

  • Reputable Contributor

I am not trying to convince you to use parallax map but from my own testing it works well and Unity saids it one of the methods of creating depth for VR or tessellation which is the other method you do not desire to use.

I know that normal and bump maps will look flat and painted on up close in VR but not parallax mapping. I have parallax mapping in a testing Unity scene in VR and it looks good from many camera angles. There are limitations of course.

I was just curious the reason you did not use parallax mapping. Even parallax mapping fails for your use?

I use the Oculus Rift by the way for pleasure and testing.

------------------------------------------------------------------------------------------------

Ok, onward...  One method to test out for what you want.  I do not go over all the ins and out and what you have to watch how for.

Import for surface mode or voxel.

Do all your adding details

Use decimate for Retopo mesh under the vox tree tab. Choose your decimation level. Ignore the warning about retopo mesh size. Set scene scale first at 1.0, Default for 3DC so your retopo mesh lines up with your decimated mesh. I will need to post about this in the beta forum, should not have to do the scene scale thing. 

Side Note: decimate for retopo was added a few versions back. I am using beta version 4.8.08

Since the mesh is decimated, use Auto unwrap to create the seams. The retopo room will be slow as it not designed for high polygons but you are only running the auto seams creation feature.

Bake to the room paint for PPP using the method shown in the picture. No normal map will be bake as none is needed. Displacement map not needed either. You could still bake the normal map if you want to  of course. No baking projection cage settings to worry about either if not baking for a normal map.

Do all your smart material work and export. This will be for color, metallic and roughness, any additional paint depth detail would have to be in a normal map but for smaller details that is ok.

You will have the decimated mesh with a uv set plus your textures... 

A Skype session is still on the table if needed.

http://wiki.polycount.com/wiki/Parallax_Map .This you might know already but for those who do not know this information and that parallax mapping works in VR though the article is just talking in general about parallax mapping.

baking.jpg

Edited by digman
Link to comment
Share on other sites

  • 4 years later...
On 12/27/2017 at 8:08 PM, Ascensi said:

The issue I'm wanting to do now is to create and export new geometry from painting with displacement from PPP mode because the Microvertex mode doesn't seem to allow painting with smart materials (depth map influence doesn't show) -and the smart materials I've created are from 8 K scanned displacement textures that need to be painted.
 

So unless there is a solution to be able to paint with the texture map's depth information like in PPP mode, Microvertex mode for me is not useful at all.

3DCoat-2022-03 
Feb 9 - 2022

- MV/Ptex painting with smart materials depth painting fixed (critical).

  • Like 1
Link to comment
Share on other sites

  • Contributor
4 hours ago, Carlosan said:
3DCoat-2022-03 
Feb 9 - 2022

- MV/Ptex painting with smart materials depth painting fixed (critical).

This seems broken in 2022.13 I used the default sphere. I did try it in one of the previous versions   11 or 12 and I was excited to finally see it working! Also adjusting Depth level in Per pixel mode doesn't seem to work with this latest build. Baking an AO layer comes out as black and painting color is faded.

Edited by Ascensi
Link to comment
Share on other sites

18 hours ago, Ascensi said:

This seems broken in 2022.13 I used the default sphere.

C:\Program Files\3DCoat-2022\data\StartMenu\mv\002_Sphere.xml point to wrong path (bad typo)

<Command>mv("Sdata/amples/sphere.obj");if(GetLastButtonIndex()==2)back(0);</Command>

Must be

<Command>mv("data/Samples/sphere.obj");if(GetLastButtonIndex()==2)back(0);</Command>

002_Sphere.xml

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...