This page explains how to name textures, objects and source files when creating tracks, as well as where these files are typically stored.

This page is a copy of our internal documentation, you may not wish to follow such strict guidelines all the time, however some of these conventions are required all the time.


Use an underscore rather than spaces in names eg Big_Building rather than Big Building.  Otherwise things are likely to break!

Source Files

Source files such as texture PSDs and similar should be stored in an appropriate sub directory in <LocationName>\Assets\SOURCE. There is no specific naming scheme at this stage for extra source files, but we advise people to name things sensibly.

Textures

Textures should be named according to a common nomenclature. Enforcing this will help in the future if we wish to apply a texture compiler which auto converts from uncompressed textures, as well as allowing artists to find the file they are looking very quickly.

Present File Naming

Below are some notes about various features of texture naming in rFactor.

Below are a range of examples of unique identifiers.

Pre PBR, textures are named using the following standard, although it is not enforced all the time:

PBR Naming

For PBR we have standardised the naming much more. This allows us to have automated batch scripts convert textures based on the naming structure, from uncompressed to optimized for game distribution format.

As such it is proposed that textures are named as follows:

<MajorCategory>_<MinorCategory><ID>_<MipInformation>_<Type>_<TextureSequence>

Below are a list of suggested names for different types of materials. The idea here is that there should be a unique identifier which tells us what format the texture should be saved in and what it should do. These identifiers are also all unique from previous formats.

DescriptionSuffixShaderTexture Format
Albedo Maps with no alpha channel _AlbAllsRGB, RGB (RGB: Albedo)
Albedo Maps with alpha channel_AlbaAllsRGB, RGBA (RGB: Albedo, A: usually Opacity)
Albedo Map with roughness in alpha_AlbrAllsRGB, RGBA (RGB: Albedo, A: Roughness)
Metallic Roughness_MrStandardLinear, RG (R: Metallic, G: Roughness)
AO Specular_AosStandard, RoadLinear, RG (R: Specular, G: AO)
Normal_NmAllLinear, RG (RG: Normal)
Overlay (with alpha)_Ov(a)Blend, RoadLinear, RGBA (RGB: Albedo Overlay, optional alpha)
Decals (with alpha)_Dc(a)StandardsRGB, RGBA (RGB: Decal albedo, optional alpha)
Multiplication (with alpha)_Mu(a)BlendLinear, RGBA (RGB: Albedo Multiplication, optional alpha)
Pattern_PtTerrainLinear, RG (R: Pattern 1, G: Pattern 2)
Mix_MxTerrainLinear, RG (RG: Mixmap)
Groove_GrRoadLinear, RG (R: Groove upto 50% wear, G: Groove upto 100% wear)
Marble Dust Mask_MdmRoadLinear, RG (R: Marble mask, G: Dust Mask)
Blend Wet Mask_BwmRoadLinear, RG (R: Overlay Mask or Mix Map, G: Wet Mask)
Road Details Map_RdtRoad/CurbLinear, RGBA (R: Dust, G: Groove, B: Wear, A: Puddles)
Blend Map_BlStandard BlendLinear, RG (R: Blend Mask)
Emissive Map_Em(a)StandardLinear, RGBA (RGB: Emissive Light, optional alpha)
Splatter Map_SplTerrainLinear, RGBA (RGB: Blend Albedo Maps, A: Baked Shadows)
Cloud Map_clCloudsLinear, RG (R: Linear Albedo, G: Alpha Mask)

Here are some examples of file names:

Non PBR Naming

This is legacy suffix for any non PBR content.

DescriptionSuffixTexture Format
Specular Map_SpecLinear, RGB
Multiplication Map_MulLinear, RGB

Objects

Objects should be named in a similar fashion to the textures. Ensuring that they are significantly unique to ensure that we will not end up with two objects of the same name between cars and tracks. Generally with cars the objects are prefixed by the car unique identifier, so this reduces the chances of this happening somewhat. There are also some specific naming procedures for certain objects.

RaceSurface

The prefix  "RaceSurface" is required to enable Real Road calculations on objects.

3ds Max

Scenes

Max Scenes can become very large, for this reason we recommend splitting them up into smaller files.

Source files such as Max Files should be named <LocationName>_<Category>.max. For example LochDrummond_Terrain.max.

If a scene has been majorly refactored, you may wish to store a back of an old copy, this should be named with a subversion indicating it's a backup and the date it was made as such... LochDrummond_Terrain_backup210119.max.

Commonly used categories for other max files include:

However it may not be necessary to split the scene up so much depending on its size.

Max Files are stored in <LocationName>\Assets\SCENES.

Multi Materials

Be sure to use unique names for Multi Materials in 3ds Max. Materials should be split up into multiple multi materials. For instance a single multi material for terrains, a single for armco, a single for walls etc. These should be named appropriately. Each building should also have it's own unique multi sub, also matched to the object name.

To keeps these named appropriately please ensure that the multi sub materials are prefixed with the name of the circuit, and then also the building or category they cover. For example:

For generic props these of course would not necessarily need the location prefix, but should be named suitably still.

Material Naming

Sensible Naming

It's super important that material names are kept unique. When modelling TSOs, be sure to prefix unique materials by the object name. There maybe some generic materials which are reused such as Glass though, although we should still avoid such generic material names, and go for more specific material names such as Glass_Dark.

Collision and Driveable Naming Conventions (TDF File)

Materials which require collisions need to be named with certain prefixes as defined in the TDF file to activate different properties when driving on or colliding with these objects. There can be many different material names to give different roads, curbs, grass, gravel and more different surface properties. Different barriers require unique materials too, such as Armco, Walls, Fences and Tyre Barriers.

These are not case sensitive, and there can be multiple prefixes for each profile.

Below are some of the prefix examples from the recent LeMans track building include the following:

Wet Surface Materials

Final materials which need wet weather reflections enabled require a "_WET" suffix on the end of them at present, as well as wet feature enabled shader.

Layers

It is important to use 3ds Max layers effectively to ensure that objects can be quickly enabled and disabled in a large scene.  Not only will this make your workflow more efficient, it will also ensure that any other artist who has to work on the scene in the future is able to find things easily.

Firstly, anything that does not need exporting to rFactor should be saved in layers that are named with an underscore at the start of their name. This can be helper objects, splines, or even custom versions of the terrain you created to help place objects.

Examples:

Then it is advised to layer things sensibly after this, and to make use of sub layers. Below are some suggested groups, however these will expand and contract depending on the nature of the location: