示例#1
0
        public static void SetSettings(MyGlobalLoddingSettings globalLodding,
                                       MyPassLoddingSetting gbufferLodding,
                                       MyPassLoddingSetting[] cascadeDepthLoddings,
                                       MyPassLoddingSetting singleDepthLodding)
        {
            m_objectDistanceAdd  = globalLodding.ObjectDistanceAdd;
            m_objectDistanceMult = globalLodding.ObjectDistanceMult;

            for (int i = 0; i < MyPassIdResolver.MaxGBufferPassesCount; i++)
            {
                m_loddingSetting[MyPassIdResolver.DefaultGBufferPassId] = gbufferLodding;
            }

            int cascadeDepthPassesCount = Math.Min(cascadeDepthLoddings.Length, MyPassIdResolver.MaxCascadeDepthPassesCount);

            for (int i = 0; i < cascadeDepthPassesCount; i++)
            {
                m_loddingSetting[MyPassIdResolver.GetCascadeDepthPassId(i)] = cascadeDepthLoddings[i];
            }
            for (int i = cascadeDepthPassesCount; i < MyPassIdResolver.MaxCascadeDepthPassesCount; i++)
            {
                m_loddingSetting[MyPassIdResolver.GetCascadeDepthPassId(i)] = MyPassLoddingSetting.Default;
            }

            for (int i = 0; i < MyPassIdResolver.MaxCascadeDepthPassesCount; i++)
            {
                m_loddingSetting[MyPassIdResolver.GetSingleDepthPassId(i)] = singleDepthLodding;
            }
        }
示例#2
0
 public bool IsVisible(int passId)
 {
     if (MyPassIdResolver.IsGBufferPassId(passId))
     {
         return(m_visibilityStrategy.GBufferVisibility);
     }
     else if (MyPassIdResolver.IsDepthPassId(passId))
     {
         return(m_visibilityStrategy.DepthVisibility);
     }
     else
     {
         MyRenderProxy.Error("Unprocessed conditional");
     }
     return(false);
 }