Announcement

Collapse
No announcement yet.

Optimizing uv space for udk assets

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    An optimization like that is more suitable for mobile development, where you have to be concerned with the total number of draw calls in a scene. But if you're working on a PC (esp on a small level), you'll do yourself a huge favor by treating each object individually. Lets say you make a 2nd level that only uses a trash can but not a light fixture or AC unit etc - you'd still carry the memory overhead of the textures on the unused assets which isn't ideal. Meanwhile, as Jessie points out, using them all in a scene as (4) 512s or (1) 1024 is a wash as far as memory usage - the main downside is 3 extra materials in the scene.

    Also, consider what happens when you generate lightmaps - which is done per object. The trash can would have useful lightmap info on 25% of its map, the AC unit would its own lightmap info on another image file but using only 25% of that. And so on and so on - so really even IF all the objects are used in the scene, that extra wasted space just multiplies rapidly once lighting is baked. Now, a way to get around that is to create 5 UV map channels (1 for the textures and 4 unique ones for each object) - then set the lightmap index for each object to its respective layer. But then you have the headache of keeping that all organized - plus if you ever need to go make changes to the light fixture down the road, you have a good chance of screwing up your other objects.

    Texture sheets was a strategy in older engines, true. In this engine, optimizations can be made in places like:
    - Eliminating faces the player will never see ... ie: undersides of table legs if the table is not dynamic, caps on cylinders shoved into other geometry, backsides of objects affixed to a wall, etc etc
    - Welding verts that are co-located when it makes sense ... ie: two playing cards leaning on each other can be done with 6 verts instead of 8 if you weld the common edge
    - Careful stitching of your UV groups ... ie: if you unwrap a 6-side die into 6 independent squares - thats 24 uv verts - but unfolding into a stitched cross - thats 14 uv verts [Note: If you see a higher vert count in UDK than in Max, this is why]
    - Optimizing the usage of smoothing groups (try to use less than 4) ... Even given the above step, individual smoothing groups are still separated in the UV during the rendering pass, exploding vert counts.
    - Using parent materials and material instances ... you can create a lot of variation in textures with fewer instructions this way
    - Being smart about LODs ... that 500 poly trash can at 400 ft away is only 10 pixels tall, so why make the computer calculate all those surfaces anyway?
    - "Compress No Alpha" ... if you are not using an alpha channel in a texture, make sure you tick this option at Import, otherwise you'll carry the memory for one as a DXT5 and stead of a much smaller DXT1 texture. (There's half your memory savings right there).

    Leave a comment:


  • replied
    If you use a single 1024 map for say 4 objects, with each object getting 1/4 of the UV space, that would be equivalent in pixels to using a 512 map for each one still, but instead you would be using a 1024 map when that object is rendered instead of just a 512 map. I'd say using 512 for each object separately should be perfectly fine, and if they're similar materials, you can make 1 master material then make a bunch of material instances for the other objects and just switch out the textures you need.

    Leave a comment:


  • started a topic Optimizing uv space for udk assets

    Optimizing uv space for udk assets

    Hey I just started out trying to learn how to design using udk. I am creating several assets within 3ds max that I will import into udk to create a very small level. I know when designing games optimizing assets as best you can is very important so I was hoping someone could clarify for me a little bit in regards to textures and uv spacing. Say I have several objects that are fairly small in size. Things like a light fixture, wall AC unit, trash can etc. and these objects I would probably use a 512x512 texture map for each. Would it be better in terms of optimization to combine these objects into say 1 1024x1024 texture?
Working...
X