UV map and object lods

Hello,

In Blender 2.49b i have completed a model and have it entirely UV mapped.
Now i need lods for the model to be efficient in an engine in which that model will be used once i will be finished

Until now to create lods i was using the Poly Reducer script, as unlike the decimate modifier, the poly reducer tries to conserve the UV mapping while delivering lower poly version of an original model, and often do it extremely well, perfect to create lods (though i have to manually edit the result to get a better shape).

But i wonder if doing lower poly objects manually and transfering the higher poly UV map is possible, as it would allow me to fine tune and control the lods shape in a better way.
I read and experimented about baking, but unfortunately the UV created like this need a different texture as the UV will be different after the baking.
For performance efficiency i need every lods to use the same original texture.

Is it possible then in Blender to transfer an higher poly mesh UV to a lower poly version of such mesh, or should i continue with the Poly Reducer script (and tweaking the result) method i have used so far ?

To be perfectly honest with you, what you do is wrong and ends in a mess :smiley:
May sound harsh, but it will save you lots of time if you just drop your current workflow as it is a noob approach.

For your particular problem, it is impossible.
A UV layout stores texture coordinates in floating point numbers for each vertex, an extension of x,y,z. That’s why it is called uv-layout or sometimes uvw-layout, it adds texture mapping coordinates to each vertex from 0 to 1. That value being normalized then doesnt care if the texture is 512 or 4096 px, because if vertex 10 is mapped to 0.5/0.5 it is the center of the texture no matter the size.
If you change the geometry of your model, especially with poly reducer, you kill vertices.
The uv-layout then has coordinates stored for a vertex that is non-existant anymore and therefor it does not work.

In game development you usually use what is similar to blenders multires, however it depends on the 3d suite you use. For Blender and manual LOD:

Create a low poly base mesh with the targeted polycount for the MOB in the engine.
Unwrap.
Apply multires.
Sculpt/model detail.
Bake normal maps from the high poly mesh.
export lower multires level objects.

Then you can switch the level of multires and export the models for each LOD.
The UV layout is the same for all levels, the normal, diffuse, specular and occasional shadowmaps are exported in the highest quality, the texture LOD should be handled by the engine anyways via MIPMAP.

State of the art engines handle the LOD themselves, merging edges and vertices within a given threshold and stuff like that.
There you mostly sculpt your model, texture it and once happy you retopo it, unwrap the low poly version and bake all the maps on it.
All the rest of LOD handling is done by the engine itself.

hth.

I tried to use Multires. Problem is when Multires is applied to the object, High poly model produced shrinks in outer dimension. However, Normal map made from High / Low poly model require High poly model fit over the Low poly model. It comes out the other way around!

Below I made high and low poly bent pipe. Yellow pipe has the Multires applied. It comes out smaller than original brown pipe. Yes I can expand the pipe to fit over the brown pipe by simple scaling. But to scale up the bent area is not simple at all.

Attachments


Thats because you used catmull-clark.
If you use simple subdivision as multires method the volume stays the same.
It really depends if you intend to sub-d model or sculpt and what you need.

As for scaling the bent area, if you didn´t mess up your normals and object scale in the first place (in 2.49) just press tab > a > alt+s :smiley:

[Alt] + [S] is found under Edit Mode, Mesh > Transform > Shrink / Flatten Along Normals. This function does work to expand things but it also flattens the object. Is there a function that will just expand the object all around?