Lightdef Asset: Difference between revisions

From COD Engine Research
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 8: Line 8:
[[Category:BO1]]
[[Category:BO1]]
[[Category:BO2]]
[[Category:BO2]]
[[Category:BO3]]
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.
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 ==
== Call of Duty 4 & World at War & Modern Warfare 2 & Black Ops 1 & 2 & 3 ==
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
#pragma pack(push, 4)
#pragma pack(push, 4)
Line 27: Line 28:
</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 40: Line 41:
{
{
   const char *name;
   const char *name;
   GfxLightImage attenuation[2];
   GfxLightImage attenuation;
  GfxLightImage cucoloris;
   int lmapLookupStart;
   int lmapLookupStart;
};
};
</syntaxhighlight>
</syntaxhighlight>
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.

Latest revision as of 07:20, 31 October 2015

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 & 3

#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;
  GfxLightImage cucoloris;
  int lmapLookupStart;
};

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.