|
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, clumps, 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 clumpTriangleCount, clumpTrianglesForLevel, gfv_pos, gfv_texcoord, it_pic, R_BindArray(), R_BindDefaultArray(), R_BindTexture, R_EnableAlphaTest(), R_FindImage(), and refdef.
Referenced by R_RenderFrame().
| void R_GenerateGrass | ( | ) |
Definition at line 228 of file r_grass.cpp.
References clumpCount, clumps, clumpsForLevel, clumpTriangleCount, clumpTrianglesForLevel, Com_Printf(), CrossProduct(), mBspHeader_t::firstface, Clump::firstTriangle, mBspSurface_t::firstTriangle, mBspTexInfo_t::flags, mBspSurface_t::frame, frand(), GRASS_MARK, i, mBspModel_t::indexes, level, LEVEL_LASTVISIBLE, MAX_CLUMPS, cBspPlane_t::normal, mBspHeader_t::numfaces, Clump::numTriangles, mBspSurface_t::numTriangles, PATHFINDING_HEIGHT, mBspSurface_t::plane, R_AddClump(), r_mapTiles, r_numMapTiles, R_OrganizeClumps(), R_PlantGrass(), mBspModel_t::submodels, SURF_FOLIAGE, mBspModel_t::surfaces, mBspSurface_t::texinfo, v, va(), VectorCopy, VectorLength(), VectorMA(), VectorSubtract, and mBspModel_t::verts.
Referenced by R_ModEndLoading().
|
static |
Definition at line 211 of file r_grass.cpp.
References clumpCount, ClumpOrder(), clumps, 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.
Referenced by R_AddClump(), R_GenerateGrass(), and R_OrganizeClumps().
|
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().