Lightdef Asset: Difference between revisions

From COD Engine Research
No edit summary
Line 27: Line 27:
</syntaxhighlight>
</syntaxhighlight>
lmapLookupStart is a constant value for all lightdefs. Only name and the attenuation change.
lmapLookupStart is a constant value for all lightdefs. Only name and the attenuation change.
== Modern Warfare 3 & Ghosts ==
== Modern Warfare 3 & Ghosts & Advanced Warfare ==
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
#pragma pack(push, 4)
#pragma pack(push, 4)
Line 45: Line 45:
</syntaxhighlight>
</syntaxhighlight>
The MW3 lightdef uses 2 attenuations, so the current source format will not work.
The MW3 lightdef uses 2 attenuations, so the current source format will not work.
== Source Format ==
== Source Format ==
The lightdef source files are essentially extensionless text files located at "raw/lights". There is 1 char for the samplerState and a null terminated string for the name of the image asset to use. For example, here is the "candle" asset from Call of Duty 4.
The lightdef source files are essentially extensionless text files located at "raw/lights". There is 1 char for the samplerState and a null terminated string for the name of the image asset to use. For example, here is the "candle" asset from Call of Duty 4.
  bfalloff_candle
  bfalloff_candle
Keep in mind that the file does contain a null character on the end that cannot be represented. The "b" is the samplerState.
Keep in mind that the file does contain a null character on the end that cannot be represented. The "b" is the samplerState.

Revision as of 20:53, 28 October 2014

The lightdef asset contains information pertaining to individual lights (not global lights). This asset is very simple and hasn't changed very much from the Call of Duty 4 Alpha to Ghosts.

Call of Duty 4 & World at War & Modern Warfare 2 & Black Ops 1 & 2

#pragma pack(push, 4)
struct GfxLightImage
{
  GfxImage *image;
  char samplerState;
};
#pragma pack(pop)

struct GfxLightDef
{
  const char *name;
  GfxLightImage attenuation;
  int lmapLookupStart;
};

lmapLookupStart is a constant value for all lightdefs. Only name and the attenuation change.

Modern Warfare 3 & Ghosts & Advanced Warfare

#pragma pack(push, 4)
struct GfxLightImage
{
  GfxImage *image;
  char samplerState;
};
#pragma pack(pop)

struct GfxLightDef
{
  const char *name;
  GfxLightImage attenuation[2];
  int lmapLookupStart;
};

The MW3 lightdef uses 2 attenuations, so the current source format will not work.

Source Format

The lightdef source files are essentially extensionless text files located at "raw/lights". There is 1 char for the samplerState and a null terminated string for the name of the image asset to use. For example, here is the "candle" asset from Call of Duty 4.

bfalloff_candle

Keep in mind that the file does contain a null character on the end that cannot be represented. The "b" is the samplerState.