cascade shadows

This commit is contained in:
Masashi 2026-02-02 18:48:39 +05:30
commit f0708fdc15
7 changed files with 161 additions and 103 deletions

View file

@ -37,8 +37,10 @@ GSDECL void GSGLTetrakis(GSGL gl, GSNumber scale, GSVector4 col1, GSVector4 co
/* gl_shadow.c */
GSDECL void GSGLShadowInit(GSGL gl);
GSDECL GSBool GSGLShadowBeforeMapping(GSGL gl);
GSDECL void GSGLShadowAfterMapping(GSGL gl);
GSDECL GSBool GSGLShadowBegin(GSGL gl);
GSDECL void GSGLShadowCascade(GSGL gl, int cascade);
GSDECL void GSGLShadowCopy(GSGL gl, int cascade);
GSDECL void GSGLShadowApply(GSGL gl);
GSDECL void GSGLShadowEnd(GSGL gl);
GSDECL void GSGLShadowDeinit(GSGL gl);
GSDECL void GSGLShadowDisable(GSGL gl);

View file

@ -181,14 +181,16 @@ struct _GSNetKV {
#include <miniaudio.h>
#include <ode/ode.h>
#define GSGL_SHADOW_CASCADES 3
struct _GSGL {
GSEngine engine;
int shadow_use_shader;
GLuint shadow_texture;
GLuint shadow_texture[GSGL_SHADOW_CASCADES];
GLuint shadow_shader;
GLdouble shadow_modelview[16];
GLdouble shadow_projection[16];
GLdouble shadow_modelview[GSGL_SHADOW_CASCADES][16];
GLdouble shadow_projection[GSGL_SHADOW_CASCADES][16];
GLdouble shadow_old_projection[16];
GLdouble shadow_old_modelview[16];