Jump to content

Noobie question regarding LODs and textures


Herpes Melodie
 Share

You are about to reply to a thread that has been inactive for 4670 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

I probably should have known this, but I don't haha so here it goes.

What's the workflow of creating textures for different LOD meshes? If I create (I use Maya) seperate meshes to optimise LODs, I would guess I need to make seperate UV layouts as well for each mesh. This means that every mesh and every LOD is using an own texture, right? So basically you create 3 meshes, all 3 seperately UV'ed and textured or am I missing something?

Link to comment
Share on other sites

Half correct.

Yes, you can create 4 different shapes for each LOD (highest, medium, low, lowest) and you will have to unwrap them all individually. But ...

The UV-layout for the Highest_LOD will be reused for all other LOD shapes. So  when you want to keep your texturing intact all your unwraps must be "similar", i.e. must use the same UV-layout.

Here are some details: http://blog.machinimatrix.org/kettle-quest/

 

  • Like 1
Link to comment
Share on other sites

Hello.

Good question.

Also i'm a noob and iv done some tests.

-model in max (mesh)

-baked texture

-export DAE and texture

import in grid the mesh and the texture

iv used just the high detail mesh (no LOD at all, iv used the import tool LOD levels) plus the texture and it worked just fine. 

(i think is cheaper) or i'm wrong?! 

Link to comment
Share on other sites

Heya Gaia, thanks for your quick reply, this answered my question and led to another one! :)

I know that you're a Blender guru, and I know that I used to spam you with Blender questions, but at some point in my life I saw the light and ran to the evil Maya side and never looked back. But perhaps you can answer my question anyways.

My question: When making a mesh, would it be adviceable to start modelling the high LOD, UV it and from there start to remove some edgeloops to lower the resolution down? Not sure how things are in Blender, but in Maya when you remove an edge, or a complete edgeloop/ring it updates in the UV editor as well. So by doing this you could lower the resolution down of your mesh while keeping the remaining UVs (the ones that create the specefic LOD) in place.

Is this an idea?

Link to comment
Share on other sites


Herpes Melodie wrote:

 

My question: When making a mesh, would it be adviceable to start modelling the high LOD, UV it and from there start to remove some edgeloops to lower the resolution down? Not sure how things are in Blender, but in Maya when you remove an edge, or a complete edgeloop/ring it updates in the UV editor as well. So by doing this you could lower the resolution down of your mesh while keeping the remaining UVs (the ones that create the specefic LOD) in place.

Is this an idea?

Yes, sure you can do it like this. Although sometimes you will want to choose completely different topology for lower level LOD's. In that case you wil probably need to unwrap again and match. However i think that "pinning" the seams of your texture faces to fixed texture-coordinates will do a great job when you need to another unwrap.

I typically use the UV layout of my Highest LOD mesh as my initial "texture" for the lower LOD's, then Pin (mostly the seams) according to that layout. that works mostly for me. There may be more clever ways to do it and in case somebody knows, i would like to learn them too ...

  • Like 1
Link to comment
Share on other sites

You will get lower LOD meshes auto generated in that case. The cheapest way is most probably to create your own LOD's. And always take care about the Physics mesh settings. This one can give you significant cost reductions.

Hint: The default physics mesh uses the Medium LOD and generates a convex hull from it. This is in most cases not at all needed. I create the simplest possible physics mesh which may be as simple as a cube, or even a flat face if my mesh will never need any elaboate physics behaviour. this brings down physics costs to neglectable values ;-)

Link to comment
Share on other sites

What I noticed when creating my own LODs (and I'm only speaking about meshes, haven't been actively playing with sculpts) is that they are 1) cheaper 2) look better. Especially if you create low resolution meshes, your lower LODs will have hard edges etc but this is something you barely notice from a distance. SL however, when it makes LODs, will distort and deform your mesh it seems into something badly.

Link to comment
Share on other sites

You may be able to reduce the PE further if you can avoid those sharp edges. The internal mesh data structure means that vertices are stored complete with normal and UV coordinates. So the vertices at sharp edges get stored again for each face that touches them at a different angle. The same thing happens for UV map seams, so avoiding fragmentation of your UV maps can improve PE too.

