User Tag List

Page 1 of 2 12 LastLast
Results 1 to 40 of 75

Thread: Lets create a complex lightmap - Open discussion

  1. #1
    1

    Lets create a complex lightmap - Open discussion

    Hi everyone,
    as many of us I'm coming from a 3dsmax/vray reality and during my first time on unreal I had to learn and understand a complete new topic: unwrap the objects to make diffuse and lightmaps!
    Now months (almost a year) have passed, I learnt some unwrap methods, I experimented, I met many other problems but still I have doubts that I'm doing a correct unwrap and in particular facing complex objects!

    I opened this thread to discuss with you about it using a similar scheme I've seen here on the forum (over all raghu's lightmass thread):


    Name:  sofa.jpg
Views: 3296
Size:  129.3 KB

    I use to export the object with 3ds in a generic fbx (I don't change any setting) and open the fbx exported in Blender, where I work to the diffuse and the lightmaps: in this experimental case the maps that I'd create would be like this

    • The diffuse map was already on the downloaded file and even if really complex it seems to work pretty well for the use of tileable texture (I'm not really caring of this one at the moment)


    Name:  sofa-diffusemap.jpg
Views: 3281
Size:  87.0 KB


    • The lightmap:

    Name:  sofa-lightmap.jpg
Views: 3263
Size:  501.8 KB

    • Pillows: I set the seams to have for each pillow the "cap" above and below, and the central part cut another time to split it like a sort of rectuangular; the ribbons are left attached to the caps

    • Frame: the main tube has a seam running through all its lenght to open it, then there are seams at every turn to divide the stright parts from the turning parts; the secondary tubes have 2 seams instead of 1 to open them; obviously I put a seam for every intersection between the main and the secondaries

    • Foots: really easy ones, splitted in two cups (above and below) and I put a seam through the central part to open it

    • Base frame: in the original file is not perfectly modeled, but I tried to split the planes and put a seam at every turn to split the central parts in many sub-parts (like the main tube with straights and turns); in this particular case it should be remodeled but since it's barely visible under all the pillows I left it as it is for now

    And this is the result in a unreal file (world setting: lighting scale 0.3; indirect bounces 20; indirect quality 10; indirect smooth 1; no compress lightmaps; no .ini file tweaked; medium quality build) with a simple material (diffuse color 0.855,0.855,0.855; specular 0; roughness 1) and lightmap resolution at 512
    Name:  sofa-play.jpg
Views: 3241
Size:  253.4 KB
    -Printscreen in playing mode-


    Name:  sofa-editor.jpg
Views: 3224
Size:  338.5 KB
    -Printscreen in editor-

    I know there is even the possibility to remodel the sofa with few meshes and bake the normals to fake all the details, but I'd like to make clear before how exactly is made a good unwrap, if there are some kind of rules or tricks that the
    more experts want to share with the newbies

    EDIT1:
    Name:  Sofa UVMap-Color.jpg
Views: 3015
Size:  828.2 KB
    Name:  Sofa-Color.jpg
Views: 2957
Size:  279.8 KB

    I've colored any parts with different colors to make more clear the UVs belonging!
    Last edited by Hainzgrimmer; 05-03-2016 at 06:32 AM.

  2. #2
    0
    It looks like the cushions are unwrapped correctly, but there's a bunch of small UV islands that I'm not sure what they go to, if they're part of a larger piece then they would get better results by attaching them to the larger pieces. As for the frame, it's long and in some cases you might have to add a loop in the middle so you can split long skinny objects in the UV's to make better use of the space.

    In other UV news, the new 2017 version of 3ds Max has a big UV editor improvment which includes better overall tools and improvements with the algorithm for unfolding and for packing. It also works much faster with objects with high poly counts.

  3. #3
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    I was going to download the mesh and take a look, but I'm getting this message from the hosting site:

    Enter decryption key
    To access this folder/file, you will need its Decryption key.
    If you do not have the key, contact the creator of the link.

  4. #4
    0
    Quote Originally Posted by ZacD View Post
    I was going to download the mesh and take a look, but I'm getting this message from the hosting site:

    Enter decryption key
    To access this folder/file, you will need its Decryption key.
    If you do not have the key, contact the creator of the link.
    Sorry guys: first time using mega and I took the wrong link! Now should work!

    Quote Originally Posted by darthviper107 View Post
    It looks like the cushions are unwrapped correctly, but there's a bunch of small UV islands that I'm not sure what they go to, if they're part of a larger piece then they would get better results by attaching them to the larger pieces. As for the frame, it's long and in some cases you might have to add a loop in the middle so you can split long skinny objects in the UV's to make better use of the space.

    In other UV news, the new 2017 version of 3ds Max has a big UV editor improvment which includes better overall tools and improvements with the algorithm for unfolding and for packing. It also works much faster with objects with high poly counts.
    I'll surely try the new 3ds max as soon as I can! the little UVs aren't from the pillows but little part like foots and turns of the base frame! as soon as I can I'll post a couple of screen to make it more understandable!
    Last edited by Hainzgrimmer; 05-02-2016 at 04:14 AM.

  5. #5
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    Could you upload it as an FBX for people that aren't using Max?

  6. #6
    0
    You could've just made a lightmap for each cushion... not the end of the world for small archviz scenes!!! Imo the lightmap contains too much stuff that even with a huger res it won't clear up!

  7. #7
    0
    Peltmapping is probaly the best way in this case to make seamleass mapping coordinates for lightmaps. Attached is a screenshot of one of your pillows. There are plenty of tutorials on youtube. It´s that fancy looking UV feature shown in the max 2017 videos. But it exists since max, I think it was 2012.
    Attached Images Attached Images  

  8. #8
    0
    Quote Originally Posted by ZacD View Post
    Could you upload it as an FBX for people that aren't using Max?
    You are right! added in the first post!

    Quote Originally Posted by heartlessphil View Post
    You could've just made a lightmap for each cushion... not the end of the world for small archviz scenes!!! Imo the lightmap contains too much stuff that even with a huger res it won't clear up!
    I'm gonna try even this one but my doubt is: won't it be too heavier for the building lights, compared to the "all in one fbx" option? surely in a small scene won't be significative, but if we have an entire house interior to project (with many objects as furniture/decoration and so on) and I apply this principle (for any complex object that causes troubles) what will happen? meaning: building time is affected by number of items or by meshes to be calculated?

    Quote Originally Posted by netfrag-sam View Post
    Peltmapping is probaly the best way in this case to make seamleass mapping coordinates for lightmaps. Attached is a screenshot of one of your pillows. There are plenty of tutorials on youtube. It´s that fancy looking UV feature shown in the max 2017 videos. But it exists since max, I think it was 2012.
    I'll try this one too! questions:
    - would I be able to set different seams on different channels? for example I would use a diffuse map existant or simple flattened one, and for the lightmap use the peltmapping: I can figure peltmap need different seams so is there a way to not lose the seams for the diffusemap^
    - using peltmapping would improve quality even using an fbx unique for all the sofa or I should follow the suggestion of heartlessphil and make separated fbx for every pillow?



    On the first post I added some screenshots to make more clear on the lightmap wich UVs belongs to what!

  9. #9
    0
    Quote Originally Posted by Hainzgrimmer View Post

    I'll try this one too! questions:
    - would I be able to set different seams on different channels? for example I would use a diffuse map existant or simple flattened one, and for the lightmap use the peltmapping: I can figure peltmap need different seams so is there a way to not lose the seams for the diffusemap^
    - using peltmapping would improve quality even using an fbx unique for all the sofa or I should follow the suggestion of heartlessphil and make separated fbx for every pillow?
    Yes, you can. In every type of mapping in max you can set a map channel (index). You can have as many as you want (well haven´t tried if there is a limit in the UE engine). I usually use channel 1 for my diffuse textures and set my unwrapping for the lightmaps to channel 2. In UE the channels start at 0. So channel 1 in max is channel 0 in UE and channel 2 in max is channel 1 in UE. When importing the fbx I turn the "generate lightmap UVs"option off, so no further channel is created on import. If you import that way the imported mesh will have the option generate lightmap uvs off and the default channel for lightmaps is 1 wich is channel 2 in max. So like this you can have whatever coordinates you want for your diffuse map default set to 0 and have the model to automatically use your unwrapped coordinates wich you created in max as channel 2. Bit confusing I know but i works pretty nice that way. Now if you need even more coordinates every further coordinate i set to 3, 4 or beyond in max. In the "Texture coordinate" node in the UE material editor you can set whatever UV coordinate index you want.

    Of course you can set you unwrapped lightmap coordinates to any possible coordinate channel or index (it´s the same). But if they are not channel 2 in max you´ll have to manually change the channel of each imported fbx in UE. One little thing. If you have an uwrapper set to channel 2 make sure a channel one exists somehow even if you don´t need it. Otherwise channel 2 is not present when importing to UE.

    Regarding your second question. Well it depends. It´s easier to unwrap if you split it up. But in general you can get the same result when keeping just one object. I for my part would split up the mesh in max by element. Unwrap each seperately. Attach all parts together again. Add another unwrapper on the assembled mesh and use this one to layout the different coordinates (by id) before exporting it to UE. On the other hand bringing a mesh over in pieces gives you the advantages to set the size of the Lightmap for each object seperately. Many smaller lightmaps are probabely better than one huge in case you need really huge lightmaps. Anyway I would go with a single mesh it ´s easier to handle .
    Last edited by netfrag-sam; 05-03-2016 at 07:11 AM.

  10. #10
    0
    Quote Originally Posted by netfrag-sam View Post
    Yes, you can. In every type of mapping in max you can set a map channel (index). You can have as many as you want (well haven´t tried if there is a limit in the UE engine). I usually use channel 1 for my diffuse textures and set my unwrapping for the lightmaps to channel 2. In UE the channels start at 0. So channel 1 in max is channel 0 in UE and channel 2 in max is channel 1 in UE. When importing the fbx I turn the "generate lightmap UVs"option off, so no further channel is created on import. If you import that way the imported mesh will have the option generate lightmap uvs off and the default channel for lightmaps is 1 wich is channel 2 in max. So like this you can have whatever coordinates you want for your diffuse map default set to 0 and have the model to automatically use your unwrapped coordinates wich you created in max as channel 2. Bit confusing I know but i works pretty nice that way. Now if you need even more coordinates every further coordinate i set to 3, 4 or beyond in max. In the "Texture coordinate" node in the UE material editor you can set whatever UV coordinate index you want.

    Of course you can set you unwrapped lightmap coordinates to any possible coordinate channel or index (it´s the same). But if they are not channel 2 in max you´ll have to manually change the channel of each imported fbx in UE. One little thing. If you have an uwrapper set to channel 2 make sure a channel one exists somehow even if you don´t need it. Otherwise channel 2 is not present when importing to UE.

    Regarding your second question. Well it depends. It´s easier to unwrap if you split it up. But in general you can get the same result when keeping just one object. I for my part would split up the mesh in max by element. Unwrap each seperately. Attach all parts together again. Add another unwrapper on the assembled mesh and use this one to layout the different coordinates (by id) before exporting it to UE. On the other hand bringing a mesh over in pieces gives you the advantages to set the size of the Lightmap for each object seperately. Many smaller lightmaps are probabely better than one huge in case you need really huge lightmaps. Anyway I would go with a single mesh it ´s easier to handle .
    Sorry I think I was misunderstood: I knew about the channels, what I wanted to know was if the seams I set on a static mesh on channel 1 (for example) can be set different on channel 2 without losing the ones on the first channel! and for seams I mean these ones
    Name:  Seam.jpg
Views: 2932
Size:  203.5 KB

    Surely your idea of peltmap all apart and, only at the end, attach all together is interesting! I'll try it!

  11. #11
    0
    Well you can copy the coordinates from let´s say channel 1 to channel 2 by adding another unwrapper. Once you set this new unwrapper to channel 2 it will ask you to move the coordinates. If you choose move you will have the same coordinates including the green map seems in channel 2. Btw. Coordinates in channel 1 are untouched by this action. It should rather be called copy than move.

    Those green map seems can unfortunately not be used as blue peel seems. At least I haven´t found a way. Once a Pelt is commited those Peel seems are gone. But you could probabely quickly recreate them by using edge loops and convert those to to peel seems with "convert edge selection to seems".

  12. #12
    0
    Sometimes for the small parts, I'll scale them up so that they get more detail even though they won't be the correct scale compared to the large sections, but in your case the issue with those small pieces is that they might be smaller than a pixel.

  13. #13
    0
    Infiltrator
    Join Date
    Mar 2015
    Posts
    11
    UV unwraping problem has been bothering me for a long time, especially for complex objects.Thx a lot Hainzgrimmer!

  14. #14
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    I decided to make a low poly mesh and bake it down, the main advantage for someone doing arch vis is you can use much lower light maps for most things (if you want nice contact shadows, you still need a pretty light resolution light map, but for anything else low resolution is fine). I used a 512 lightmap on the couch, and the Lightroom: Interior Day Light content example map. Low poly sofa is 30k tris. I did not use any textures, but you could easily add a tiling fabric texture. Normal map is 4096x4096, but honest 2048 holds up just as well at 1440p, even with close ups.





    Tomorrow I'm going to unwrap the original mesh, the FBX file is triangulated so it's a pain to UV or fix, and trying to remove it isn't perfect.

    A few tips, for light map UVs, the less seams the better. More seams means more padding between the islands, which basically forces the texel density to be lower. Less seams also means less places for artifacts.

    EDIT: One more image 1080p, with contact shadows.



    I'll upload the low poly and normal map tomorrow as well.
    Last edited by ZacD; 05-04-2016 at 01:43 AM.

  15. #15
    0
    Quote Originally Posted by ZacD View Post
    I decided to make a low poly mesh and bake it down, the main advantage for someone doing arch vis is you can use much lower light maps for most things (if you want nice contact shadows, you still need a pretty light resolution light map, but for anything else low resolution is fine). I used a 512 lightmap on the couch, and the Lightroom: Interior Day Light content example map. Low poly sofa is 30k tris. I did not use any textures, but you could easily add a tiling fabric texture. Normal map is 4096x4096, but honest 2048 holds up just as well at 1440p, even with close ups.





    Tomorrow I'm going to unwrap the original mesh, the FBX file is triangulated so it's a pain to UV or fix, and trying to remove it isn't perfect.

    A few tips, for light map UVs, the less seams the better. More seams means more padding between the islands, which basically forces the texel density to be lower. Less seams also means less places for artifacts.

    EDIT: One more image 1080p, with contact shadows.



    I'll upload the low poly and normal map tomorrow as well.
    This is huge!!! It's an exeptional work!!!
    Quick questions:
    - have you made a low poly version of the pillows from 0 (you modeled them)? or did you use a method to optimize them? in this last case I tried in past the decimation (in Blender) or the ProOptimize (in 3dsMax) but I hadn't liked so much the results (your meshes in the first post are simply perfect!), can I ask you which method did you use?

    - this may be a dumb question: is better to "quadrify" the models before start working on them and at leave the "triangulate process" to unreal when we import them? in this case the "quadrify" command in 3ds max works pretty well so we could use it before start working!

  16. #16
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    I triangulate before baking the normal map, because not doing so can cause some errors if the different apps aren't triangulating the same internally. I don't like UVing a triangulated mesh, because it makes selecting edge loops harder.

    For the low poly, all i did was create a cube with some edge loops, subdivided it, and then shrink-wrapped them around each cushion, and relaxed the mesh a tiny bit to reduce any areas where the geometry was too tight. Took maybe 10 minutes. I used cubes because they are easy to unwrap like a cardboard box.

  17. #17
    0
    When you model your high poly mesh it can help to keep the low-poly version in mind. For cushions for example, you probably have a version that would work as low-poly before you subdivide and add the wrinkle detail, so it can be a good practice to save a separate file whenever you are going to do certain changes so that you can go back and get the low-poly meshes if needed.

  18. #18
    0
    Quote Originally Posted by ZacD View Post
    I triangulate before baking the normal map, because not doing so can cause some errors if the different apps aren't triangulating the same internally. I don't like UVing a triangulated mesh, because it makes selecting edge loops harder.

    For the low poly, all i did was create a cube with some edge loops, subdivided it, and then shrink-wrapped them around each cushion, and relaxed the mesh a tiny bit to reduce any areas where the geometry was too tight. Took maybe 10 minutes. I used cubes because they are easy to unwrap like a cardboard box.
    I'm getting addicted to this method but it's not immediate as it seems! (or maybe is just because I'm a newbie xD ) can I ask you if you "multiply" your normal maps? I'm getting way better results than before even with first trials, but it not seems me so "bumby" as yours (I'm really envy! ahahahah)

    Quote Originally Posted by darthviper107 View Post
    When you model your high poly mesh it can help to keep the low-poly version in mind. For cushions for example, you probably have a version that would work as low-poly before you subdivide and add the wrinkle detail, so it can be a good practice to save a separate file whenever you are going to do certain changes so that you can go back and get the low-poly meshes if needed.
    That's for sure but (I don't know if for the other people is the same) I don't model every object/piece of furniture I put in my scenes when I make renders with v-ray: more often I buy the models I need or (if I'm lucky) I find free versions of them, so I'd like to discuss about methods to reuse models that cg-artists use everyday!

  19. #19
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    A properly baked normal map should never be multiplied or adjusted besides layering or adding additional texture or details, you should never try to decrease or increase the intensity after a bake. I baked the texture with Substance Painter, just because it's quick and easy and I could easily add a fabric texture or add details. But I'd also recommend using xNormal because it's free, but the interface is a bit awkward. My guess for the intensity issue is either there's an issue with how your are baking, or UE4 isn't processing your normal map as a normal map, make sure the normal map looks blue in the material editor.

    Honestly remodeling for UE4 isn't too hard, and sometimes it is easier making a new model and UVing it for UE4 than trying to work around lightmap errors, making good UVs for lightmaps/UE4 with a high poly model, and long bake times. Plus better performance if you are doing real time stuff. I might be weird but I actually enjoy the process, wish I could make money doing it.

  20. #20
    0
    It's actually not an issue to increase the intensity of a normal map or layer multiple ones, games do that all the time.

  21. #21
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    Quote Originally Posted by darthviper107 View Post
    It's actually not an issue to increase the intensity of a normal map or layer multiple ones, games do that all the time.
    Depends on if you are doing a sync'd normal map workflow are not. If it's a sync'd bake from a high poly model you should never mess with it, beyond layering details. If it's a tiling normal map you can really do anything you want.

  22. #22
    0
    Hey @ZacD,

    If you have any free time, can you explain us your method step by step? Maybe with printscreen pictures? Your results are amazing and i'm sure you will help lots of people about the lightmap problem.
    Last edited by goergingo; 05-06-2016 at 04:14 AM.
    Here is my basic tutorials for SketchUp to Unreal.

    SketchUp to Unreal Engine Tutorials

  23. #23
    0
    Quote Originally Posted by ZacD View Post
    A properly baked normal map should never be multiplied or adjusted besides layering or adding additional texture or details, you should never try to decrease or increase the intensity after a bake. I baked the texture with Substance Painter, just because it's quick and easy and I could easily add a fabric texture or add details. But I'd also recommend using xNormal because it's free, but the interface is a bit awkward. My guess for the intensity issue is either there's an issue with how your are baking, or UE4 isn't processing your normal map as a normal map, make sure the normal map looks blue in the material editor.

    Honestly remodeling for UE4 isn't too hard, and sometimes it is easier making a new model and UVing it for UE4 than trying to work around lightmap errors, making good UVs for lightmaps/UE4 with a high poly model, and long bake times. Plus better performance if you are doing real time stuff. I might be weird but I actually enjoy the process, wish I could make money doing it.
    well now we are trying blender or xNormal but their normal maps seem the same; I've never understood the difference between the three substance softwares (designer, painter and b2m): could you explain me? I've found online a software called Awesomebump (it's open source) but at first try I don't like the results is giving me!

  24. #24
    0
    Hey @ZacD,

    If you have any free time, can you explain us your method step by step? Maybe with printscreen pictures? Your results are amazing and i'm sure you will help lots of people about the lightmap problem.


    100x times this!!
    There's a lot of lingo here that I don't fully understand until I do it step by step... I know it's alot to ask, but this would be a huge help to upcomers such as myself. And I've been using Max for 6 months now!
    Last edited by dylan86.exe; 05-06-2016 at 08:00 AM.

  25. #25
    0
    I'm sure there are tons of tutorials for high poly to low poly normal baking on youtube! It's a technique used in like every modern games nowadays!

    Start with Allegorithmic's youtube channel. They have a lot of tutorials.

    Last edited by heartlessphil; 05-06-2016 at 09:13 AM.

  26. #26
    0
    Name:  sofa baked 01.jpg
Views: 2677
Size:  215.7 KB
    Name:  sofa baked 02.jpg
Views: 2680
Size:  236.8 KB

    ok that's my trial with all the pillows in a single fbx:
    - 28896 triangles
    - lightmap set at 2048 (I tried even with 1024 and was really the same)
    - normal map is a 4096 jpg
    Name:  sofa baked 03.jpg
Views: 2667
Size:  235.1 KB

    and this is a detail of the normal map of a single pillow
    Name:  sofa baked 04.jpg
Views: 2679
Size:  166.6 KB

    material is really a simple one (medium grey, 0.5 roughness , 0 metallic)
    light setting the same of my first opening post

    WAY better but I'm starting to think that Substance has a greater performance: I've made all with Blender, because when I had to create the normalmap I've found a way to bake it in a single map, but setting for every pillow its high poly model, its low poly one and its cage; in x-normal I haven't found a similar way to do it, so practically I would have to make a normal map for every pillow and then join all in one through photoshop!

  27. #27
    0
    Great info Hainz, can you explain with video or screenshots your method with blender?

  28. #28
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    Here's a quick guide of how it's done, might make a video in the future but was short on time.

    Images in album: http://imgur.com/a/PNuMq

    1. Get your model.
    2. Explode it into the simplest pieces.
    3. Create the low poly parts.
    4. Reuse stuff if possible to save time. (Note I did not use enough geometry for the side arms of the couch, look at picture 25 and you'll see the issue. This could of been easily fixed by starting with more geometry along where the bars would go. I did not have this issue the first time in the above posts because I checked before putting the asset in the engine.
    5. Shrink wrap
    6. Relax just a bit so the geometry isn't too tight or almost over lapping.
    7. We are just unwrapping cubes here, it's pretty simple, put a seam on every corner edge, and then remove 5 that would be in obvious places. That will help hide any tiling you do with a fabric detail texture.
    8. Done unwrapping the 8 cushions.
    9. Make sure it's one smoothing group and there's no hard edges. (Experience artists may want to put hard edges on UV seams, it can reduce artifacts on certain assets, but isn't needed here).
    10. No more hard edges.
    11. Since we are using xNormal it's best to use a cage along with the baking process, artists on Polycount have found Substance Designer/Painter do an amazing job even without cages, but I'd always suggest one if using xNormal).
    12. To create a cage you take the low poly model and push it past the over lapping high poly model.
    13. Make sure the high poly does not stick through the lowpoly anywhere. If it does, no detail will be baked there.
    14. Triangulate and export. Also I cannot spell. Also make sure you are exporting the normals
    15. Make sure this setting is checked in the plug-in settings, click the plug to get to these settings.
    16. Import the high poly, low poly, and cage.
    17. Where you add the cage.
    18. Make sure Y- for UE4
    19. Bake.
    20. Recombine mesh and export for UE4.
    21. Import normals and tangents.
    22. Make sure the normal map imported as a normal map (it should if it has normal or _n in the name, you don't have to do this ever time, but it's good to double check if it's your first time).
    23. Create a material, I added a cavity map for AO, it adds a bit of extra shadowing on the wrinkles in indirect light. The multiple is there to adjust the strength.
    24. You can check the light map UVs and make sure they look good. Set the light map resolution to 512.
    25. Bake lighting and your done, this is showing the issue mentioned on step 4. The metal does not have any light map UVs so it's completely black from the baked lighting. Didn't have enough time to explain how to unwrap that.
    26. Close up
    27. Distance
    Last edited by ZacD; 05-06-2016 at 04:03 PM.

  29. #29
    0
    nice workflow

    please a video Tutorial will be highly appreciated
    sketchup->ue4

    thanks!

  30. #30
    0
    Quote Originally Posted by ZacD View Post
    Here's a quick guide of how it's done, might make a video in the future but was short on time.

    Images in album: http://imgur.com/a/PNuMq

    1. Get your model.
    2. Explode it into the simplest pieces.
    3. Create the low poly parts.
    4. Reuse stuff if possible to save time. (Note I did not use enough geometry for the side arms of the couch, look at picture 25 and you'll see the issue. This could of been easily fixed by starting with more geometry along where the bars would go. I did not have this issue the first time in the above posts because I checked before putting the asset in the engine.
    5. Shrink wrap
    6. Relax just a bit so the geometry isn't too tight or almost over lapping.
    7. We are just unwrapping cubes here, it's pretty simple, put a seam on every corner edge, and then remove 5 that would be in obvious places. That will help hide any tiling you do with a fabric detail texture.
    8. Done unwrapping the 8 cushions.
    9. Make sure it's one smoothing group and there's no hard edges. (Experience artists may want to put hard edges on UV seams, it can reduce artifacts on certain assets, but isn't needed here).
    10. No more hard edges.
    11. Since we are using xNormal it's best to use a cage along with the baking process, artists on Polycount have found Substance Designer/Painter do an amazing job even without cages, but I'd always suggest one if using xNormal).
    12. To create a cage you take the low poly model and push it past the over lapping high poly model.
    13. Make sure the high poly does not stick through the lowpoly anywhere. If it does, no detail will be baked there.
    14. Triangulate and export. Also I cannot spell. Also make sure you are exporting the normals
    15. Make sure this setting is checked in the plug-in settings, click the plug to get to these settings.
    16. Import the high poly, low poly, and cage.
    17. Where you add the cage.
    18. Make sure Y- for UE4
    19. Bake.
    20. Recombine mesh and export for UE4.
    21. Import normals and tangents.
    22. Make sure the normal map imported as a normal map (it should if it has normal or _n in the name, you don't have to do this ever time, but it's good to double check if it's your first time).
    23. Create a material, I added a cavity map for AO, it adds a bit of extra shadowing on the wrinkles in indirect light. The multiple is there to adjust the strength.
    24. You can check the light map UVs and make sure they look good. Set the light map resolution to 512.
    25. Bake lighting and your done, this is showing the issue mentioned on step 4. The metal does not have any light map UVs so it's completely black from the baked lighting. Didn't have enough time to explain how to unwrap that.
    26. Close up
    27. Distance
    Ok now I'm getting it.

    Let's try something a little more complex. Something like this: https://www.designconnected.com/Lighting/Pendant-lights/Pendant-lamp_p2233

    (FREE DOWNLOAD)



    So far, this is about as good as I can get the model's UVW unwrapped. And I've spent about 2 hours on it. Everytime you try and sticth the smaller pieces together - they distort due to the curved geometry of the element.
    How would you approach something like this?
    Last edited by dylan86.exe; 05-06-2016 at 08:16 PM.

  31. #31
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    I would use an opacity mask for something with that many bars.

  32. #32
    0
    I'm gonna have to spend more time learning normal map baking because your couch looks amazing ZacD! It's also an intelligent way to make assets performance-wise!

    And thanks for sharing your workflow.

  33. #33
    0
    @ZacD,

    Thank you so much for explanation. I will try this method for more FPS and less built times.

    By the way, i'm really curious about complex object lightmaps like a detailed car (like McLaren car customizer).
    Last edited by goergingo; 05-07-2016 at 02:20 AM.
    Here is my basic tutorials for SketchUp to Unreal.

    SketchUp to Unreal Engine Tutorials

  34. #34
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    I probably wouldn't bake a car, you should be able to get it to look good with dynamic everything. I'll have to watch the live stream about UE4 for Enterprise again and see how they did it.

    But I should have time to remake that light fixture tomorrow.

  35. #35
    0
    Quote Originally Posted by ZacD View Post
    I probably wouldn't bake a car, you should be able to get it to look good with dynamic everything. I'll have to watch the live stream about UE4 for Enterprise again and see how they did it.

    But I should have time to remake that light fixture tomorrow.
    Your couch looks crazy good! Question though. How come you put a low poly verson of the cushions inside the high-poly before shrink wrapping it?

    This is the best result I've gotten for the light fixture. The shadows on the bench are a little jaggered with a light res of 512 but they're not too bad. Bumping up to 1024 nearly eliminates the problem.




  36. #36
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    Quote Originally Posted by dylan86.exe View Post
    Your couch looks crazy good! Question though. How come you put a low poly verson of the cushions inside the high-poly before shrink wrapping it?
    I'm not sure what you are asking, the low poly should be bigger and around the high poly before shrink wrapping. Also with the light you could probably get away with not baking a light map on it.

  37. #37
    0
    Not only you could leave those lamps to movable and not bake the lighting on it but you could also increase the dynamic shadow resolution. Try 4096x4096 res dynamic shadows. They'll look much more clean!

  38. #38
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    I went ahead with unwrapping the light fixture once I downloaded it. There was a few issues with the model I fixed and optimized for real time.









    The trick for unwrapping this was just unwrapping one of the poles that wrap around the fixture. Once it's unwrapped you can just duplicate the mesh and have the UVs for that part stacked on top of each other. When it goes into UE4, the engine will separate stacked UVs for the lightmap.

    By the way, that needed a 512 light map.
    Last edited by ZacD; 05-07-2016 at 07:33 PM.

  39. #39
    0
    So you deleted all of those bars surrounding the bulb except one, unwrapped that and then duplicated the remainder bars?
    Wouldn't you need to unwrap each one after you've duplicated them? Correct?
    And i thought if any UVs are overlapping, unreal throws a overlapping error...

  40. #40
    0
    Elite
    Join Date
    Mar 2014
    Posts
    1,478
    When creating light maps UE4 looks at each individual UV island. UV islands can overlap each other, they just can't overlap themselves. That only applies if you are having UE4 generate the light maps, if you are making them, there can't be any overlaps.

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •