Home Technical Talk

Small details in games

polycounter lvl 6
Offline / Send Message
radumitroi polycounter lvl 6
   I've been looking for an answer for some time now, but I can't find anything about this. I don't even know the proper way to search for something like this. The best example I have in mind is this table from PT.


   I am wondering how all of these small details are made, what's the proper technique for creating this. I'm talking about the all these grunge and dirt on the table, all of these really small objects. I think this kind of detail is extremely as it makes your scene look more busy, full and most important, alive.
   I assume they're modeled as any other 3D mesh, textured and then placed in the scene. But it sounds like a lot of time consuming work to create all these little objects and all their variations. Is there any technique or proper workflow for achieving this?
   I hope I'm making myself clear and you understand what I'm trying to say.

Replies

  • Eric Chadwick
    Options
    Offline / Send Message
    Yep, it just takes time to make these items. Environment artists make a collection of objects for use in a scene.

    Often these objects are optimized to fit all together into a texture atlas, so you are loading less individual texture files.

    Detail mapping is one way to add high-frequency details to larger surfaces. Often used with multi-texturing to control where the detailing appears. Decals are another useful method. Lots of ways to achieve this!
  • Eric Chadwick
  • Noth
    Options
    Offline / Send Message
    Noth polycounter lvl 15
    you would be surprised how much clutter you could make with a few objects that you duplicate and position around the environment. You would likely make most of them at once, all on one atlas and then start placing them around. You might leave some space on the atlas too, encase you think of something else you might want to add later. 
  • throttlekitty
    Options
    Offline / Send Message
    The PT demo was just the house, they obviously had the intent of making it look good up close. Rather than the current norm of having large worlds, they could afford to spend more time and resource per asset instead of creating a large number of more generic assets budgeted for large scenes.

    As for specifics, look into Substance or Quixel, having preset "smart" textures goes a long way. The brass lamp's surface for example. You could model out several types of lamps or other brass items, and automagically get an appropriate and unique grunged version of the texture for each. A traditional memory-saving method would be to create a single brass atlas that has all that you need to map all the objects on to.
  • radumitroi
    Options
    Offline / Send Message
    radumitroi polycounter lvl 6
    Thanks for your information. I'm aware of texture atlases, that's how I make pretty much all of my small objects when working on a scene. And while we're talking about texture atlases, how many textures do you think there can be fitted in a 4k texture atlas until you really start loosing quality. I know it depends on multiple factors and there is no definitive answer, but just as an idea. I add around 12 textures in a 4k texture atlas, but I have the feeling I really underestimate the number of textures you can fit in there. And by textures, I mean textures for objects such as bottles, milk gallons, cans etc. just so you get an idea of the size and importance of the objects that use that texture atlas.
  • Joopson
    Options
    Offline / Send Message
    Joopson quad damage
    Keep in mind that a 4096 is the same as 4 2048s, and each 2048 is the same as 4 1024s. So a 4096 is essentially 16 1024s, or 64 512s.
    So depending on how big the objects are, and the kind of detail necessary, you can cram quite a lot into a 4096. Though I think with current GPUs, using 4 2048 atlases might yet be more efficient than one 4096 atlas. 3 4096 textures (Albedo, RoughnessMetalnessAmbientOcclusion, Normal) take up quite a bit of space; and loading that, as opposed to selectively loading smaller files, isn't always more efficient.

    I say author your textures independently, as their own file. And figure out what resolution is necessary (keep in mind the importance of the assets, screensize, etc). Then atlas them, keeping them at the necessary resolution. I think often, it's easy to go overkill making everything a 1024, but often that's not necessary. Small simple things can fairly easily go down to 512 or 256, or even 128, if it's small and simple enough.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    A good test is to set up a texel scale scene in your 3d package with a wall/human UV-ed to a chosen scale(2m2=2K or whatever) And use one of the built-in texel calculators(don't know your package but Max, for example has a textools feature to do this) to establish texel scale on various objects. So if you have a telephone or a chair or whatever, run the texel calc and have your UV editor set to a 64/128/256/etc pixel grid. This can be a good way to establish what res textures are ideal for the various sized objects, whilst judging by the wall/human.

    So, in a sense, you're conforming your UVs to an established texel density.

    Also, I agree with @joopson on the 4Ks. Have you set up any tests in-engine? You can set up a test scene in UE, and adjust your max in-game texture res whilst comparing detail loss in the viewport and memory usage in the texture details dialogue. So whilst it's always a good idea to author texture assets at a higher res, you can clamp them in-engine. You may find that you are blowing high-res texture and memory usage unnecessarily. This is also where establishing a texel setup in your 3d package to run your assets through can save a lot of guesswork and fixing things later in-engine when play-testing, whilst ensuring tiling/unique textures are consistent.

    And strange as it may seem sometimes lowering a tiling texture res can actually increase sharpness due to mipping. :)

    And lastly, although I know this is obvious, plan your atlas textures to cut down on material calls. So all objects in a 'set' will be atlased according to their physical properties: wood set/tranparent set/metal set/etc. I know it's obvious but I just thought I'd throw it in for others that may be reading this as a new concept.
Sign In or Register to comment.