|
|
> beta28 source/backend/render/trace.cpp
> 1601 // If light source was not blocked by any intervening object, then
> 1602 // calculate it's contribution to the object's overall illumination.
> 1603 if ((qualityFlags & Q_SHADOW) && ((lightsource->Projected_Through_Object !=
> NULL) || (lightsource->Light_Type != FILL_LIGHT_SOURCE)))
> 1604 {
> 1605 if (lightColorCacheIndex != -1 && light_index != -1)
> 1606 {
> 1607 LightColorCache& lcc(lightColorCache[lightColorCacheIndex][light_index]);
> 1608 if (lcc.tested == false)
> 1609 {
> 1610 TraceShadowRay(lightsource, lightsourcedepth, lightsourceray, eye,
> ipoint, lightcolour);
> 1611 lcc.tested = true;
> 1612 lcc.colour = lightcolour;
> 1613 }
> 1614 else
> 1615 lightcolour = lcc.colour;
> 1616 }
> 1617 else
> 1618 TraceShadowRay(lightsource, lightsourcedepth, lightsourceray, eye,
> ipoint, lightcolour);
> 1619 }
FWIW lately I've been investigating that very portion of code as the possible
cause for the reported crash, since light color cache for textures were re-introduced
in the most recent beta. Your investigation seems to confirm my guess. However,
so far and due to limited time, I did not manage to identify/understand why this
particular and related code may cause a segfault; e.g. lightColorCacheIndex and
light_index were in my tests never < -1 or too large when indexing the allocated
tables.
Chris: any idea what could be wrong in here?
- NC
Post a reply to this message
|
|