UFO: Alien Invasion
Loading...
Searching...
No Matches
r_lightmap.cpp File Reference
#include "r_local.h"
#include "r_error.h"
#include "r_entity.h"
#include "r_lightmap.h"
Include dependency graph for r_lightmap.cpp:

Go to the source code of this file.

Functions

static void R_UploadLightmapPage (void)
static bool R_AllocLightmapBlock (int w, int h, int *x, int *y)
 returns a texture number and the position inside it
static void R_BuildDefaultLightmap (mBspSurface_t *surf, byte *sout, byte *dout, int stride)
 Fullbridght lightmap.
static void R_BuildLightmap (mBspSurface_t *surf, byte *sout, byte *dout, int stride)
 Consume raw lightmap and deluxemap RGB/XYZ data from the surface samples, and write them into the strided block in the atlas page.
void R_CreateSurfaceLightmap (mBspSurface_t *surf)
static void R_DisposeLightmaps (void)
void R_BeginBuildingLightmaps (void)
void R_EndBuildingLightmaps (void)
void R_Trace (const Line &trLine, float size, int contentmask)
 Moves the given mins/maxs volume through the world from start to end.

Variables

lightmaps_t r_lightmaps

Detailed Description

In video memory, lightmaps are chunked into NxN RGB pages. In the bsp, they are just sequentially stored RGB blocks per surface

Definition in file r_lightmap.cpp.

Function Documentation

◆ R_AllocLightmapBlock()

bool R_AllocLightmapBlock ( int w,
int h,
int * x,
int * y )
static

returns a texture number and the position inside it

Find a suitable location to store data in the texture atlas

Definition at line 96 of file r_lightmap.cpp.

References glGenTextures(), i, and r_lightmaps.

Referenced by R_CreateSurfaceLightmap().

◆ R_BeginBuildingLightmaps()

◆ R_BuildDefaultLightmap()

void R_BuildDefaultLightmap ( mBspSurface_t * surf,
byte * sout,
byte * dout,
int stride )
static

◆ R_BuildLightmap()

void R_BuildLightmap ( mBspSurface_t * surf,
byte * sout,
byte * dout,
int stride )
static

Consume raw lightmap and deluxemap RGB/XYZ data from the surface samples, and write them into the strided block in the atlas page.

See also
R_BuildDefaultLightmap

Definition at line 174 of file r_lightmap.cpp.

References DELUXEMAP_SAMPLE_SIZE, mBspTexInfo_t::flags, mBspSurface_t::lightColor, mBspSurface_t::lightmap, LIGHTMAP_SAMPLE_SIZE, mBspSurface_t::lightmap_scale, Mem_PoolAllocTypeN, mBspSurface_t::samples, mBspSurface_t::stextents, stride, SURF_ALPHATEST, SURF_BLEND33, SURF_BLEND66, mBspSurface_t::texinfo, and vid_lightPool.

Referenced by R_CreateSurfaceLightmap().

◆ R_CreateSurfaceLightmap()

◆ R_DisposeLightmaps()

void R_DisposeLightmaps ( void )
static

Definition at line 257 of file r_lightmap.cpp.

References r_lightmaps.

Referenced by R_BeginBuildingLightmaps().

◆ R_EndBuildingLightmaps()

void R_EndBuildingLightmaps ( void )

◆ R_Trace()

void R_Trace ( const Line & trLine,
float size,
int contentmask )

Moves the given mins/maxs volume through the world from start to end.

Parameters
[in]trLineStart and end vectors of the trace
[in]sizeBounding box size used for tracing
[in]contentmaskSearched content the trace should watch for

Definition at line 317 of file r_lightmap.cpp.

References entity_t::angles, CM_CompleteBoxTrace(), CM_TransformedBoxTrace, AABB::expand(), i, m, mod_bsp_submodel, entity_t::model, entity_t::origin, R_GetEntity(), r_locals, r_numMapTiles, refdef, tr, and TRACE_ALL_LEVELS.

Referenced by R_DrawFlareSurfaces(), R_UpdateLightList(), and R_UpdateShadowOrigin().

◆ R_UploadLightmapPage()

Variable Documentation

◆ r_lightmaps