My program doesn't have bugs. It just develops random features.
A TexCoordSource is used to grab the UV coordinates from a UV Map channel other than the first one. UV Map channels are just different UV mappings for apply different skins to a mesh. They are called various different things depending on the 3D program, but Unreal mappers and the fellows at Epic tend to use 3DStudio Max terminology when talking about them, and in 3DSMax they are called Map Channels.
Note that these channels are numbered starting at 0 in Unreal, and starting at 1 in 3DSMax.
[TO DO: I am not sure how to relate all this to Maya!! AFAIK, in Maya there is no distinct idea of "channels", etc, but different parts of a model can be seperately UV-mapped, which makes them have different UV coordinate spaces, equivalent to 3DSMax's different map channels... IS THIS CORRECT???]
By default, all the materials assigned to a Static Mesh prototype (or the skins applied to a Static Mesh instance) use the UV coordinate data from channel 0 (3DSMax channel 1). To make a texture use a different coordinate mapping than this one, use a TexCoordSource. The Material property will refer to the base texture, and the ChannelSource property should be set to the UV Map Channel you wish to use.
There are various uses of this, including manually generated lightmaps (which are just textures that show only the lighting), generated in 3DSMax or Maya. Why would you use these maps instead of in-game lighting? Because Epic's in-game lighting tends to be poor and not give you the amount of control you might be looking for. For more information, see http://www.planetunreal.com/fordy/gradientssmeshtutorials/11.html.
Note that UV2Texture and UV2Mode (properties under Display) are basically shortcuts for adding skins or lightmaps that automatically (and always) use the second map channel (#1 in Unreal, #2 in 3DSMax). In otherwords, those properties are used to apply a texture that uses the second UV coordinate map associated with the mesh. You do not need a TexCoordSource if you use UV2 properties and the UV coordinate mapping for the texture is already the second one; indeed, the SourceChannel of a TexCoordSource used in conjunction with UV2Texture will be ignored anyway.
- int SourceChannel
- The channel to use as the source of UV coordinates. These start at 0 in Unreal, but at 1 in 3DSMax.
Inherited from TexModifier
- Material Material (editinlineuse)
- The base texture which will be affected by the UV coordinates from SourceChannel
- Enum TexCoordCount
- Not sure, but perhaps for specifying the number of UV Coordinate spaces in uses.
This guess comes from a look at some Maya source shader code (these comments appeared in several Maya shader source code files found online):
/// \param texCoordCount- The number of texture coord arrays provided.
/// \param texCoordArrays- The tex coord arrays provided for rendering. Used to support
/// multi-texturing. (i.e. UV or UVW)... maybe only useful for future
So it appears that texCoordCount refers to the number of UV space data-structures.
As to why each TexCoordSource would need to know how many possible UV mappings a mesh has, I have no clue.
- bool TexCoordProjected