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
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.
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?
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.
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.
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:
512x256 seems like an odd texture size, no?
Also, I'm still confused about how I determine the best texel size for my scene.
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.
also, regarding my earlier post - am I always going to be using a normal map on every prop? What's an exception?
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.
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.