proper handling of volumes close to 0

- if volume is close to 0, _attenuation would be "nan"
- avoid further calculation with "nan" by explicitly setting
  _attenuation to 0.0f

commit will be merged with the previous commit