UFO: Alien Invasion
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 More...
 
static void R_BuildDefaultLightmap (mBspSurface_t *surf, byte *sout, byte *dout, int stride)
 Fullbridght lightmap. More...
 
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. More...
 
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. More...
 

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()

static 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 lightmaps_t::allocated, lightmaps_t::deluxemap_count, lightmaps_t::deluxemap_texnums, glGenTextures(), i, lightmaps_t::incomplete_atlas, lightmaps_t::lightmap_count, lightmaps_t::lightmap_texnums, r_lightmaps, and lightmaps_t::size.

Referenced by R_CreateSurfaceLightmap().

◆ R_BeginBuildingLightmaps()

◆ R_BuildDefaultLightmap()

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

◆ R_BuildLightmap()

static 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()

◆ R_EndBuildingLightmaps()

◆ 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(), trace_t::fraction, i, m, trace_t::mapTile, rendererData_t::mapTiles, mapTiles_t::mapTiles, mod_bsp_submodel, entity_t::model, rendererData_t::numEntities, entity_t::origin, R_GetEntity(), r_locals, r_numMapTiles, refdef, tr, rendererData_t::trace, TRACE_ALL_LEVELS, rendererData_t::traceEntity, and rlocals_t::tracenum.

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

◆ R_UploadLightmapPage()

Variable Documentation

◆ r_lightmaps