Link to comment
Share on other sites

Pinning and fragmentation of UVMaps... I'm not sure I understand what you mean.

I have started using seams to control my unwrapping. Is that what you mean by pinning?

Fragmenation of UVMaps I don't under stand. The unwrap gives me parts of the object that I arrange to get what I think are good taxture assignment. I can shrink low detail areas to waste fewer pixels. I can expand parts of the UVMap to put more pixels in detailed areas. 

I have yet to figure out an easier way to make my UVMaps for the lower LoD's. I have 4 unwraps and manual tweaks of the UVMap faces. It get rather tedious. I keep thinking there has to be an easier way. I have yet to figure it out.

Link to comment
Share on other sites

Heya Drongle, I wasn't aware of all this, but I don't understand the fragmentation thingy. It would be much appreciated if you gave a further explanation! :)

Nalates, this is what I do:Lets say you a detailed mesh. With details, think about some extruded rows of faces in and out etc. A roman pillar would be a perfect example. Lets assume you made a highly detailed roman pillar. Your highest LOD (with the most detail) will be your mesh for up close in-world, obviously. Now lets say you want to create the other LODs while using your highest LOD as a base.

All those details in your pillar are made with faces, many of them that is. And those faces are made with edges. So if you would make a lower LOD of your pillar, you could delete the edges that are making the details, which reduces the amount of faces. This is where the 'pinning' is important. Depending on how you UVed your pillar, you could pin the borders of the sides of your pillar (I hope this makes sense) and remove the edges inside the borders of the sides of your pillars to get rid of the detail. By doing this you a) keep your UV layout similar because you are not moving UV pieces (shells) around b) reduce the cost for SL.

I hope this makes any sense! And if I'm wrong, do correct me.

Link to comment
Share on other sites

OK. UV map fragmentation ... I will try....

Let's assume the mesh has all smooth edges, so the there is only one normal always associated with any vertex position. Then that veertex needs only to appear once in the data, and all the triangles that meet at that vertex refer to that one entry. But, that is only if they also share the same UV coordinates too. If the vertex at that point in space occurs at two or more different UV coordinates, then there must be separate entries in the vertex list for each different UV coordinate. That is exactly what happens when you have a UV seam. The vertex is in a different UV map position for triangles on either side of the seam. So seams increase the size of the vertex list and that increases the PE (which is calculated from the data size).

Of course you have to have seams to have good texturing, so it is a worthwhile cost. I use a lot of UV stacking, where similarly textured mesh faces are superimposed on the UV map. This allows greater detail with smaller textures, but it requires cutting the mesh with lots of seams, which does have a cost, one that I consider worthwhile. That is what I call UV fragmentation. Generally though, the more you break the UV map into smaller islands, the higher will be the streaming cost.

A more extreme example happens, at least in Blender, if you merge vertices of the mesh to make the lower LODs, but forget to make the corresponding changes to the UV map. You end up with lots of separated UV islands. Sometimes each mesh face is disconnected from all others on the UV map so that every vertex has to have a unique entry in the vertex list for every triangle it appears in. That is extreme fragmentation. It was seeing the difference in the uploader vertex count when I repaired such a case that convinced me of the importance of this parameter.

I made an illustration of the internal data format that helps to explain how this vertex replication comes about.

  • Like 1
Link to comment
Share on other sites

Yes i agree but if u do design stuff "lamps,potery and others) if u go for  buildings , planes and other stuff that require a high interaction then u are kinda doomed to use a verry heavy physics mesh wich will rise the cost.

iv done a test with a bulding floor with auto LOD creation inside the importer

 

mesh tst2.jpg

and iv used for phisics the high LOD. it cost me 69 lindens to upload wich is not that bad. 

Link to comment
Share on other sites

If you used the high LOD for physics then what about the windows and curves? Surely if you filled in the windows and made the curves more squared you could probably shave off a hell of a lot of PE?

I would even consider using a large cut cylinder prim for those end parts?

I can just make out the 200 part of the PE on that but personally, for what it is, I would be devastated for that much PE lol.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 4670 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...