}
blendweights_t;
-typedef struct r_vertexposition_s
-{
- // 12 bytes
- float vertex3f[3];
-}
-r_vertexposition_t;
-
typedef struct r_vertexgeneric_s
{
- // 24 bytes
+ // 36 bytes
float vertex3f[3];
- unsigned char color4ub[4];
+ float color4f[4];
float texcoord2f[2];
}
r_vertexgeneric_t;
typedef struct r_vertexmesh_s
{
- // 68 bytes
+ // 80 bytes
float vertex3f[3];
- unsigned char color4ub[4];
+ float color4f[4];
float texcoordtexture2f[2];
float texcoordlightmap2f[2];
float svector3f[3];
qboolean isanimated;
// vertex and index buffers for rendering
- r_vertexposition_t *vertexposition;
r_vertexmesh_t *vertexmesh;
- r_meshbuffer_t *vertexpositionbuffer;
+ r_meshbuffer_t *vertex3fbuffer;
r_meshbuffer_t *vertexmeshbuffer;
}
surfmesh_t;
size_t vbooffset_texcoord2f;
// vertex/index buffers for rendering
// (created by Mod_ShadowMesh_Finish if possible)
- r_vertexposition_t *vertexposition;
r_vertexmesh_t *vertexmesh; // usually NULL
- r_meshbuffer_t *vertexpositionbuffer;
+ r_meshbuffer_t *vertex3fbuffer;
r_meshbuffer_t *vertexmeshbuffer; // usually NULL
}
shadowmesh_t;
// dp-specific additions:
// shadow control
+ qboolean dpnortlight;
qboolean dpshadow;
qboolean dpnoshadow;
// add collisions to all triangles of the surface
qboolean dpmeshcollisions;
+ // kill shader based on cvar checks
+ qboolean dpshaderkill;
+
// fake reflection
char dpreflectcube[Q3PATHLENGTH];
float reflectfactor; // amount of reflection distort (1.0 = like the cvar specifies)
vec4_t reflectcolor4f; // color tint of reflection (including alpha factor)
float r_water_wateralpha; // additional wateralpha to apply when r_water is active
+ float r_water_waterscroll[2]; // water normalmapscrollblend - scale and speed
// offsetmapping
dpoffsetmapping_technique_t offsetmapping;
float offsetscale;
+ float offsetbias; // 0 is normal, 1 leads to alpha 0 being neutral and alpha 1 pushing "out"
+
+ // polygonoffset (only used if Q3TEXTUREFLAG_POLYGONOFFSET)
+ float biaspolygonoffset, biaspolygonfactor;
// gloss
float specularscalemod;
float specularpowermod;
-#define Q3SHADERINFO_COMPARE_END specularpowermod
+
+ // rtlightning ambient addition
+ float rtlightambient;
+#define Q3SHADERINFO_COMPARE_END rtlightambient
}
q3shaderinfo_t;
float reflectfactor; // amount of reflection distort (1.0 = like the cvar specifies)
vec4_t reflectcolor4f; // color tint of reflection (including alpha factor)
float r_water_wateralpha; // additional wateralpha to apply when r_water is active
+ float r_water_waterscroll[2]; // scale and speed
int camera_entity; // entity number for use by cameras
// offsetmapping
dpoffsetmapping_technique_t offsetmapping;
float offsetscale;
+ float offsetbias;
// gloss
float specularscalemod;
float specularpowermod;
+
+ // diffuse and ambient
+ float rtlightambient;
}
texture_t;
void (*TracePoint)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, int hitsupercontentsmask);
// find the supercontents value at a point in this model
int (*PointSuperContents)(struct model_s *model, int frame, const vec3_t point);
+ // trace a line against geometry in this model and report correct texture (used by r_shadow_bouncegrid)
+ void (*TraceLineAgainstSurfaces)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask);
// fields belonging to some types of model
model_sprite_t sprite;
model_brush_t brush;
//extern cvar_t gl_subdivide_size;
// texture fullbrights
extern cvar_t r_fullbrights;
+extern cvar_t r_enableshadowvolumes;
void Mod_Init (void);
void Mod_Reload (void);
extern cvar_t r_mipskins;
extern cvar_t r_mipnormalmaps;
-typedef struct skeleton_s
-{
- const dp_model_t *model;
- matrix4x4_t *relativetransforms;
-}
-skeleton_t;
-
typedef struct skinfileitem_s
{
struct skinfileitem_s *next;