コード例 #1
0
        public override List<IObject> GetNotCulledObjectsList(MaterialType? Filter, CullerComparer CullerComparer = CullerComparer.None, Vector3? CameraPosition = null)
        {         
                switch (CullerComparer)
                {
                    case CullerComparer.ComparerFrontToBack:
                        System.Diagnostics.Debug.Assert(CameraPosition.HasValue);
                        ComparerFrontToBack.CameraPosition = CameraPosition.Value;
                        forward.Sort(ComparerFrontToBack);
                        deferred.Sort(ComparerFrontToBack);
                        break;
                    case CullerComparer.ComparerBackToFront:
                        System.Diagnostics.Debug.Assert(CameraPosition.HasValue);
                        ComparerBackToFront.CameraPosition = CameraPosition.Value;
                        forward.Sort(ComparerBackToFront);
                        deferred.Sort(ComparerBackToFront);
                        break;
                    default:
                        break;
                }

            if (Filter == PloobsEngine.Material.MaterialType.DEFERRED)
                return deferred.ToList();
            else if (Filter == PloobsEngine.Material.MaterialType.FORWARD)
                return forward.ToList();
            else
            {
                List<IObject> objs = new List<IObject>();
                objs.AddRange(deferred);
                objs.AddRange(forward);
                return objs;
            }
        }
コード例 #2
0
        public override List <IObject> GetNotCulledObjectsList(MaterialType?Filter, CullerComparer CullerComparer = CullerComparer.None, Vector3?CameraPosition = null)
        {
            switch (CullerComparer)
            {
            case CullerComparer.ComparerFrontToBack:
                System.Diagnostics.Debug.Assert(CameraPosition.HasValue);
                ComparerFrontToBack.CameraPosition = CameraPosition.Value;
                forward.Sort(ComparerFrontToBack);
                deferred.Sort(ComparerFrontToBack);
                break;

            case CullerComparer.ComparerBackToFront:
                System.Diagnostics.Debug.Assert(CameraPosition.HasValue);
                ComparerBackToFront.CameraPosition = CameraPosition.Value;
                forward.Sort(ComparerBackToFront);
                deferred.Sort(ComparerBackToFront);
                break;

            default:
                break;
            }


            if (Filter == PloobsEngine.Material.MaterialType.DEFERRED)
            {
                return(deferred.ToList());
            }
            else if (Filter == PloobsEngine.Material.MaterialType.FORWARD)
            {
                return(forward.ToList());
            }
            else
            {
                List <IObject> objs = new List <IObject>();
                objs.AddRange(deferred);
                objs.AddRange(forward);
                return(objs);
            }
        }
コード例 #3
0
 /// <summary>
 /// Get all the objects that pass the culling phase
 /// </summary>
 /// <param name="Filter">Or Filter, null for all</param>
 /// <returns></returns>
 public abstract List<IObject> GetNotCulledObjectsList(MaterialType? Filter, CullerComparer CullerComparer = CullerComparer.None, Vector3? CameraPosition = null);
コード例 #4
0
 /// <summary>
 /// Get all the objects that pass the culling phase
 /// </summary>
 /// <param name="Filter">Or Filter, null for all</param>
 /// <returns></returns>
 public abstract List <IObject> GetNotCulledObjectsList(MaterialType?Filter, CullerComparer CullerComparer = CullerComparer.None, Vector3?CameraPosition = null);