This commit is contained in:
Nishi 2026-02-02 19:11:51 +09:00
commit 64de49cf99
Signed by: nishi
GPG key ID: 27EF69B208EB9343
3 changed files with 18 additions and 4 deletions

View file

@ -16,7 +16,7 @@ vec4 PhongShading(void)
vec3 L = normalize(gl_LightSource[0].position.xyz-vPos.xyz);
if(gl_LightSource[0].position.w < 0.5){
L = normalize(gl_LightSource[0].position.xyz);
L = -normalize(gl_LightSource[0].position.xyz);
}
vec4 ambient = gl_FrontLightProduct[0].ambient;
@ -59,7 +59,7 @@ float ShadowCoef(void){
shadow_coef -= 0.2;
}
}
return shadow_coef;
}

View file

@ -49,6 +49,11 @@ GSClient GSClientCreate(GSEngine engine) {
client->light0[2] = 0;
client->light0[3] = 1;
client->light0[0] = -1;
client->light0[1] = -1;
client->light0[2] = 0;
client->light0[3] = 0;
client->skybox_enabled = GSFalse;
if((client->sengine = GSSoundEngineCreate(client)) == NULL) {

View file

@ -58,7 +58,7 @@ GSBool GSGLShadowBeforeMapping(GSGL gl) {
if(gl->engine->client->light0[3]) {
GSGLCameraPerspective(gl, GSGLMaxShadowDistance, GSGLMaxShadowDistance);
} else {
glOrtho(-GSGLMaxShadowDistance / 2, GSGLMaxShadowDistance / 2, -GSGLMaxShadowDistance / 2, GSGLMaxShadowDistance / 2, -GSGLMaxDistance, GSGLMaxDistance);
glOrtho(-10, 10, -10, 10, -10, 20);
}
glGetDoublev(GL_PROJECTION_MATRIX, gl->shadow_projection);
@ -66,7 +66,16 @@ GSBool GSGLShadowBeforeMapping(GSGL gl) {
glMatrixMode(GL_MODELVIEW);
glGetDoublev(GL_MODELVIEW_MATRIX, gl->shadow_old_modelview);
glLoadIdentity();
GSGLCameraLookAt(gl, gl->engine->client->light0, zero);
if(gl->engine->client->light0[3]){
GSGLCameraLookAt(gl, gl->engine->client->light0, zero);
}else{
GSVector3 n;
int i;
for(i = 0; i < 3; i++) n[i] = -gl->engine->client->light0[i];
GSGLCameraLookAt(gl, n, zero);
}
glGetDoublev(GL_MODELVIEW_MATRIX, gl->shadow_modelview);