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];
}
r_vertexmesh_t;
-typedef struct r_vertexbouncelight_s
-{
- // 32 bytes
- float vertex3f[3];
- unsigned char color4ub[4];
- float texcoord4f[4];
-}
-r_vertexbouncelight_t;
-
typedef struct r_meshbuffer_s
{
int bufferobject; // OpenGL
// 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];
// offsetmapping
dpoffsetmapping_technique_t offsetmapping;
float offsetscale;
+ unsigned char offsetbias;
// 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;
// offsetmapping
dpoffsetmapping_technique_t offsetmapping;
float offsetscale;
+ unsigned char 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 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;