[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42739] branches/ge_harmony/source/blender /gpu/intern: Fixing up a hack that caused simple shadows not to work for ATI cards.
Daniel Stokes
kupomail at gmail.com
Mon Dec 19 23:30:30 CET 2011
Revision: 42739
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42739
Author: kupoman
Date: 2011-12-19 22:30:25 +0000 (Mon, 19 Dec 2011)
Log Message:
-----------
Fixing up a hack that caused simple shadows not to work for ATI cards.
Modified Paths:
--------------
branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
branches/ge_harmony/source/blender/gpu/intern/gpu_material.c
Modified: branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
===================================================================
--- branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c 2011-12-19 20:38:45 UTC (rev 42738)
+++ branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c 2011-12-19 22:30:25 UTC (rev 42739)
@@ -748,8 +748,6 @@
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, attachment,
tex->target, tex->bindcode, 0);
- /* This breaks variance shadow maps. Disabling doesn't seem to break anything. */
-#if 0
if(tex->depth) {
glDrawBuffer(GL_NONE);
glReadBuffer(GL_NONE);
@@ -758,7 +756,6 @@
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
}
-#endif
status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
Modified: branches/ge_harmony/source/blender/gpu/intern/gpu_material.c
===================================================================
--- branches/ge_harmony/source/blender/gpu/intern/gpu_material.c 2011-12-19 20:38:45 UTC (rev 42738)
+++ branches/ge_harmony/source/blender/gpu/intern/gpu_material.c 2011-12-19 22:30:25 UTC (rev 42739)
@@ -1666,21 +1666,6 @@
return lamp;
}
- /* Shadow color map */
- if(lamp->la->shadowmap_type == LA_SHADMAP_VARIANCE)
- lamp->tex = GPU_texture_create_shadow_map(lamp->size, NULL);
- else
- lamp->tex = GPU_texture_create_depth(lamp->size, lamp->size, NULL);
- if(!lamp->tex) {
- gpu_lamp_shadow_free(lamp);
- return lamp;
- }
-
- if(!GPU_framebuffer_texture_attach(lamp->fb, lamp->tex, NULL)) {
- gpu_lamp_shadow_free(lamp);
- return lamp;
- }
-
if(lamp->la->shadowmap_type == LA_SHADMAP_VARIANCE) {
/* Shadow depth map */
lamp->depthtex = GPU_texture_create_depth(lamp->size, lamp->size, NULL);
@@ -1694,6 +1679,18 @@
return lamp;
}
+ /* Shadow color map */
+ lamp->tex = GPU_texture_create_shadow_map(lamp->size, NULL);
+ if(!lamp->tex) {
+ gpu_lamp_shadow_free(lamp);
+ return lamp;
+ }
+
+ if(!GPU_framebuffer_texture_attach(lamp->fb, lamp->tex, NULL)) {
+ gpu_lamp_shadow_free(lamp);
+ return lamp;
+ }
+
/* FBO and texture for blurring */
lamp->blurfb = GPU_framebuffer_create();
if(!lamp->blurfb) {
@@ -1712,7 +1709,18 @@
return lamp;
}
}
+ else {
+ lamp->tex = GPU_texture_create_depth(lamp->size, lamp->size, NULL);
+ if(!lamp->tex) {
+ gpu_lamp_shadow_free(lamp);
+ return lamp;
+ }
+ if(!GPU_framebuffer_texture_attach(lamp->fb, lamp->tex, NULL)) {
+ gpu_lamp_shadow_free(lamp);
+ return lamp;
+ }
+ }
GPU_framebuffer_restore();
More information about the Bf-blender-cvs
mailing list