---
name: "Rvmat File Format"
type: topic
source: https://community.bistudio.com/wiki/Rvmat_File_Format
revid: 373457
updated: 2025-05-08T13:33:37Z
---

# Rvmat File Format

Rvmat files are the texture (material) files introduced with Armed Assault. Their syntax is similar to that of a [config file](../topics/Config.cpp~2Fbin_File_Format.md).

### Base Format

The minimum construct of an rvmat file is as below; however, it is recommended to use [TexGen](../topics/Rvmat_File_Format.md#texgen-usage) as described below to save on `uvTransform` declarations.

```cpp
// rgba values being replaced by the value of your choice
ambient[] = { r, g, b, a };
diffuse[] = { r, g, b, a };
forcedDiffuse[] = { r, g, b, a };
emmisive[] = { r, g, b, a };
specular[] = { r, g, b, a };
specularPower = 64.0;
pixelShaderID = "Normal";
vertexShaderID = "BasicAlpha";

class Stage0
{
    texture = "#(rgb,8,8,3)color(0,0,1,1,SMDI)";
    // uvSource = "tex"; // default uvSource is "tex"
    filter = "Point";
};
// ...
class StageLast
{
    texture = "#(rgb,8,8,3)color(0,0,1,1,SMDI)";
    filter = "Point";
};
```

#### Values

- `ambient`
- `diffuse`
- `forcedDiffuse`
- `emmisive`
- `specular`
- `specularPower`
- `pixelShaderID`
- `vertexShaderID`

##### Stage

- `texture`
- `uvSource`
- `filter`

### TexGen Usage

TexGen usage prevents `uvTransform` to be redeclared in every stage.

```cpp
ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 0 };
emmisive[] = { 0, 0, 1, 10 };
specular[] = { 1, 1, 1, 1 };
specularPower = 100;
pixelShaderID = "SuperExt";
vertexShaderID = "Super";

class TexGen0
{
    uvSource = "tex";
    class uvTransform
    {
        aside[] = { 1, 0, 0 };
        up[] = { 0, 1, 0 };
        dir[] = { 0, 0, 1 };
        pos[] = { 0, 0, 0 };
    };
};

class TexGen1
{
    uvSource = "none";
};

class Stage1
{
    texture = "z\wolf\addons\wolflogo\tex\wolflogo_nohq.paa";
    texGen = 0;
};
class Stage2
{
    texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
    texGen = 0;
};
class Stage3
{
    texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
    texGen = 0;
};
class Stage4
{
    texture = "z\wolf\addons\wolflogo\tex\wolflogo_as.paa";
    texGen = 0;
};
class Stage5
{
    texture = "z\wolf\addons\wolflogo\tex\wolflogo_smdi.paa";
    texGen = 0;
};
class Stage6
{
    texture = "#(ai,64,64,1)fresnel(1.29,0.01)";
    texGen = 1;
};
class Stage7
{
    texture = "a3\data_f\env_co.paa";
    texGen = 0;
};
class Stage8
{
    texture = "z\wolf\addons\wolflogo\tex\wolflogo_em.paa";
    texGen = 0;
};
```

<sub>Source: [BI Community Wiki — Rvmat File Format](https://community.bistudio.com/wiki/Rvmat_File_Format) (revision 373457).</sub>
