From Valve Developer Community
Jump to: navigation, search

This seems like a merge with a Materials page or has info about materials more than skinning—ts2do (talk) 16:00, 14 Oct 2005 (PDT)

Skins are actually a set of materials applied to a model—ts2do (talk) 16:12, 14 Oct 2005 (PDT)

terminology in VDC glossary definitions

Skinning is applying a texture to an unwrapped model. This adds color, texture and modifies the overall appearance of a model. Sometimes skinning is also used to refer to linking the model to its skeleton, although rigging is the proper term for that.

It's really difficult to pin down many of these "common use" terms. I guess they started out with a particular meaning but have been corrupted by Chinese Whispers and sloppy semantics. IMO it might be a good policy for VDC "glossary" articles to avoid trying to define them too strictly, and simply use #REDIRECT or a very brief disambiguation page linking to the relevant Source-Standard-Terms (which should be keyed from usage in C++ Source Code).

  • Skin : In source, "skin" is definitely used to refer to the VMT applied to a Model; as in skin options.
  • Skinning : so (logically) "skinning" would be naming the VMT file to assign to the mesh.
    • Skinning = UV mapping ? : "Creating/editing a UV map" is not necessarily the same as "assigning a Material"; you can switch the Material without altering the UV map coordinates. Also, in practice you can't use a VMT for UV mapping, you use a TGA or a VTF with the same name as the Material. In the SMD data, the UV_texture_name and extension is referenced for every triangle. So presumably StudioMDL just dumps the extension and uses the UV_texture_name as the default VMT filename, ie Skin_0 = "UV_texture_name.vmt".
    • Skinning Brushes ? : It's easy to understand why people would use "skinning" (like "texturing") for UV mapping or assigning a Material to any piece of geometry : Brush, Sprite, Model, etc. If only Valve had chosen to call a VMT a "Skin" life would have been much easier! If in Source skin = VMT, "skinning" a brush would be more accurate than "texturing" a brush.
  • Rendermesh : Sometimes "skin" used to refer to a model's deformable mesh (geometry). Looking at the data in a simple SMD, it's easy to see why - the Vertex coordinates and UV coordinates are all in the same matrix per triangle. However, if we use "skin" as the nominated VMT (2D pixel-data component), we need to distinguish it from the 3D mesh ($texturegroup skinfamilies do not allow mesh changes, only $bodygroup does that). IMO using "Render mesh" (or renderbox, render model, etc) makes this distinction, and also helps to distinguish it from "Collision mesh", etc. whilst allowing inclusion of both the primary "reference.mdl" and any "reference_lod.mdl"s.
  • Enveloping seems to be something to do mapping/attaching the Deformable mesh (="Envelope" = "Rendermesh" ?) to the Skeleton (as opposed to tying each rigid, convex part of a ragdoll collision model to each bone).
    • Characters in Half-Life 2 are enveloped (skinned) to a skeletal rig. The skeletal rig is then animated to deform the envelope. These animations are then stored in the XSI Mixer and later exported to individual SMD files. (from Rigging_your_Custom_Character)
  • Wrapping is the same as skinning or enveloping ?
  • Rigging:
    • it helps to make a distinction in XSI between the Skeleton and the Rig. The Skeleton is a hierarchy of deformers, as simple as possible and with one parent bone (usually the hips) that we use to deform the mesh. This is what gets exported and is the skeleton we see in game. The Rig is a separate hierarchy of controls that we use to animate the Skeleton (as needed) -- often the skeleton is constrained or somehow attached to the rig; but is not in the same hierarchy. (from Skeletons_and_Rigging)
  • Bones (aka Deformers) make up the Skeleton. So what is the term for "creating/editing the skeleton" if not Rigging?
  • Texture vs Material These are supposed to refer to the VTF and VMT respectively. Unfortunately, this goes against the grain of not only common usage ("Texturing") but also variable names, etc in code (eg $texturegroup). This is a real pain in the ass for documentation (and I have tried!). I'm tempted to say : let "Texture" and "Material" refer to the same thing - a VMT - and let VTF just be a rasta image data file used in Source. Instead of talking about a Materials "textures", call them (collectively) pixelmaps, and individually colormap, normalmap, specularmap, etc etc.

--Beeswax 10:58, 28 Apr 2008 (PDT)