Ticket #3073: noShadowFromSmallObjects.diff

File noShadowFromSmallObjects.diff, 800 bytes (added by wraitii, 9 years ago)
  • source/graphics/ObjectEntry.cpp

     
    246253    // setup flags
    247254    if (m_Base->m_Properties.m_CastShadows)
    248255    {
    249         model->SetFlags(model->GetFlags()|MODELFLAG_CASTSHADOWS);
     256        bool noshadow = false;
     257        static const float size = 0.8f;
     258        CBoundingBoxAligned const &box = model->GetObjectBounds();
     259        if ( (box[1].X - box[0].X > size && box[1].Y - box[0].Y > size)
     260            || (box[1].X - box[0].X > size && box[1].Z - box[0].Z > size)
     261            || (box[1].Z - box[0].Z > size && box[1].Y - box[0].Y > size))
     262            noshadow = true;
     263        if (noshadow)
     264            model->SetFlags(model->GetFlags()|MODELFLAG_CASTSHADOWS);
    250265    }
    251266
    252267    return true;