[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32219] trunk/blender/source/blender/ blenkernel/intern/smoke.c: Fix #23540: smoke preview shading only used point lamps, now it uses other
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Sep 30 22:19:54 CEST 2010
Revision: 32219
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32219
Author: blendix
Date: 2010-09-30 22:19:54 +0200 (Thu, 30 Sep 2010)
Log Message:
-----------
Fix #23540: smoke preview shading only used point lamps, now it uses other
lamps to if no point lamp is available.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/smoke.c
Modified: trunk/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/smoke.c 2010-09-30 18:35:54 UTC (rev 32218)
+++ trunk/blender/source/blender/blenkernel/intern/smoke.c 2010-09-30 20:19:54 UTC (rev 32219)
@@ -800,20 +800,25 @@
static int get_lamp(Scene *scene, float *light)
{
Base *base_tmp = NULL;
- for(base_tmp = scene->base.first; base_tmp; base_tmp= base_tmp->next)
- {
- if(base_tmp->object->type == OB_LAMP)
- {
- Lamp *la = (Lamp *)base_tmp->object->data;
+ int found_lamp = 0;
- if(la->type == LA_LOCAL)
- {
- VECCOPY(light, base_tmp->object->obmat[3]);
- return 1;
- }
- }
- }
- return 0;
+ // try to find a lamp, preferably local
+ for(base_tmp = scene->base.first; base_tmp; base_tmp= base_tmp->next) {
+ if(base_tmp->object->type == OB_LAMP) {
+ Lamp *la = base_tmp->object->data;
+
+ if(la->type == LA_LOCAL) {
+ copy_v3_v3(light, base_tmp->object->obmat[3]);
+ return 1;
+ }
+ else if(!found_lamp) {
+ copy_v3_v3(light, base_tmp->object->obmat[3]);
+ found_lamp = 1;
+ }
+ }
+ }
+
+ return found_lamp;
}
static void smoke_calc_domain(Scene *scene, Object *ob, SmokeModifierData *smd)
More information about the Bf-blender-cvs
mailing list