Tech Question on Armor mashups and Skyrim's render engine

Post » Wed Feb 15, 2017 11:25 pm

I have been looking at some armor mods in Nifscope, working on some stuff of my own, and I noticed there are very few truly new armor meshes. Alot of armor/clothing mods are mashups and retextures of vanilla stuff, sometimes several things combined to complete a cool looking outfit. Often a whole clothing/armor mesh is used with a mostly transparent texture to use a part of the outfit... So I was curious - with all those vertices hanging around for no reason, even though a transparent texture is used, how much does that tax the game engine?

For example, there's a cool Conan armor mod that uses about 5 or so meshes of which a couple are used just for a part like sleeves or a loincloth, etc. and the rest of the mesh is invisible.

-another makes a pants version of Imperial armor by using the thieves guild armor pants (hiding the upper torso) and combines it with an imperial armor torso (which makes the skirt transparent).

-some have item meshes (like rabbits and pots, bags, etc.) hanging from the belt or attached to the armor for decoration.

a few factors:

-an alpha channel is apparently being used, which is supposed to be a bit expensive, rendering / memory-wise

-Most times, the 1st person model is fairly minimal, but alot of people play in 3rd person/vanity mode

-Also some people, including myself, use a mod like Skyrim Enhanced Camera that lets you see your character's body in 1st person, so the 3rd person model would be used in that case..

-in addition to the PC, NPCs could be wearing an outfit from such armor mods

-these complex types of mashup armors usually take a couple seconds to load in Nifscope - to me, they at least seem to take noticably a little longer than vanilla/simpler meshes

-I'm not sure if the game engine has to spend any processing power or memory on those vertices/triangles that are part of the mesh not being rendered

-afaik there isn't a way to make Skyrim ignore a part of a mesh besides rendering it with an alpha/transparent texture, so if it loads up in Nifscope and you can see hundreds of vertices in the transparent part of the model, they still have to be loaded by the game engine(?)

There are lots of cool armor mods out there like the ones I mentioned. It shows the creativity and innovation of modders. Not trying to take anything away from these, just curious about what impact they may have performance-wise

so how expensive is this kind of thing to the game engine?

or would the impact be minor as long as many parts of the combination meshes are not rendered (covered with transparent texture)?

Just curious, as people are often trying to figure out what mods are causing slowdowns and often I see the ubiquitous comment "Nothing on my mod list should be very script intensive" etc. since they are usually trying to rule out the most obvious factors, and also, since I have been working on some armor mods myself, I want to have an idea of what impact combining meshes like that will have and it may not be obvious when you are downloading big armor mods that they may have hidden factors like a complex mesh that is merely hidden by transparent texture.

Just wanting to "mod responsibly" Any modders who are knowledgeable on this kind of thing who would like to share info on this, would be appreciated, thanks in advance! (kudos if you read all that) :thanks:

User avatar
Stefanny Cardona
Posts: 3352
Joined: Tue Dec 19, 2006 8:08 pm

Post » Thu Feb 16, 2017 12:34 am

If the vertices are there they are being processed. Clipped alpha, which these models hopefully use, is significantly less expensive than continuous but still not free.

But a single instance of such a model should not cause overly many problems. An armor mesh made from five others, keeping their vertices simply counts as somewhat less than five NPCs wearing the component armors, without the AI and other costs.

So unless a ton of NPCs are wearing such armors, in already performance intensive areas it shouldn't matter. The player is a drop in a bucket far as the overall cost of rendering goes, this just makes it a somewhat larger drop.
User avatar
Jerry Cox
Posts: 3409
Joined: Wed Oct 10, 2007 1:21 pm

Post » Wed Feb 15, 2017 10:41 pm

Thanks, for the response. This is the kind of info I was looking for, basically.That's about what I figured, so it's not a huge impact if it's not used to a large extent (or just on the player), but if alot of NPCs are using in a crowded area, it becomes at least a consideration.

So, "clipped alpha" is that something I can specify with textures in GIMP or when editing the mesh in Nifscope? or is that something that the game engine handles and thus you are basically saying "hopefully Skyrim's Gamebryo -err... Creation Engine, rather - uses clipped alpha.."?

Or do you mean, if I erase part of a texture in GIMP, I should delete/cut sections rather than painting/erasing to alpha (and possibly leaving translucent/transparent texture remenants behind)?

Or does it have to do with the dds file format, i.e. DTX1, DXT3, DTX5 format.

Does it have to do with that NiAlphaProperty flag in Nifscope for "Enable Blending"?

Sorry for the basic questions; just recently beginning this journey to understanding more about texturing and editing meshes, etc. to realize a few mod ideas of mine.

User avatar
Vincent Joe
Posts: 3370
Joined: Wed Sep 26, 2007 1:13 pm

Post » Thu Feb 16, 2017 3:28 am

It's both - the texture itself can have 1bit alpha (either tranparent or opaque, no steps in between, this is DXT1 compression), or interpolated alpha (DXT5), and the mesh can be set to alpha blending (which corresponds to interpolated alpha and is thus more demanding) or alpha testing (sharp edges), or even both. DXT1 with alpha testing is the least demanding, DXT5 with alpha blending the most.

Whether you delete/cut sections in GIMP or paint/erase them to alpha makes no difference for the texture. In both cases the RGB color information of transparent pixels is preserved, and will still be if saved as DXT5. As DXT1, though, all transparent pixels are set to white.

I agree with what was already said, though - if it is only one mesh, there should be no problems. In fact, many people, including myself, are using mods like the Static Mesh improvement mod (SMIM), which makes many meshes A LOT more complex (chandeliers with 3D chains, etc.), without much of a performance impact. Contrary to what many people still believe, polygons/vertices alone are not really a big issue for today's graphics cards. Transparency, yes, that may be a thing, but probably not on a single armor mesh.

User avatar
Posts: 3392
Joined: Sun Jul 02, 2006 8:15 pm

Return to V - Skyrim