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];
// 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;
+ 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;
// 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 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;