Home Technical Talk

Creating my first environment in UE4. Some questions!

jordank95
polycounter lvl 8
Offline / Send Message
jordank95 polycounter lvl 8
Diving into my first environment piece using Unreal Engine and I have a few questions. I've really only modeled bigger props before and have started to use Substance Designer recently. 

A few questions:
1. What size textures are usually used for walls/ceilings/floors?
2. When UVing a room, do you UV the wall/ceiling/floor separately and then just use a Substance material to get your desired tiling size?
3. When modeling all the smaller assets in a scene like trash, wires, cables, papers, etc. - should I create one texture sheet for all these small props, or create a smaller texture map (256x256?) for EACH small prop I make?

Thanks guys. Just trying to wrap my head around all of this. 

Replies

  • billredd
    Options
    Offline / Send Message
    billredd polycounter lvl 13
    Here's my 2 cents...

    First, (and no offense) you have a ton of reading and learning to do on all of these subjects (as we all do).

    Second, the answer to all of your questions and probably every single other question you may ever ask is..."It depends."
    "It" (meaning everything in game dev) depends on so many factors. Here are just a FEW (there are many more): hardware platform (mobile, PC, console), what game engine (UE4, Unity), what is the purpose of this project (production game, a portfolio piece, just for fun) etc...These questions will go on and on and confuse the crap out of you for awhile.

    The more you state about your project to people and the specific end result desired the better they can help you.

    Now I will try to NOT answer your questions lol:
    Q #1 - There is no "usual size", again (IT DEPENDS) on the project, but it's always a good idea to go big and then resize smaller later as needed for performance etc.  (but not so big that it crashes your hardware or slows your machine to a crawl while your making them)

    Q #2 - IT DEPENDS (lmfao) Are you making the entire room as one model and unwrapping as one model, or modular single pieces (ie wall, floor, ceiling separate), or with a texture atlas in mind, or multiple UV channels, or separate material id's for painter to generate separate texture sets....and on and on...in your case (I'm guessing) you should probably look into "modular environment modeling" search here on polycount for good tuts

    Q #3 - IT DEPENDS (and know you hate me! lol) But..for me...for the most part, I would make all models as separate models. If you unwrap them and you have a lot of texture space left over, that space could be used for other models that also have a lot of space left on their uv's..so combining them makes sense so they share the texture set...but will be separate (meshes) in the engine.

    Now you are even more confused I'm sure LOL. There is so much to all of this, it will take time and it helps to digest it in smaller bits.
    Main thing is don't give up, just keep learning.


  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    This is great. Thanks for all the tips.

    I have another question regarding normal maps. I'm making this first environment scene to be used in VR. I've read that it's better to use geometry more than using normal maps. Beveling edges is better than using a normal map when you can etc. The scene im making is pretty stylized (sort of like Overwatch) and is pretty simple geometry wise. I have read on here to basically use normal maps for smaller objects and bevel the larger objects. But at what distance do you stop using normal maps? If something is going to be somewhat far away, but you can still see the edges, do you bevel or use normal maps?

    What is the rule to this? What are some things to keep in mind? Should I try to avoid normal maps if possible? When should I use them? When should I *not* use them?

    Another question - From a technical standpoint, whats the harm in using a single 2K map to have different textures for 4 similar objects opposed to 4 1K maps for those objects?

  • jStins
    Options
    Offline / Send Message
    jStins interpolator
    jordank95 said:
    This is great. Thanks for all the tips.

    I have another question regarding normal maps. I'm making this first environment scene to be used in VR. I've read that it's better to use geometry more than using normal maps. Beveling edges is better than using a normal map when you can etc. The scene im making is pretty stylized (sort of like Overwatch) and is pretty simple geometry wise. I have read on here to basically use normal maps for smaller objects and bevel the larger objects. But at what distance do you stop using normal maps? If something is going to be somewhat far away, but you can still see the edges, do you bevel or use normal maps?

    Well, it depends. ;) Normal maps 'work' in VR, but do have limitations and will fall apart more quickly than a traditional game. Really you should test it out. Create a few cubes at different scales (so the scale of your bevels is close to the scale they'd be on the actual assets). Make one set with modeled bevels and another with baked. Place them at various distances in your environment, throw on the headset and make a note of where the illusion does and doesn't break. 

    Also regarding texture resolution, it will vary depending on a variety of factors like billredd mentioned, BUT, you should still plan your texel density for the environment. Here's a good write up on the topic by Leonardo Lezzi.
  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    jStins said:
    jordank95 said:
    This is great. Thanks for all the tips.

    I have another question regarding normal maps. I'm making this first environment scene to be used in VR. I've read that it's better to use geometry more than using normal maps. Beveling edges is better than using a normal map when you can etc. The scene im making is pretty stylized (sort of like Overwatch) and is pretty simple geometry wise. I have read on here to basically use normal maps for smaller objects and bevel the larger objects. But at what distance do you stop using normal maps? If something is going to be somewhat far away, but you can still see the edges, do you bevel or use normal maps?

    Well, it depends. ;) Normal maps 'work' in VR, but do have limitations and will fall apart more quickly than a traditional game. Really you should test it out. Create a few cubes at different scales (so the scale of your bevels is close to the scale they'd be on the actual assets). Make one set with modeled bevels and another with baked. Place them at various distances in your environment, throw on the headset and make a note of where the illusion does and doesn't break. 

    Also regarding texture resolution, it will vary depending on a variety of factors like billredd mentioned, BUT, you should still plan your texel density for the environment. Here's a good write up on the topic by Leonardo Lezzi.
    @jStins Thanks for this. I have a few other issues that Im trying to figure out. I took a look at that the link you sent and I understand the overall guide,but still have some issues and questions.

    I've really ever only modeled main/hero assets and don't have much experience, if any, modeling for environments. Here are some questions:

    1. Am I always supposed to use normal maps on every single asset in the environment scene, unless it's something like a piece of paper or a really small asset? Is there ever a time where I should just use custom normals/smoothing groups instead of actual normal maps? For my current environment I am making for VR, I have been able to get away with using bevels and custom smoothing groups for some assets and texturing them in Substance rather than using baked normal maps. My asset then consists of a material that has albedo/roughness/metallic/AO maps and thats it. Is this the correct way to do this? Is there any disadvantage to not using a normal map?

    2. Texel density still confuses me a ton. I followed that guide a bit, but still have some questions. If I have decided my texel density is best at 512 for my scene (though I'm still confused as how I arrived at this number since 256 also looked ok enough?) and I make all of my assets in my scene have the same texel density, some assets take up the whole 0-1 UV space, while smaller items like a barrel for example, takes up very, very little. If I scale up the UVs for the barrel, then the texel density if off between those two assets.

    Heres and example (barrel is to the right of the 0-1 space):



    It just seems odd to have a main asset, like above, take up that UV space, while the barrel is so small. What am I missing here? What do I need to do?

    Thanks for the help. Been banging my head over here. 
  • heyeye
    Options
    Offline / Send Message
    heyeye polycounter lvl 6
    jordank95 said:
    jStins said:
    jordank95 said:
    This is great. Thanks for all the tips.

    I have another question regarding normal maps. I'm making this first environment scene to be used in VR. I've read that it's better to use geometry more than using normal maps. Beveling edges is better than using a normal map when you can etc. The scene im making is pretty stylized (sort of like Overwatch) and is pretty simple geometry wise. I have read on here to basically use normal maps for smaller objects and bevel the larger objects. But at what distance do you stop using normal maps? If something is going to be somewhat far away, but you can still see the edges, do you bevel or use normal maps?

    Well, it depends. ;) Normal maps 'work' in VR, but do have limitations and will fall apart more quickly than a traditional game. Really you should test it out. Create a few cubes at different scales (so the scale of your bevels is close to the scale they'd be on the actual assets). Make one set with modeled bevels and another with baked. Place them at various distances in your environment, throw on the headset and make a note of where the illusion does and doesn't break. 

    Also regarding texture resolution, it will vary depending on a variety of factors like billredd mentioned, BUT, you should still plan your texel density for the environment. Here's a good write up on the topic by Leonardo Lezzi.
    @jStins Thanks for this. I have a few other issues that Im trying to figure out. I took a look at that the link you sent and I understand the overall guide,but still have some issues and questions.

    I've really ever only modeled main/hero assets and don't have much experience, if any, modeling for environments. Here are some questions:

    1. Am I always supposed to use normal maps on every single asset in the environment scene, unless it's something like a piece of paper or a really small asset? Is there ever a time where I should just use custom normals/smoothing groups instead of actual normal maps? For my current environment I am making for VR, I have been able to get away with using bevels and custom smoothing groups for some assets and texturing them in Substance rather than using baked normal maps. My asset then consists of a material that has albedo/roughness/metallic/AO maps and thats it. Is this the correct way to do this? Is there any disadvantage to not using a normal map?

    2. Texel density still confuses me a ton. I followed that guide a bit, but still have some questions. If I have decided my texel density is best at 512 for my scene (though I'm still confused as how I arrived at this number since 256 also looked ok enough?) and I make all of my assets in my scene have the same texel density, some assets take up the whole 0-1 UV space, while smaller items like a barrel for example, takes up very, very little. If I scale up the UVs for the barrel, then the texel density if off between those two assets.

    Heres and example (barrel is to the right of the 0-1 space):



    It just seems odd to have a main asset, like above, take up that UV space, while the barrel is so small. What am I missing here? What do I need to do?

    Thanks for the help. Been banging my head over here. 
    The difference is that main asset will be 1024x1024px, and your barrel will be 256x128px. Or whatever in comparison to your main asset's texture resolution is. Right now your barrel would be using 256x128 of a 1024x1024 texture. Thats two 1024 textures, instead of a 1024 and a 256x128 texture.

    Think of it as cropping your UV space basically.

    Texel density should be done on a per-object basis. Meaning 0-1 space is used for the current save resolution of that object and its pieces. 

    So you still fill your entire 0-1 UV space with the UV's of each object. But when you save out the resolution, you just make sure the scale of the barrel's 0-1 space is still in relation to the scale of the main asset's 0-1 space.

    Here's the visualization:

  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    @heyeye this makes sense! Thank you! A couple more questions ...

    512x256 seems like an odd texture size, no?

    Also, I'm still confused about how I determine the best texel size for my scene. 
  • Mark Dygert
    Options
    Offline / Send Message
    Keep in mind it's fuzzy math and not a precise calculation that needs to be perfectly nailed, getting close enough is fan-tastic.

     Another way to think about texel density is in unique surface area, that you need to cover an object. Like wrapping a present, how much wrapping paper do you need to cover an object. 

    Come up with how many pixels you will need to detail a single flat Unreal Unit. Unreal Units are in cm so if you want 1 pixel to cover 1cm, it will take 256 pixels to cover a strip of 256cm. If you have a plane that is 256x256cm then you need 256x256px.

    If you decide that 1px : 1cm isn't enough you can adjust the ratio 4px:1cm or 8px:1cm. If your game is super realistic and you need a lot of pixels to discribe the surface you will probably need higher ratios. If it is stylized and has a lot of areas that are big flat colors then you might be fine with smaller ratios.

    Example:
    A cube has 6 sides and lets say your cube is 256x256cm, and you want all 6 sides to be unique, you will need 6 unique 256x256px texture sheets.

    But... 6 unique textures for a single object is horribly inefficient. So you try to arrange them on a single sheet. How you arrange those blocks, will determine the dimensions of your texture sheet.

    You quickly find that 6 squares can't be arranged into a square configuration unless you shrink everything and waste some space. So you decide on a rectangular sheet that is 512x768, every single pixel is used! HOO-RAY!

    But... 512x768 is a bad size for a lot of games. So you decide that two sides of the cube should share the same UV space. Now you have 4 256x256px blocks and it now fits in a square that is 512x512px. Drop the mouse, like a boss, you're amazing!  

    Remember, it's not an exact science but you do want to get pretty close and rough height and width dimensions of objects can help you get in the right zone.

    Other factors like padding come into play as you need to think what is around the UV shells when your texture mip-maps. Also it depends on how the object is unwrapped and arranged, as well as the importance of the object to the scene and the game over all.

    You might find that certain objects will always be placed with others (desk clutter, pieces that go with a certain theme, picture frames, art work ect...) so they can share texture sheets. If a prop might be broken out of the heard and placed all by itself, you might want to think of breaking it off from the pack because a giant texture sheet might be called into memory but only 1% of it is being used.

    All things to think about. Try not to think about "do I use 512 or 2048 on every object" and think about it in surface area, if that helps. Good luck! It's not an easy thing to wrap your head around but the more you marinate in it the more it will make sense. Practical application is great so get in there and start messing around with simple planes and objects. It can help to whip up a texel density sheet that you can apply to objects and check the size of the pixels.

  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    @Mark Dygert thanks for the detailed reply! One more thing I'm  confused about, when determining my texel density for my scene, how far away am I supposed to be looking at these texel density sheets? I'm working on a VR environment. So am I supposed to determine my texel density based on how close I'll get to the closest object in my scene?

    also, regarding my earlier post - am I always going to be using a normal map on every prop? What's an exception?
  • Mark Dygert
    Options
    Offline / Send Message
    That's one way to do it.

    It really depends on the game and how you need to balance performance and visual fidelity. You can drop a crate in a blank room think that  32px:1cm looks good and runs fine but then you start to populate a room and find that you are streaming in so many big textures that you need to cut that ratio in half. Lucky for you, its easier to go down than it is to up-res. Then you start to build out the world and find that it has to be cut in half again. It becomes more of a dance and less of a hard and fast rule. But it's hard to say what the rule should be without knowing the scope of the game and what else is going on.

    The important thing is to try and be consistent so you don't have some tiny popcan using a 4096 that looks ultra sharp with the a pixel covering the head of a pin (to the player), while your giant billboard using 128 is fuzzy and nasty looking with a pixel that is as big as the players face.

    Whatever your ratio ends up being, you want your pixels to be roughly the same size when the player looks at them. Again that's not a hard and fast rule but you want to mitigate gross discrepancies whenever you can.

    Working in VR is a pretty big hit on hardware resources since you're rendering everything twice, so you end up doing a lot of optimization. A lot of people find that normal maps just don't work that well and they end up going for a more stylized approach that doesn't rely on them as much for detail. Noisy games that have a lot of micro detail can be a diva to work on, toss VR in the mix and you'll understand why people run for stylized.
  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    @Mark Dygert but doesn't stylized still use normal maps? I'm working on a stylized VR environment. Should I just be beveling all my edges to get nice smooth edges instead of normal maps? Find it weird to not use any normal maps at all. 
  • jStins
    Options
    Offline / Send Message
    jStins interpolator
    'Stylized' covers a broad range of visual styles. Some stylized games will use a full range of maps, including normals while others will use a color map only. Or maybe no texture at all and vertex colors instead. I suggest you find one or two (max) games that have a visual style you'd like to emulate. Then you can give yourself a specific visual target and try to dissect how those game accomplished their look / visual fidelity.

    Start with a small corner of the environment and getting it looking good / hitting your visual target if you're still exploring style. Also post your WIP to get feedback. Sometimes it can be difficult to judge whether something looks good on your own, especially if you're still relatively inexperienced.  
  • jordank95
    Options
    Offline / Send Message
    jordank95 polycounter lvl 8
    Thanks @jStins - I experimented a bit today and realize that the style I'm doing doesn't really call for normal maps, but rather just smoothing the edges and beveling where I need to. The only thing I'm worried about is creating the extra polys/verts by beveling the edges rather than baking normal maps from high poly models. When does this become an issue?
Sign In or Register to comment.