UFO: Alien Invasion
|
Pseudoinstanced grass generation and rendering. More...
Go to the source code of this file.
Data Structures | |
struct | Clump |
Macros | |
#define | GRASS_MARK -956 /* arbitrary number from top of my head -- Sandro */ |
#define | TRIS_PER_CLUMP 10 |
#define | MAX_CLUMPS 2046 |
#define | MAX_CLUMP_TRIS (TRIS_PER_CLUMP * MAX_CLUMPS) |
#define | xt (rot[0]) |
#define | yt (rot[1]) |
#define | zt (rot[2]) |
Functions | |
void | R_ClearGrass () |
static void | R_PlantGrass (Clump &clump) |
static void | R_AddClump (const vec3_t pos, const vec3_t normal, int level) |
static int | ClumpOrder (const void *a, const void *b) |
static void | R_OrganizeClumps () |
void | R_GenerateGrass () |
void | R_DrawGrass () |
Variables | |
static int | clumpCount = 0 |
static Clump | clumps [MAX_CLUMPS] |
static int | clumpsForLevel [PATHFINDING_HEIGHT] = {0} |
static int | clumpTrianglesForLevel [PATHFINDING_HEIGHT] = {0} |
static int | clumpTriangleCount = 0 |
static vec3_t | gfv_pos [MAX_CLUMP_TRIS *3] |
static vec2_t | gfv_texcoord [MAX_CLUMP_TRIS *3] |
Pseudoinstanced grass generation and rendering.
Definition in file r_grass.cpp.
#define GRASS_MARK -956 /* arbitrary number from top of my head -- Sandro */ |
Definition at line 29 of file r_grass.cpp.
Referenced by R_GenerateGrass().
#define MAX_CLUMP_TRIS (TRIS_PER_CLUMP * MAX_CLUMPS) |
Definition at line 34 of file r_grass.cpp.
Referenced by R_PlantGrass().
#define MAX_CLUMPS 2046 |
Definition at line 32 of file r_grass.cpp.
Referenced by R_AddClump(), and R_GenerateGrass().
#define TRIS_PER_CLUMP 10 |
Definition at line 31 of file r_grass.cpp.
Referenced by R_PlantGrass().
#define xt (rot[0]) |
Referenced by R_PlantGrass().
#define yt (rot[1]) |
Referenced by R_PlantGrass().
#define zt (rot[2]) |
Referenced by R_PlantGrass().
Definition at line 199 of file r_grass.cpp.
References Clump::level.
Referenced by R_OrganizeClumps().
Definition at line 183 of file r_grass.cpp.
References clumpCount, frand(), Clump::level, level, MAX_CLUMPS, Clump::normal, Clump::position, Clump::rotation, and VectorCopy.
Referenced by R_GenerateGrass().
void R_ClearGrass | ( | ) |
Definition at line 56 of file r_grass.cpp.
References clumpCount, clumpsForLevel, clumpTriangleCount, clumpTrianglesForLevel, and OBJZERO.
Referenced by R_ModBeginLoading().
void R_DrawGrass | ( | ) |
Definition at line 399 of file r_grass.cpp.
References rendererData_t::batchCount, clumpTriangleCount, clumpTrianglesForLevel, gfv_pos, gfv_texcoord, it_pic, R_BindArray(), R_BindDefaultArray(), R_BindTexture, R_EnableAlphaTest(), R_FindImage(), refdef, and rendererData_t::worldlevel.
Referenced by R_RenderFrame().
void R_GenerateGrass | ( | ) |
Definition at line 228 of file r_grass.cpp.
References model_s::bsp, clumpCount, clumpsForLevel, clumpTriangleCount, clumpTrianglesForLevel, Com_Printf(), CrossProduct(), f, mBspHeader_s::firstface, Clump::firstTriangle, mBspSurface_s::firstTriangle, mBspTexInfo_s::flags, mBspSurface_s::frame, frand(), GRASS_MARK, i, mBspModel_s::indexes, level, LEVEL_LASTVISIBLE, MAX_CLUMPS, cBspPlane_s::normal, mBspHeader_s::numfaces, Clump::numTriangles, mBspSurface_s::numTriangles, PATHFINDING_HEIGHT, mBspSurface_s::plane, R_AddClump(), r_mapTiles, r_numMapTiles, R_OrganizeClumps(), R_PlantGrass(), mBspModel_s::submodels, SURF_FOLIAGE, mBspModel_s::surfaces, mBspSurface_s::texinfo, v, va(), VectorCopy, VectorLength(), VectorMA(), VectorSubtract, and mBspModel_s::verts.
Referenced by R_ModEndLoading().
|
static |
Definition at line 211 of file r_grass.cpp.
References clumpCount, ClumpOrder(), clumpsForLevel, i, level, and PATHFINDING_HEIGHT.
Referenced by R_GenerateGrass().
Definition at line 64 of file r_grass.cpp.
References clumpTriangleCount, CrossProduct(), Clump::firstTriangle, frand(), gfv_pos, gfv_texcoord, i, MAX_CLUMP_TRIS, Clump::normal, Clump::numTriangles, PolarToVec(), Clump::position, RotatePointAroundVector(), TRIS_PER_CLUMP, Vector2Set, VectorCopy, VectorInverse(), VectorMA(), VectorNormalizeFast(), VectorRotate(), VectorSet, xt, yt, and zt.
Referenced by R_GenerateGrass().
|
static |
Definition at line 44 of file r_grass.cpp.
Referenced by R_AddClump(), R_ClearGrass(), R_GenerateGrass(), and R_OrganizeClumps().
|
static |
Definition at line 45 of file r_grass.cpp.
|
static |
Definition at line 47 of file r_grass.cpp.
Referenced by R_ClearGrass(), R_GenerateGrass(), and R_OrganizeClumps().
|
static |
Definition at line 50 of file r_grass.cpp.
Referenced by R_ClearGrass(), R_DrawGrass(), R_GenerateGrass(), and R_PlantGrass().
|
static |
Definition at line 48 of file r_grass.cpp.
Referenced by R_ClearGrass(), R_DrawGrass(), and R_GenerateGrass().
|
static |
Definition at line 53 of file r_grass.cpp.
Referenced by R_DrawGrass(), and R_PlantGrass().
|
static |
Definition at line 54 of file r_grass.cpp.
Referenced by R_DrawGrass(), and R_PlantGrass().