zoukankan      html  css  js  c++  java
  • srp render queue 失效

    srp的render queue

    根据每次render的时候的sortflags来选择开关

    public enum SortFlags
    {
        /// <summary>
        ///   <para>Do not sort objects.</para>
        /// </summary>
        None = 0x0,
        /// <summary>
        ///   <para>Sort by renderer sorting layer.</para>
        /// </summary>
        SortingLayer = 0x1,
        /// <summary>
        ///   <para>Sort by material render queue.</para>
        /// </summary>
        RenderQueue = 0x2,
        /// <summary>
        ///   <para>Sort objects back to front.</para>
        /// </summary>
        BackToFront = 0x4,
        /// <summary>
        ///   <para>Sort objects in rough front-to-back buckets.</para>
        /// </summary>
        QuantizedFrontToBack = 0x8,
        /// <summary>
        ///   <para>Sort objects to reduce draw state changes.</para>
        /// </summary>
        OptimizeStateChanges = 0x10,
        /// <summary>
        ///   <para>Sort renderers taking canvas order into account.</para>
        /// </summary>
        CanvasOrder = 0x20,
        /// <summary>
        ///   <para>Sorts objects by renderer priority.</para>
        /// </summary>
        RendererPriority = 0x40,
        /// <summary>
        ///   <para>Typical sorting for opaque objects.</para>
        /// </summary>
        CommonOpaque = 0x3B,
        /// <summary>
        ///   <para>Typical sorting for transparencies.</para>
        /// </summary>
        CommonTransparent = 0x17
    }

    用的时候 可以直接设置

    var sortFlags = SortFlags.RenderQueue;
    var drawSettings = CreateDrawRendererSettings(renderingData.cameraData.camera, sortFlags, RendererConfiguration.None, renderingData.supportsDynamicBatching);
    context.DrawRenderers(renderingData.cullResults.visibleRenderers, ref drawSettings, opaqueFilterSettings);
    
    
     

    还可以从renderingData.cameraData.defaultOpaqueSortFlags这里拿统一的设置

    lwrp 里面的CommonOpaque 应该就是个distance sort

    var commonOpaqueFlags = SortFlags.CommonOpaque;
    var noFrontToBackOpaqueFlags = SortFlags.SortingLayer | SortFlags.RenderQueue | SortFlags.OptimizeStateChanges | SortFlags.CanvasOrder;
    bool hasHSRGPU = SystemInfo.hasHiddenSurfaceRemovalOnGPU;
    bool canSkipFrontToBackSorting = (camera.opaqueSortMode == OpaqueSortMode.Default && hasHSRGPU) || camera.opaqueSortMode == OpaqueSortMode.NoDistanceSort;
    
    cameraData.defaultOpaqueSortFlags = canSkipFrontToBackSorting ? noFrontToBackOpaqueFlags : commonOpaqueFlags;
    

      

     https://docs.unity3d.com/Manual/SL-SubShaderTags.html

  • 相关阅读:
    POJ 1041(欧拉路)
    POJ 1904(强连通分量)Tarjan
    POJ 1486(二分图匹配)二分图的完全匹配的必须边
    POJ 1780(欧拉路)
    POJ 1386(欧拉路)
    HDU 3496(DP)
    PKU2387Til the Cows Come Home(SPFA+邻接表)
    HDU1863畅通工程(prim)
    ACM国内外OJ网站大集合
    HDU1175连连看(BFS)
  • 原文地址:https://www.cnblogs.com/minggoddess/p/12454640.html
Copyright © 2011-2022 走看看