better
This commit is contained in:
parent
5210e22684
commit
64de49cf99
3 changed files with 18 additions and 4 deletions
|
|
@ -16,7 +16,7 @@ vec4 PhongShading(void)
|
||||||
vec3 L = normalize(gl_LightSource[0].position.xyz-vPos.xyz);
|
vec3 L = normalize(gl_LightSource[0].position.xyz-vPos.xyz);
|
||||||
|
|
||||||
if(gl_LightSource[0].position.w < 0.5){
|
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;
|
vec4 ambient = gl_FrontLightProduct[0].ambient;
|
||||||
|
|
@ -59,7 +59,7 @@ float ShadowCoef(void){
|
||||||
shadow_coef -= 0.2;
|
shadow_coef -= 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return shadow_coef;
|
return shadow_coef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,11 @@ GSClient GSClientCreate(GSEngine engine) {
|
||||||
client->light0[2] = 0;
|
client->light0[2] = 0;
|
||||||
client->light0[3] = 1;
|
client->light0[3] = 1;
|
||||||
|
|
||||||
|
client->light0[0] = -1;
|
||||||
|
client->light0[1] = -1;
|
||||||
|
client->light0[2] = 0;
|
||||||
|
client->light0[3] = 0;
|
||||||
|
|
||||||
client->skybox_enabled = GSFalse;
|
client->skybox_enabled = GSFalse;
|
||||||
|
|
||||||
if((client->sengine = GSSoundEngineCreate(client)) == NULL) {
|
if((client->sengine = GSSoundEngineCreate(client)) == NULL) {
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ GSBool GSGLShadowBeforeMapping(GSGL gl) {
|
||||||
if(gl->engine->client->light0[3]) {
|
if(gl->engine->client->light0[3]) {
|
||||||
GSGLCameraPerspective(gl, GSGLMaxShadowDistance, GSGLMaxShadowDistance);
|
GSGLCameraPerspective(gl, GSGLMaxShadowDistance, GSGLMaxShadowDistance);
|
||||||
} else {
|
} 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);
|
glGetDoublev(GL_PROJECTION_MATRIX, gl->shadow_projection);
|
||||||
|
|
@ -66,7 +66,16 @@ GSBool GSGLShadowBeforeMapping(GSGL gl) {
|
||||||
glMatrixMode(GL_MODELVIEW);
|
glMatrixMode(GL_MODELVIEW);
|
||||||
glGetDoublev(GL_MODELVIEW_MATRIX, gl->shadow_old_modelview);
|
glGetDoublev(GL_MODELVIEW_MATRIX, gl->shadow_old_modelview);
|
||||||
glLoadIdentity();
|
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);
|
glGetDoublev(GL_MODELVIEW_MATRIX, gl->shadow_modelview);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue