コード例 #1
0
        public static Material NewMaterialPersistent(Shader shader, bool gpuInstanced)
        {
            if (!shader)
            {
                Debug.LogError("Invalid VLB Shader. Please try to reset the VLB Config asset or reinstall the plugin.");
                return(null);
            }

            var material = new Material(shader);

            BatchingHelper.SetMaterialProperties(material, gpuInstanced);
            return(material);
        }
コード例 #2
0
 string GetBatchingReport()
 {
     if (m_Targets.Count > 1)
     {
         string reasons = "";
         for (int i = 1; i < m_Targets.Count; ++i)
         {
             if (!BatchingHelper.CanBeBatched(m_Targets[0], m_Targets[i], ref reasons))
             {
                 return("Selected beams can't be batched together:\n" + reasons);
             }
         }
     }
     return(null);
 }
コード例 #3
0
ファイル: DummyMaterial.cs プロジェクト: msp/virtual-gallery
        /// <summary>
        /// Create a dummy material with the proper instancing flag to prevent from stripping away needed shader variants when exporting build
        /// </summary>
        public static Material Create(Shader shader, bool gpuInstanced)
        {
            if (shader == null)
            {
                return(null);
            }

            string path     = GetPath(shader);
            var    dummyMat = AssetDatabase.LoadAssetAtPath <Material>(path);

            if (dummyMat == null ||
                dummyMat.shader != shader ||
                BatchingHelper.IsGpuInstancingEnabled(dummyMat) != gpuInstanced)
            {
                dummyMat = MaterialManager.NewMaterialPersistent(shader, gpuInstanced);
                if (dummyMat)
                {
                    AssetDatabase.CreateAsset(dummyMat, path);
                }
            }

            return(dummyMat);
        }