Hi everyone,
Thank you for taking the time to read my post. I am not convinced with the recommendations of the Unity developers I am working with, that's why I am asking you all for some assistance and guidance. Although I do realise, if I implement a hybrid atlas technique using 4 Map Channels, they will have much work setting this up in Unity, and I have work convincing them.
I am creating a Hero Asset, which belongs to a series (all similar brand colours). Where I need help, is with the technical aspect of the workflow. Below are a few details with the current setup
(* unavoidable):
- Usage: PC VR, and untethered VR.*
- Programs 3ds Max, Substance Painter and Unity.*
- Unity Universal Render Pipeline (Metal Standard)*
- 95% Hard Surfaces*
- SP: 4 Texture Sets
- All UV islands have their own unique UV space.
- There are roughly 40 different materials, ranging from coated metal, stainless steel, rubber and plastics.*
- LOD's will be implemented*
- Certain objects will have a neutral grey, allowing Unity to assign the colour*
- Base colour, Normal, Metallic, Glossiness, Opacity, Emmisive and AO (UV layout dependant) maps will be used*
I am using 4 texture sets to avoid a disastrously low texel density, that being said I already have a miserable texel density of 4,6 Geometry/Pixels on a 4096 x 4096 texture. I am wishing to increase the textel density, obviously without needing 10 texture sets due to draw calls.
Thoughts/solutions
I have the following methods in mind, which have pros/cons.
- 1 UV map channel / unique UV islands / most flexible / worst texel density / floating geometrie unneccessary.
- 2 Map channels. 1 für atlas texture with repeatable muster and 1 for details / overlapping UV islands / higher texel density / floating geometry required / less texture maps / no AO map possible.
- Objects with same material on one repeatable texture / UV islands have unique space / UV islands are also placed outside U1V1. (Here I have issues in SP with the world space normal bake - soluions?) / higher texel density / floating geometry needed. - of course, few objects of different materials will share the same texture space.
- Hybrid atlas, mixed with details / floating geometry needed / overlapping UV's / no AO map / better texel density / possible 2nd map channel needed.
Number 3 above is the recommended process from the developers, as mentioned above I am having issues within SP. Number 1 (I think) is the easiest, most flexible and offers more options in creativity.
Many many many thanks for your help.
Replies
We can think of this as a showcase, similar to how you might showcase a car, with the doors, bonet and boot being interactable etc.
The developers are supposed to be ready to start testing the first asset. The only thing, from my side that is missing is the animations, LOD's and floating geometry (if needed), these will be tackled later, my current issue is holding me back.
I have delivered the first test from #1 in the list above. Afterwards #3 is recommended by the developers. Now Iam standing at a fork in the road, how to progress with the placement of the UV's, how to solve the artifacts with the World space normal in SP.
Each attached screenshot is a texture Set.
Thanks again
To allow for parallel work, proxy meshes could be handed to the developers, which then get later replaced by the refined meshes. Generally I would try to get meshes in early and test the experience, to ensure the scale and placements feels good for the user. Unless it's an existing product with set dimensions.
Good luck!
We have a partial benchmark from a previous project, but for this project PC VR is possible - which changes everything. The assets is based on a real product and has exact measurements.
Previously I used 2 Map Channels, one for repeatable textures and one for non-repeatable (details). These were both Atlas's but without AO, AO woud need a further Map Channel. Floating geometry was not used, could have been implemented with enough time. This was good and worked well as the repeatable texture was used over multiple hero assets, but not all objects of the asset benefitted from this as many UV islands were within a 20px x 20px space and rubber und such materials had no detail. There is much wasted space here I know, but to give all parts the texel density they deserved was not possible. This project was for a VR mobile device, therefore performance was at a minimum.
Next step...?
I think what you said Fabi_G is one of my possible options I expanded my thoughts below. By all means please share any thoughts criticisms:
Map channel 1: single repeatable material (for example a specific metal) a big disadvantage the object count will increase (increased draw calls) as the material is tileable over all UV spaces, only objects with this material can have the same unwrap modifier applied. Fewer objects with different materials, can be placed in the U1V1 space or a trim sheet (right?)...divided by how big the UV islands/objetcs are. This methods also increases the amount of textures - but they will be reusable with other Hero Assets in the series.
Map channel 2: Lightmapping (reserved for Unity)
Map channel 3: AO, right?
Map channel 4: Atlas for floating geometry and details as seen in the 2nd image above.
I was hoping to avoid all the map channels and floating geometry...I assume with so many objects and a desire for a good texel density this is unrealistic.
Any suggestions or pearls of wisdom to share?
But are you really limited by draw calls here, or is this just an assumption? Best figure that out before optimizing for nothing and making things more complicated than they have to be.
Since the lightmap UVs are unique anyways, why not use them for AO and other masks?
@Fabi_G I shared the texture to assist in explaining a point/thought - the texture itself was not repeatable (just as you say), the areas contained overlayed UV islands.
What you describe, will be my next process, I have the geometry already setup for different object materials (rubber, plastic, stainless steel etc) using Material IDs to assist in masking in SP (ID Baker). I am unsure how to combine texture sets within SP? I have been unsuccessful in the search to this questions, would you mind sharing? (assuming I have not misunderstood).
Draw calls, is an assumption on my part. Just wish to make it as efficient as possible from the start. I am told, to wait and see. I am pretty much in a dark room with a torch - able to navigate as I bump into things. I was instructed to make it as high as possibile and it will be reduced based on the requirements, for example PCVR has different requirements to mobile VR therefore Unity will scale down/up accordingly. I have on my side certain limitations, but the main limitation is the texel densityx, which needed to be addressed (hense this post).
Thanks again for the shared info