Jump to content

Help! Model displaying differently in Blender/Zbrush


DulceDiva
 Share

You are about to reply to a thread that has been inactive for 528 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello. I am a beginner, still learning how to properly use Blender, Substance Painter and Zbrush. I have the GoZ Export/Import enabled. Now, my issue is:

My model looks nice and smooth in Blender. When exporting to Zbrush,it looks faceted. When importing back into Blender again, it still looks faceted, just like it does in Zbrush. Can anyone pinpoint what I'm doing wrong? Watched a couple of tutorials and still can't comprehend what the problem is :( Photos added below.

 

blender.png

zbrush.png

Link to comment
Share on other sites

33 minutes ago, DulceDiva said:

Can anyone pinpoint what I'm doing wrong?

WHat happens is that the normals data is lost in transfer. I don't know how you made the normals smooth in the first place (there are at least thee different ways to do it it Blender) so I can't give you a detailed explanation. But first, do a quick check: Switch to edit mode in Blender and see if the shoe looks smooth or angular there. If it's angular, it's a modifier you haven't applied. Apply all modifiers and the problem should be sorted.

If that doesn't help, try to use a different file format when you export.

Link to comment
Share on other sites

25 minutes ago, ChinRey said:

WHat happens is that the normals data is lost in transfer. I don't know how you made the normals smooth in the first place (there are at least thee different ways to do it it Blender) so I can't give you a detailed explanation. But first, do a quick check: Switch to edit mode in Blender and see if the shoe looks smooth or angular there. If it's angular, it's a modifier you haven't applied. Apply all modifiers and the problem should be sorted.

If that doesn't help, try to use a different file format when you export.

Thank for your kind response. Can you please kindly explain to me what the 3 smoothing ways consist of? Also, when importing modified model back into Blender from Zbrush (adding creases/folds), I notice the vertex/triangle count increases. Is that normal?

 

Edited by DulceDiva
Link to comment
Share on other sites

20 hours ago, DulceDiva said:

My model looks nice and smooth in Blender. When exporting to Zbrush,it looks faceted.

I should just mention first that I don't use Zbrush.  I had to use Google :)

Zbrush doesn't do Smooth Shading.  A smooth look in Zbrush is achieved by increasing the topology which is probably not what you want or a good idea for a model that will be used in a real time renderer like SL.

Here is a 5 year old video explaining this :

 

and here is a link to an add-on that  perhaps makes it possible to enable smooth Shading in Zbrush  ? (Like I said earlier no guarantees, I don't use Zbrush)  :

https://mad-pony-interactive.gumroad.com/l/PMkGb    so perhaps you can ?

 

20 hours ago, DulceDiva said:

When importing back into Blender again, it still looks faceted, just like it does in Zbrush

 

To enable Smooth Shading in Blender its :

Object mode > Select Model > Object > Shade Smooth >  open the Object Data Properties tab > Normals > enable Auto Smooth and then, if necessary play with the Auto Smooth Angle value.

550652863_ShadeSmooth-min.gif.d4c7b02f5789712d1c22a4172568bd93.gif

 

If you are using Blender 3.3 or above, then instead of opening the Object Data Properties tab you will find that after Object mode > Select Model > Object > Shade Smooth >

an Auto Smooth pop-up menu at the bottom left hand corner of the 3D viewport and from there you can change the angle value.

 

Smooth Shading /Auto Smooth can also be enabled in Edit mode and applied to the selected faces.

Edit mode > select geometry to be smoothed > Face > Shade Smooth > Object Data Properties tab > Normals > enable Auto Smooth.

Edited by Aquila Kytori
  • Like 1
Link to comment
Share on other sites

On 11/8/2022 at 6:43 PM, Aquila Kytori said:

I should just mention first that I don't use Zbrush.  I had to use Google :)

Zbrush doesn't do Smooth Shading.  A smooth look in Zbrush is achieved by increasing the topology which is probably not what you want or a good idea for a model that will be used in a real time renderer like SL.

Here is a 5 year old video explaining this :

 

and here is a link to an add-on that  perhaps makes it possible to enable smooth Shading in Zbrush  ? (Like I said earlier no guarantees, I don't use Zbrush)  :

https://mad-pony-interactive.gumroad.com/l/PMkGb    so perhaps you can ?

 

 

To enable Smooth Shading in Blender its :

Object mode > Select Model > Object > Shade Smooth >  open the Object Data Properties tab > Normals > enable Auto Smooth and then, if necessary play with the Auto Smooth Angle value.

550652863_ShadeSmooth-min.gif.d4c7b02f5789712d1c22a4172568bd93.gif

 

If you are using Blender 3.3 or above, then instead of opening the Object Data Properties tab you will find that after Object mode > Select Model > Object > Shade Smooth >

an Auto Smooth pop-up menu at the bottom left hand corner of the 3D viewport and from there you can change the angle value.

 

Smooth Shading /Auto Smooth can also be enabled in Edit mode and applied to the selected faces.

Edit mode > select geometry to be smoothed > Face > Shade Smooth > Object Data Properties tab > Normals > enable Auto Smooth.

Thanks for the info. Will Shade smooth increase my model faces/vertex count/poly count? Or does it only affect the way the object is diplayed?

Link to comment
Share on other sites

SL can only do smooth shading. By having non-smooth edges you're creating extra geometry that breaks the smoothness, so smooth faces are technically cheaper, but not to a meaningful level. Smooth shading should always be the default to work off of, and add hard edges where they belong afterwards.

Link to comment
Share on other sites

On 11/8/2022 at 4:43 PM, Aquila Kytori said:

Zbrush doesn't do Smooth Shading.  A smooth look in Zbrush is achieved by increasing the topology which is probably not what you want or a good idea for a model that will be used in a real time renderer like SL.

Assuming that the OP intends to use Zbrush to add additional detail to the model (which is one of the most common uses for Zbrush) increasing the density of the topology is exactly what they'll need to do.

The idea behind the workflow is to create a low poly model, import it into Zbrush and increase the polygon density in order to sculpt additional details onto it.  Once you've finished adding details you export the high poly version and then bake the detail into normal maps, AO maps, etc. which can be applied to the low poly model.

Link to comment
Share on other sites

9 hours ago, Fluffy Sharkfin said:

Assuming that the OP intends to use Zbrush to add additional detail to the model (which is one of the most common uses for Zbrush) increasing the density of the topology is exactly what they'll need to do.

The idea behind the workflow is to create a low poly model, import it into Zbrush and increase the polygon density in order to sculpt additional details onto it.  Once you've finished adding details you export the high poly version and then bake the detail into normal maps, AO maps, etc. which can be applied to the low poly model

 

Yes, you are right.  @DulceDiva should be using Zbrush like this.

Link to comment
Share on other sites

@DulceDivaYou can find a full explanation of the concept of subdivision levels in Zbrush in the official documentation here Subdivision Levels | ZBrush Docs (I'd also recommend reading the following chapter on Dynamic Subdivision).

If you search Youtube for "zbrush subdivision" you'll find plenty of explanations and tutorials on how to use it to solve your problem with facets on your base mesh, here's a nice short one that summarizes things quite well...

I'd also recommend checking out the youtube channels of Flipped Normals and Micheal Pavlovich, two excellent resources for Zbrush users.

I don't personally use Zbrush so can't give you any specific assistance but 3D Coat works on a very similar basis so I'm pretty familiar with the workflow.

One tip I can offer is to keep in mind the resolution of your final textures and how much texel density/UV space each part of your base mesh has to work with when sculpting additional details.  You can add a few million polygons to a mesh and go crazy adding fine detail like stitching on seams, etc. but if the UV mapping of the base mesh for the part of the model you're sculpting on only occupies 256x256 pixels of the final texture all that extra detail is going to look like a grainy, pixelated mess when you bake it onto the low poly model.

Link to comment
Share on other sites

@Frionil Fang Thanks for the tip. I didn't know that! I always thought that having too much smoothness is the actual problem.

@Fluffy Sharkfin Thanks for the info & the resources. I was quite confused in regards to how developers actually create smooth models without exporting the model with lots of subdivisions. It simply baffled me.

Edited by DulceDiva
  • Like 1
Link to comment
Share on other sites

3 minutes ago, DulceDiva said:

@Frionil Fang Thanks for the tip. I didn't know that! I always thought that having too much smoothness is the actual problem.

@Fluffy Sharkfin Thanks for the info & the resources. I was quite confused in regards to how developers actually create smooth models without exporting the model with lots of subdivisions. It simply baffled me.

It really depends on how you create that "smoothness", there are right ways and wrong ways and for the purposes of SL adding a ton of extra geometry to your final model is invariably one of the wrong ways.

The most useful tool a developer has for creating seemingly high poly objects using just a few triangles is baking normal maps, and it's definitely the best approach if you're using Zbrush to add detail to your models.  I already posted this short youtube video in another thread but it is, at least in my opinion, information that bears repeating...

 

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, DulceDiva said:

@Fluffy Sharkfin I saw a YouTube tutorial for Substance Painter where it basically shows you how to bake details from a high poly mesh to a low poly one. Does it matter what software you use to do this?

The specific software used is less important than ensuring you use the correct tangent space formula, etc. to generate the normal maps.  Normal maps in the current SL materials system use Eric Lengyel's formula but once the new PBR materials are introduced normal maps will be using the much more widely supported MikkTSpace formula.

Link to comment
Share on other sites

3 hours ago, Fluffy Sharkfin said:

Normal maps in the current SL materials system use Eric Lengyel's formula but once the new PBR materials are introduced normal maps will be using the much more widely supported MikkTSpace formula.

Thanks for taking the time to share the info! Much appreciated  :) 

  • Like 1
Link to comment
Share on other sites

19 minutes ago, Quarrel Kukulcan said:

Is this only a difference in swizzle or is it more complicated?

It's more complicated.  Whereas swizzle is simply a matter of ensuring that the y axis data in the green channel is correctly oriented, there are multiple formula which can be used to calculate the tangent basis and if you don't use the same formula as the shader uses to display the end result when generating the normal map then the model won't be shaded correctly.

Here's a link to the Polycount wiki entry on normal maps and specifically the section on tangent basis Normal Map Technical Details - Tangent Basis

Link to comment
Share on other sites

33 minutes ago, Quarrel Kukulcan said:

Is this only a difference in swizzle or is it more complicated?

See Fluffy Sharkfin's post, but as someone who has been unknowningly baking MikkT normals and using them in SL without being any wiser (or anyone else pointing it out either) for years... the difference between the current tangent basis and MikkT is not super noticeable for the most part, IMO.

It's readily apparent in glitches at the edges of UV islands, and could stand out in situations like trying to normal map a sharp edged cube onto a soft shaded one, but for standard detailing of surfaces it's pretty harmless. On the plus side, all the baked normal maps I've uploaded are already MikkT so SL can only end up looking better!

Link to comment
Share on other sites

4 minutes ago, Frionil Fang said:

See Fluffy Sharkfin's post, but as someone who has been unknowningly baking MikkT normals and using them in SL without being any wiser (or anyone else pointing it out either) for years... the difference between the current tangent basis and MikkT is not super noticeable for the most part, IMO.

It's readily apparent in glitches at the edges of UV islands, and could stand out in situations like trying to normal map a sharp edged cube onto a soft shaded one, but for standard detailing of surfaces it's pretty harmless. On the plus side, all the baked normal maps I've uploaded are already MikkT so SL can only end up looking better!

Yes, although using the wrong formula to generate your normal map will still produce incorrect shading it's far less noticeable on large smooth-shaded UV islands.  It becomes more noticeable on UV seams because the values contained in the normal map are incompatible with the formula used by the shader and are producing incorrect surface normal angles which don't align correctly between the various UV islands, resulting in hard edges where they should be smooth.

From what I understand the creation of material assets will initially only be possible using an external editor prior to uploading, so it may be that you end up having to re-upload all those MikkTSpace normal maps anyway. 😲

Link to comment
Share on other sites

24 minutes ago, Fluffy Sharkfin said:

From what I understand the creation of material assets will initially only be possible using an external editor prior to uploading, so it may be that you end up having to re-upload all those MikkTSpace normal maps anyway.

I sure hope not, and to my understanding (I don't have the PBR test viewer) they already have an in-viewer asset creator, and direct glTF importing wasn't yet available back when I last saw an update on that aspect. I may be wrong, idk. Would certainly make me way less excited about the new rendering engine if the channels aren't separately adjustable in-world, or the very least allowing you to create a new asset from existing textures on the fly.

Edited by Frionil Fang
Link to comment
Share on other sites

6 minutes ago, Frionil Fang said:

I sure hope not, and to my understanding (I don't have the PBR test viewer) they already have an in-viewer asset creator, and direct glTF importing wasn't yet available back when I last saw an update on that aspect. I may be wrong, idk. Would certainly make me way less excited about the new rendering engine if the channels aren't separately adjustable in-world, or the very least allowing you to create a new asset from existing textures on the fly.

It certainly wouldn't make much sense to so drastically limit the versatility of PBR materials... unless LL have finally had enough of hosting millions of images and are planning to remove traditional texture uploads at the same time they remove the forward renderer and limit everyone to materials in gltf format only?! 😮 🤣

I'm intrigued as to how treating PBR materials as a brand new asset type will play out and how conflicts between permissions of materials and objects will impact the ability to modify objects with PBR materials applied to them, but I don't really keep up with the progress of the test viewer, etc. since I enjoy surprises so I figure I'll just wait until something exciting happens and then read about it on the forums. :P 

Link to comment
Share on other sites

There is indeed a built-in Material Editor with which you can create PBR material assets. Uploading GLTF files is working as well of course. Which is what I would recommend doing actually. The ORM map, Occlusion/Roughness/Metallic map slot is a single texture slot. The 3 maps have to be channel packed into one image. So creating proper PBR from just existing in-world textures isn't going to be that great.

Regarding the normal map. It will be MikkTSpace with a per-fragment tangent computation. Check your baking software if it has an option to switch between per-fragment and per-vertex tangent computation or, which one it is using.

The implementation of a MikkT synced workflow into SL was more difficult than expected. The SL viewer creates tangents on the fly for each object. However, when Mesh was introduced, there was no normal map support at all. When uploading a mesh, it will be internally converted to fit into a unit cube. Now, when the viewer is calculating the tangents on the fly, and the mesh has not a perfect cubic bounding box, the tangent calculation will be off. That's why we had all these shading artifacts on legacy materials, It only worked somewhat well on cubic BB meshes.

To correct that it was necessary to modify the mesh asset format itself. Means, for a synced normal map workflow, it is required that a mesh will have to be freshly (re-)uploaded to contain its original scale information to calculate the tangents properly. This does add more data to the mesh asset, so the land impact will increase slightly as well. Indeed, this does currently only work on the materials Aditi regions.
 

Edited by arton Rotaru
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Channel packing isn't really a problem since 3D Coat provides an export constructor allowing the user to assign specific maps to each of the RGB channels when exporting a set of textures (it also has support for GLTF export but I always like to check the export constructor as well so I know exactly which channels my individual maps are hiding in).

As for per-fragment vs per-vertex tangent computation, I would assume that since both methods are used in the two most popular game engines (Unreal Engine uses per-fragment while Unity does not) most modern apps capable of baking textures will provide support for both.

It's unfortunate that it was necessary to make such drastic changes to the mesh asset format, I imagine a few people are going to be miffed that they have to re-upload all their assets in order to make use of PBR but then, as the saying goes, if you want to make an omelette you have to break a few eggs.

Link to comment
Share on other sites

Yes, regardless of whether your normal maps are using the correct formula the other maps will need to be converted from PBR specular to PBR metallic and repacked into the correct channels.

However since you can edit materials in the viewer it should be possible to upload a new material with no normal map and then apply a previously uploaded normal map afterwards (assuming that the previously uploaded normal map uses MikkTSpace and doesn't include the specular exponent/alpha channel).

But you're absolutely right, given the number of maps that the new PBR system utilizes which are not part of SLs current materials system creators are going to need to rebake their textures before uploading anyway so other than normal maps that happen to use MikkTSpace there isn't much that could be salvaged and repurposed for use with the new PBR materials.

Link to comment
Share on other sites

Yes, that is totally doable. Even when uploading a .glb/.gltf it will put the individual textures in your inventory as well. 

Each map can be swapped, even via LSL. Also live editing of the PBR material is possible. That is, editing the material on an object, but the original PBR asset remains unchanged. 

There is tinting of the base color map, and the emissive map. Metal and rough have a 0 to 1 factor. 

Edited by arton Rotaru
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 528 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...