Beispiel #1
0
        public void DoCulling(ref Engine.Utilities.FastFrustum frustum)
        {
            foreach (RModel rModel in RModels)
            {
                rModel.DrawList.Clear();
                foreach (RModelInstance modelInstance in rModel.Instances)
                {
                    if (modelInstance.Shown && frustum.Intersects(ref modelInstance.boundingSphere))
                    {
                        rModel.DrawList.Add(modelInstance);
                        if (modelInstance is SkinnedRModelInstance)
                        {
                            SkinnedRModelInstance smodelInstance = (SkinnedRModelInstance)modelInstance;
                            smodelInstance.UpdateBones();
                        }
                    }
                }
            }

            foreach (RModel rModel in AlphaBlendRModels)
            {
                rModel.DrawList.Clear();
                foreach (RModelInstance modelInstance in rModel.Instances)
                {
                    if (modelInstance.Shown && frustum.Intersects(ref modelInstance.boundingSphere))
                    {
                        rModel.DrawList.Add(modelInstance);
                        if (modelInstance is SkinnedRModelInstance)
                        {
                            SkinnedRModelInstance smodelInstance = (SkinnedRModelInstance)modelInstance;
                            smodelInstance.UpdateBones();
                        }
                    }
                }
            }
        }